public void action() { try { ContentElement content = getContentManager().extractContent(request); CreatePreferences cp = (CreatePreferences) ((Action) content).getAction(); for (int i = 0; i < artifacts.size(); i++) { Artifact a = (Artifact) artifacts.get(i); if ((a.getGenre().equals(cp.getGenre())) || (a.getCreator().equals(cp.getCreator()))) { l.add(a); } } // System.out.println("Tour-Guide: " + l); Result result = new Result((Action) content, l); ACLMessage reply = request.createReply(); reply.setPerformative(ACLMessage.INFORM); getContentManager().fillContent(reply, result); send(reply); } catch (Exception ex) { ex.printStackTrace(); } }
private boolean acceptOffer(Artifact item) { // task 2, bidding strategy ArrayList<Integer> genresInCommon = new ArrayList<Integer>(); for (int i = 0; i < interests.size(); i++) if (item.getGenre().contains(interests.get(i))) // interested in a genre item has genresInCommon.add(priorityInterests.get(i)); if (genresInCommon.size() > 0) { int prioritySum = 0; for (int sum : genresInCommon) prioritySum += sum; prioritySum /= genresInCommon .size(); // average priority points taken all interests/genre match into // consideration if ((prioritySum * 1000 >= item.getPrice()) && (item.getPrice() <= ((int) (money * 0.7)))) // willing to pay the current price? 1000 for every priority point // and dont spend more than 70% money return true; else return false; } else return false; }
private ACLMessage handleTourGuideRequest(ACLMessage request) { AID tourGuide = request.getSender(); ArrayList<String> interests; try { interests = (ArrayList<String>) request.getContentObject(); // System.out.println(getName() + ": Will handle " + interests.size() + " interests. // (Successfully read message)"); } catch (UnreadableException e) { System.out.println( myAgent.getAID().getName() + ":ERROR Couldn't get interests. Will respond with an empty list..."); interests = new ArrayList<>(); } String conversationID = request.getConversationId(); ArrayList<Integer> ids = new ArrayList<>(); for (Artifact artifact : artifacts) for (String interest : interests) if (artifact.getGenre().contains(interest) || artifact.getType().equals(interest)) ids.add(artifact.getId()); ACLMessage response = new ACLMessage(ACLMessage.INFORM); response.addReceiver(tourGuide); response.setConversationId(conversationID); response.setOntology("get-artifact-ids"); try { response.setContentObject(ids); } catch (IOException e) { System.err.println( myAgent.getAID().getName() + ": Couldn't serialize the ID-list... Will cause problems with other agents."); } return response; // System.out.println(myAgent.getAID().getName() + ":Response message sent to TourGuide with " // + ids.size() + " IDs."); }