All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scenarioTWO.agents.EvacResident Maven / Gradle / Ivy

The newest version!
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  This code is generated by JAC version 5.6 by
  Agent Oriented Software. http://www.agent-software.com.au

    DO NOT ALTER THIS CODE AND DO NOT REMOVE THIS COMMENT
 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
package scenarioTWO.agents;
import aos.jack.jak.agent.Agent;
import scenarioTWO.data.depTime;
import scenarioTWO.events.EvacAlert;
import scenarioTWO.events.AssessThreatG;
import scenarioTWO.events.RelsG;
import scenarioTWO.events.KidsG;
import io.github.agentsoz.abmjack.env.UpdateAction;
import scenarioTWO.events.LeaveFromHome;
import scenarioTWO.plans.AlreadyPreparedP;
import scenarioTWO.plans.RelsP;
import scenarioTWO.plans.PrepareP;
import scenarioTWO.plans.KidsP;
import scenarioTWO.plans.GoHomeP;
import scenarioTWO.plans.LeaveNowP;
import scenarioTWO.plans.LeaveHomeP;
import io.github.agentsoz.abmjack.env.GenericActions;
import java.lang.String;
import io.github.agentsoz.bushfiretute.bdi.IBdiConnector;
import io.github.agentsoz.abmjack.shared.ActionManager;
import java.io.PrintStream;
import io.github.agentsoz.bdiabm.data.ActionContent.State;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Random;
import io.github.agentsoz.abmjack.shared.GlobalTime;

public class EvacResident extends aos.jack.jak.agent.Agent {
    final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("");
    java.util.Random rand = new java.util.Random();
    public java.io.PrintStream out;
    public java.lang.String agentID;
    public io.github.agentsoz.abmjack.shared.ActionManager actionManager;
    public io.github.agentsoz.bushfiretute.bdi.IBdiConnector bdiConnector;
    public double curTime = 100.0;
    public boolean evac_started_flag;
    public boolean fireResponse = false;
    public boolean kidsNeedPickUp = false;
    public boolean relsNeedPickUp = false;
    public boolean waitAtHomeFlag = false;
    public double depTime;
    public boolean prepared_to_evac_flag = true;
    public long travelTime = 0L;
    public double[] startLocation;
    public double[] endLocation;
    public double[] currentDestination;
    public double[] schoolLocation;
    public java.lang.String targetDestination;
    public java.lang.String initiatedAction = " ";
    public java.lang.String currentLocation = " ";
    public scenarioTWO.data.depTime depTimesBDB_dat;
    public io.github.agentsoz.abmjack.env.GenericActions genericactions_cap;
    private scenarioTWO.events.AssessThreatG assessthreatg_p;
    private scenarioTWO.events.RelsG relsg_p;
    private scenarioTWO.events.KidsG kidsg_p;
    private io.github.agentsoz.abmjack.env.UpdateAction updateaction_p;
    private scenarioTWO.events.EvacAlert evacalert_h;
    private scenarioTWO.events.LeaveFromHome leavefromhome_h;
    /* Constructor */

    public EvacResident(java.lang.String id, io.github.agentsoz.bushfiretute.bdi.IBdiConnector ibdiConnector, io.github.agentsoz.abmjack.shared.ActionManager am, java.io.PrintStream out)
    {
        super(id);
        boolean __b = getAgentType() == scenarioTWO.agents.EvacResident.class;
        if (__b) {
            __init1();
            __init2();
        }
        this.out = out;
        this.agentID = id;
        this.bdiConnector = ibdiConnector;
        this.evac_started_flag = false;
        this.actionManager = am;
        if (__b) 
            startAgent();
    }
    
    public void postEvacAlert(java.lang.String msg)
    {
        postEvent(evacalert_h.fireAlert(msg));
    }
    
    public void postLeaveGoal()
    {
        logger.trace("agent posting LeaveHome goal..");
        postEvent(leavefromhome_h.leaveHome());
    }
    
    public void updateCurrentLocation()
    {
        if (targetDestination.equals(" ")) {
            logger.error("attempt to update current location while target destination is empty for agent " + this.agentID);
        }
         else {
            this.currentLocation = this.targetDestination;
            logger.debug("updated current location to " + this.currentLocation + " for agent " + this.agentID);
        }
    }
    
    public void removeTargetDestination()
    {
        this.targetDestination = " ";
        this.initiatedAction = " ";
        logger.debug("completed resetting target destination and initiatedAction attributes for agent " + this.agentID);
    }
    
    //initialising the depTime

    public void setDepTime(double depTime)
    {
        //this.depTime = depTime;

        try {
            depTimesBDB_dat.add(this.agentID,depTime);
        }
        catch (java.lang.Exception e) {
            java.lang.System.out.println("unable to set  depTime to agent " + this.agentID);
        }
    }
    
    public double[] getStartLocation()
    {
        return startLocation;
    }
    
    public void setDestination()
    {
        double[] dest = {
                634810.1718,
                5888786.360};
        currentDestination = dest;
    }
    
    public io.github.agentsoz.abmjack.shared.ActionManager getActionManager()
    {
        return actionManager;
    }
    
    public void updateActionState(java.lang.String actionID, io.github.agentsoz.bdiabm.data.ActionContent.State state, java.lang.Object[] params)
    {
        postEvent(updateaction_p.postEvent(actionID,state,params));
        logger.debug("agent posted updateActionState event..");
    }
    
    public long getCurrentTime()
    {
        return io.github.agentsoz.abmjack.shared.GlobalTime.time.getTime();
    }
    
    public double getTimeLeftToEvac()
    {
        double deptime = depTimesBDB_dat.getDepartureTime(this.agentID);
        if (deptime == -1.0) {
            logger.error("agent: " + this.agentID + " - incorrect departure time returned from the belief DB");
        }
        logger.trace("agent deptime :" + deptime + "current Time : " + getCurrentTime());
        return deptime - getCurrentTime();
    }
    
    public void setEvacStartedFlagTrue()
    {
        this.evac_started_flag = true;
    }
    
    public boolean getEvacStartedFlag()
    {
        return this.evac_started_flag;
    }
    
    //preparedToEvac flag

    public void setPreparedToEvacFlagTrue()
    {
        this.prepared_to_evac_flag = true;
    }
    
    public boolean getPreparedToEvacFlag()
    {
        return this.prepared_to_evac_flag;
    }
    
    //travel time

    public void addToTravelTime(long tripTime)
    {
        this.travelTime = this.travelTime + tripTime;
    }
    
    public double getTravelTime()
    {
        return this.travelTime;
    }
    
    public void log(java.lang.String msg)
    {
        java.lang.Object[] o = {
                java.lang.Long.toString(getCurrentTime()),
                this.agentID,
                msg};
        out.println(java.lang.String.format("Time %-6s, Agent %-5s: %s",o));
    }
    
    public java.lang.Class getAgentType()
    {
        return scenarioTWO.agents.EvacResident.class;
    }
    
    public void __init1()
    {
        super.__init1();
        setNamedCreator("depTimesBDB_dat","scenarioTWO.data.depTime",new aos.jack.jak.agent.DataCreator(true){
            public java.lang.Object create()
            {
                return __named_data_depTimesBDB_dat();
            }
            
        },true);
        if (genericactions_cap == null) {
            genericactions_cap = new io.github.agentsoz.abmjack.env.GenericActions(this);
            genericactions_cap.__initCapability(this,"genericactions_cap");
        }
        genericactions_cap.__init1();
    }
    
    public void __init2()
    {
        super.__init2();
        getNamedObject("depTimesBDB_dat","scenarioTWO.data.depTime");
        assessthreatg_p = (scenarioTWO.events.AssessThreatG) findEvent("scenarioTWO.events.AssessThreatG");
        relsg_p = (scenarioTWO.events.RelsG) findEvent("scenarioTWO.events.RelsG");
        kidsg_p = (scenarioTWO.events.KidsG) findEvent("scenarioTWO.events.KidsG");
        updateaction_p = (io.github.agentsoz.abmjack.env.UpdateAction) findEvent("io.github.agentsoz.abmjack.env.UpdateAction");
        evacalert_h = (scenarioTWO.events.EvacAlert) findEvent("scenarioTWO.events.EvacAlert");
        leavefromhome_h = (scenarioTWO.events.LeaveFromHome) findEvent("scenarioTWO.events.LeaveFromHome");
        genericactions_cap.__init2();
    }
    
    synchronized private void __init_desc()
    {
        addNamedObject("depTimesBDB_dat","scenarioTWO.data.depTime",0);
        genericactions_cap = new io.github.agentsoz.abmjack.env.GenericActions(this);
        genericactions_cap.__initCapability(this,"genericactions_cap");
        genericactions_cap.init_desc();
        addEvent("scenarioTWO.events.EvacAlert",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("scenarioTWO.events.AssessThreatG",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("scenarioTWO.events.RelsG",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("scenarioTWO.events.KidsG",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("io.github.agentsoz.abmjack.env.UpdateAction",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("scenarioTWO.events.LeaveFromHome",aos.jack.jak.agent.Agent.HANDLED_EVENT);
        addEvent("scenarioTWO.events.AssessThreatG",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addEvent("scenarioTWO.events.RelsG",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addEvent("scenarioTWO.events.KidsG",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addEvent("io.github.agentsoz.abmjack.env.UpdateAction",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addEvent("scenarioTWO.events.EvacAlert",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addEvent("scenarioTWO.events.LeaveFromHome",aos.jack.jak.agent.Agent.POSTED_EVENT);
        addPlan("scenarioTWO.plans.AlreadyPreparedP",0);
        addPlan("scenarioTWO.plans.RelsP",0);
        addPlan("scenarioTWO.plans.PrepareP",0);
        addPlan("scenarioTWO.plans.KidsP",0);
        addPlan("scenarioTWO.plans.GoHomeP",0);
        addPlan("scenarioTWO.plans.LeaveNowP",0);
        addPlan("scenarioTWO.plans.LeaveHomeP",0);
    }
    
    public void init_desc()
    {
        newAgentDesc("EvacResident");
        super.init_desc();
        __init_desc();
    }
    
    synchronized public void __bindNames()
    {
        super.__bindNames();
        genericactions_cap.__bindNames();
    }
    
    private scenarioTWO.data.depTime __named_data_depTimesBDB_dat()
    {
        if (depTimesBDB_dat != null) 
            return depTimesBDB_dat;
        depTimesBDB_dat = (scenarioTWO.data.depTime) findShared("depTimesBDB_dat","scenarioTWO.data.depTime");
        if (depTimesBDB_dat != null) {
            setNamedObject("depTimesBDB_dat","scenarioTWO.data.depTime",depTimesBDB_dat);
            return depTimesBDB_dat;
        }
        depTimesBDB_dat = new scenarioTWO.data.depTime();
        if (!depTimesBDB_dat.attach(this)) 
            depTimesBDB_dat = null;
        addShared("depTimesBDB_dat","scenarioTWO.data.depTime",depTimesBDB_dat);
        setNamedObject("depTimesBDB_dat","scenarioTWO.data.depTime",depTimesBDB_dat);
        return depTimesBDB_dat;
    }
    
    public void setEnabled(boolean t)
    {
        super.setEnabled(t);
        genericactions_cap.setEnabled(t);
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy