@Override
	public void action() {
		
		//System.out.println("Executando comportamento esperarReputacao");
		
		ACLMessage mensagem = this.agenteReputacao.receive();
		
		if(mensagem != null){
			
			System.out.println("Recebi Mensagem");
			ACLMessage mensagemDeRetorno = mensagem.createReply();
			AID agenteEmissorAid = mensagem.getSender();
			
			if(mensagem.getPerformative() == ACLMessage.INFORM){ // O agente esta informando uma reputacao
			
				try {
					Reputacao reputacao = (Reputacao) mensagem.getContentObject();
					agenteReputacao.addReputacao(reputacao);
					
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
				
			} else if(mensagem.getPerformative() == ACLMessage.REQUEST){
				
				try {
					
					
					AID agenteAid = (AID) mensagem.getContentObject();
					RepositorioReputacaoAgente repositorioReputacao = this.agenteReputacao.getRepositorioReputacao(agenteAid);
					
					Reputacao reputacao = repositorioReputacao.pegarReputacao();
					
					if(reputacao == null){
						reputacao = new Reputacao(agenteAid, -1);
					}
					
					mensagemDeRetorno.setContentObject(reputacao);
					mensagemDeRetorno.setPerformative(ACLMessage.INFORM);
					
					this.agenteReputacao.send(mensagemDeRetorno);
				
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		} else{
			block();
		}
	}