@Override public boolean done() { if (finished) { if (myAgent.getBestProvider() == null) { System.out.println("Tempis pour ce fournisseur.."); } else if (myAgent.getBestProvider().equals(myAgent.getAID())) { System.out.println("J'ai reçu la réponse que j'attendais de " + myAgent.getAID()); } } return finished; }
@Override public void action() { AID[] providers = myAgent.getProvidersInDeal(); ACLMessage msg = new ACLMessage(ACLMessage.QUERY_REF); if (providers.length != 0) { for (AID aid : providers) { msg.addReceiver(aid); // TODO récupérer la ref du produit qu'on veut vraiment acheter msg.setContent(String.valueOf(objet.getRefObjet())); myAgent.send(msg); System.out.println( "Requête de prix envoyé a " + aid + " pour l'objet de reférence " + String.valueOf(objet.getRefObjet())); } } }
@Override public void action() { // On attend un message précis INFORM d'un provider préçis ACLMessage msg = myAgent.receive(mt); // if (countAttente < 3) { if (msg != null) { // On vérifie l'existence ce provider dans le DF String content = msg.getContent(); double price = 0; double betterPrice = 0; if (content != null) { try { price = Double.valueOf(content); betterPrice = myAgent.getBestPrice(); // On regarde si le prix que nous a proposé ce founisseur est plus avantageux if (price < betterPrice) { myAgent.setBestProvider(msg.getSender()); myAgent.setBestPrice(price); } } catch (NumberFormatException e) { System.err.println("Prix reçu au mauvais format!"); } catch (Exception e) { System.err.println("Problème pour la transformation de string en double"); } // Ce fournisseur nous a répondu, le Behaviour est donc fini } finished = true; } else { block(VendeurAgent.TEMPS_POUR_REPONDRE); } // } else { // finished = true; // } // countAttente++; }
@Override public int onEnd() { System.out.println("tresorerie = " + myAgent.getTresorerie()); return super.onEnd(); }