Java源码示例:jade.core.AID

示例1
@Override
public void action() {
    switch (status) {
        case ASK:
            ACLMessage message = new ACLMessage(ACLMessage.REQUEST);
            message.setConversationId(String.valueOf(System.currentTimeMillis()));
            message.addReceiver(new AID(MobileAgent.NAME, AID.ISLOCALNAME));
            template = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.AGREE),
                    MessageTemplate.MatchConversationId(message.getConversationId()));
            send(message);
            status = RESPONSE;
            break;
        case RESPONSE:
            ACLMessage receivedMessage = receive(template);
            if (receivedMessage != null) {
                handleRawData(receivedMessage.getContent());
            } else {
                block();
            }
            break;
    }
}
 
示例2
@Override
public void action() {
    switch (status) {
        case ASK:
            ACLMessage message = new ACLMessage(ACLMessage.CANCEL);
            message.setConversationId(String.valueOf(System.currentTimeMillis()));
            message.addReceiver(new AID(MobileAgent.NAME, AID.ISLOCALNAME));
            template = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.AGREE),
                    MessageTemplate.MatchConversationId(message.getConversationId()));
            send(message);
            status = RESPONSE;
            break;
        case RESPONSE:
            ACLMessage receivedMessage = receive(template);
            if (receivedMessage != null) {
                handleAfterMoving();
            } else {
                block();
            }
            break;
    }
}
 
示例3
public void action() {
     ResultsAgent a = (ResultsAgent)myAgent;
     
      // Send result before closing down
     ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
     msg.setSender(a.getAID());
     msg.addReceiver(new AID(SendTo, false));
     try {
         Object[] oMsg=new Object[3];
         oMsg[0] = ID;
         oMsg[1] = bText1;
         oMsg[2] = bText2;
         
         msg.setContentObject(oMsg);
     } catch (IOException ex) {
         System.err.println("Cannot add result to message. Sending empty message.");
         ex.printStackTrace(System.err);
     }
     
     a.send(msg);        
}
 
示例4
public void action() {
     ResultsAgent a = (ResultsAgent)myAgent;
     
      // Send result before closing down
     ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
     msg.setSender(a.getAID());
     msg.addReceiver(new AID(SendTo, false));
     try {
         Object[] oMsg=new Object[3];
         oMsg[0] = ID;
         oMsg[1] = bText1;
         oMsg[2] = bText2;
         
         msg.setContentObject(oMsg);
     } catch (IOException ex) {
         System.err.println("Cannot add result to message. Sending empty message.");
         ex.printStackTrace(System.err);
     }
     
     a.send(msg);        
}
 
示例5
public void informAgsEnvironmentChanged(Collection<String> agentsToNotify) {
    try {
        if (agentsToNotify == null) {
            informAgsEnvironmentChanged();
        } else {
            ACLMessage m = new ACLMessage(ACLMessage.INFORM);
            m.setContent("environmentChanged");
            for (String ag: agentsToNotify) {
                m.addReceiver(new AID(ag, AID.ISLOCALNAME));
            }
            send(m);
        }
    } catch (Exception e) {
        logger.log(Level.SEVERE, "Error sending notifyEvents ", e);
    }
}
 
示例6
private AID getEnvironmentAg() {
    // get the name of the environment
    if (!consultEnv) {
        DFAgentDescription template = new DFAgentDescription();
        ServiceDescription sd = new ServiceDescription();
        sd.setType("jason");
        sd.setName(RunJadeMAS.environmentName);
        template.addServices(sd);
        try {
            DFAgentDescription[] ans = DFService.search(jadeAg, template);
            if (ans.length > 0) {
                environmentAID =  ans[0].getName();
            }
        } catch (Exception e) {
            logger.log(Level.SEVERE,"Error getting environment from DF.",e);
        }
        consultEnv = true;
    }
    return environmentAID;
}
 
示例7
private void askForMoving(Location location) {
    System.out.println("The ask For moving was called with location: " + location.toString());
    ACLMessage message = new ACLMessage(ACLMessage.QUERY_IF);
    message.addReceiver(new AID(MobileAgent.NAME, AID.ISLOCALNAME));
    addBehaviour(agentObjectBehaviour);
    addBehaviour(oneReceiveBehavior);
    try {
        message.setContentObject(location);
    } catch (IOException e) {
        e.printStackTrace();
    }
    send(message);
}
 
示例8
@Override
public void action() {
    switch (status) {
        case ASK:
            ACLMessage message = new ACLMessage(ACLMessage.CFP);
            message.setConversationId(String.valueOf(System.currentTimeMillis()));
            message.addReceiver(new AID(MobileAgent.NAME, AID.ISLOCALNAME));
            try {
                message.setContentObject((Serializable) availableLocations);
                System.out.println("Adding locations successfully.");
            } catch (IOException e) {
                e.printStackTrace();
            }
            template = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.AGREE),
                    MessageTemplate.MatchConversationId(message.getConversationId()));
            send(message);
            status = RESPONSE;
            break;
        case RESPONSE:
            ACLMessage receivedMessage = receive(template);
            if (receivedMessage != null) {
                handleScanAll(receivedMessage);
            } else {
                block();
            }
            break;
    }
}
 
示例9
/** Completes the evaluation process, updating the dispatched agents of the 
 *event .
 */
public void complete() {
    System.err.println("Completed successfully. Releasing sent agents...");
    
    String sCur;
    Object oNext;
    // For every agent
    while ((oNext=ActiveAgents.poll()) != null) {
        sCur = (String)oNext;
        // Send termination signal
        ACLMessage msg = new ACLMessage(ACLMessage.CANCEL);
        msg.setSender(getAID());
        msg.addReceiver(new AID(sCur, false));
        msg.setContent(NGramDocumentComparatorAgent.TERMINATION_MESSAGE);

        send(msg);        
    }
    psOutputStream.flush();
    psOutputStream.close();
    
    addBehaviour(new WakerBehaviour(this, 10000) {
        public void onWake() {
            doDelete();
        }
    });
    
}
 
示例10
/** Completes the evaluation process, updating the dispatched agents of the 
 *event .
 */
public void complete() {
    System.err.println("Completed successfully. Releasing sent agents...");
    
    String sCur;
    Object oNext;
    // For every agent
    while ((oNext=ActiveAgents.poll()) != null) {
        sCur = (String)oNext;
        // Send termination signal
        ACLMessage msg = new ACLMessage(ACLMessage.CANCEL);
        msg.setSender(getAID());
        msg.addReceiver(new AID(sCur, false));
        msg.setContent(NGramDocumentComparatorAgent.TERMINATION_MESSAGE);

        send(msg);        
    }
    psOutputStream.flush();
    psOutputStream.close();
    
    addBehaviour(new WakerBehaviour(this, 10000) {
        public void onWake() {
            doDelete();
        }
    });
    
}
 
示例11
public void sendMsg(Message m) throws Exception {
    ACLMessage acl = jasonToACL(m);
    acl.addReceiver(new AID(m.getReceiver(), AID.ISLOCALNAME));
    if (m.getInReplyTo() != null) {
        String convid = conversationIds.get(m.getInReplyTo());
        if (convid != null) {
            acl.setConversationId(convid);
        }
    }
    if (logger.isLoggable(Level.FINE)) logger.fine("Sending message: " + acl);
    send(acl);
}
 
示例12
public void informAgToPerformCycle(final String agName, final int cycle) {
    addBehaviour(new OneShotBehaviour() {
        public void action() {
            ACLMessage m = new ACLMessage(ACLMessage.INFORM);
            m.setOntology(controllerOntology);
            m.addReceiver(new AID(agName, AID.ISLOCALNAME));
            m.setContent("performCycle");
            m.addUserDefinedParameter("cycle", String.valueOf(cycle));
            send(m);
        }
    });
}
 
示例13
/** Parses arguments and initializes migration. */
public void setup() {       
    Object[] oArgs = getArguments();
    if ((oArgs == null) || (oArgs.length == 0))
    {
        System.err.println("No args...");
    }
    
    // First argument is the caller
    ResultConsumer = (AID)oArgs[0];
    
    // Get string args
    String[] args;
    ArrayList alArgs = new ArrayList();
    for (int iCnt = 0; iCnt < oArgs.length; iCnt++) {
        if (oArgs[iCnt] instanceof String)
            alArgs.add(oArgs[iCnt]);
    }
    args = new String[alArgs.size()];
    args = (String[])alArgs.toArray(args);
    
    // DEBUG LINES
    // System.err.println(this.getName() + ": Parsing args...");
    //////////////
    
    Hashtable hSwitches = gr.demokritos.iit.jinsect.utils.parseCommandLineSwitches(args);
        
    // Parse commandline
    try {
        WordMin = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordMin", "1"));
        WordMax = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordMax", "2"));
        WordDist = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordDist", "3"));
        CharMin = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charMin", "3"));
        CharMax = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charMax", "5"));
        CharDist = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charDist", "3"));
        MigrationProbability = Double.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"migProb", 
                String.valueOf(MigrationProbability)));
        
        // Define method
        Do = gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"do", "all");
        // Determine if silent
        Silent=gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches, "s", "FALSE").equals("TRUE");
        
        if (!Silent)
            System.err.println(this.getName() + ":" + "Using parameters:\n" + hSwitches);
        
        
    }
    catch (ClassCastException cce) {
        System.err.println(this.getName() + ":" + "Malformed switch:" + cce.getMessage() + ". Aborting...");
    }
    
    //setState(ACTIVE_STATE); // Set state to active
    super.setup(); // Adds check for locations
    
}
 
示例14
/** Parses arguments and initializes migration. */
public void setup() {       
    Object[] oArgs = getArguments();
    if ((oArgs == null) || (oArgs.length == 0))
    {
        System.err.println("No args...");
    }
    
    // First argument is the caller
    ResultConsumer = (AID)oArgs[0];
    
    // Get string args
    String[] args;
    ArrayList alArgs = new ArrayList();
    for (int iCnt = 0; iCnt < oArgs.length; iCnt++) {
        if (oArgs[iCnt] instanceof String)
            alArgs.add(oArgs[iCnt]);
    }
    args = new String[alArgs.size()];
    args = (String[])alArgs.toArray(args);
    
    // DEBUG LINES
    // System.err.println(this.getName() + ": Parsing args...");
    //////////////
    
    Hashtable hSwitches = gr.demokritos.iit.jinsect.utils.parseCommandLineSwitches(args);
        
    // Parse commandline
    try {
        WordMin = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordMin", "1"));
        WordMax = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordMax", "2"));
        WordDist = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"wordDist", "3"));
        CharMin = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charMin", "3"));
        CharMax = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charMax", "5"));
        CharDist = Integer.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"charDist", "3"));
        MigrationProbability = Double.valueOf(gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"migProb", 
                String.valueOf(MigrationProbability)));
        
        // Define method
        Do = gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches,"do", "all");
        // Determine if silent
        Silent=gr.demokritos.iit.jinsect.utils.getSwitch(hSwitches, "s", "FALSE").equals("TRUE");
        
        if (!Silent)
            System.err.println(this.getName() + ":" + "Using parameters:\n" + hSwitches);
        
        
    }
    catch (ClassCastException cce) {
        System.err.println(this.getName() + ":" + "Malformed switch:" + cce.getMessage() + ". Aborting...");
    }
    
    //setState(ACTIVE_STATE); // Set state to active
    super.setup(); // Adds check for locations
    
}
 
示例15
protected void setup() {
    // Printout a welcome message
    System.out.println("Hallo! Buyer-agent "+getAID().getName()+" is ready.");

    // Get the title of the book to buy as a start-up argument
    Object[] args = getArguments();
    if (args != null && args.length > 0) {
        targetBookTitle = (String) args[0];
        System.out.println("Target book is "+targetBookTitle);

        // Add a TickerBehaviour that schedules a request to seller agents every minute
        addBehaviour(new TickerBehaviour(this, 10000) {
            protected void onTick() {
                System.out.println("Trying to buy "+targetBookTitle);
                // Update the list of seller agents
                DFAgentDescription template = new DFAgentDescription();
                ServiceDescription sd = new ServiceDescription();
                sd.setType("book-selling");
                template.addServices(sd);
                try {
                    DFAgentDescription[] result = DFService.search(myAgent, template);
                    System.out.println("Found the following seller agents:");
                    sellerAgents = new AID[result.length];
                    for (int i = 0; i < result.length; ++i) {
                        sellerAgents[i] = result[i].getName();
                        System.out.println(sellerAgents[i].getName());
                    }
                } catch (FIPAException fe) {
                    fe.printStackTrace();
                }

                // Perform the request
                myAgent.addBehaviour(new RequestPerformer());
            }
        } );
    } else {
        // Make the agent terminate
        System.out.println("No target book title specified");
        doDelete();
    }
}