jason.environment
Class TimeSteppedEnvironment

Package class diagram package TimeSteppedEnvironment
java.lang.Object
  extended by jason.environment.Environment
      extended by jason.environment.TimeSteppedEnvironment
Direct Known Subclasses:
SteppedEnvironment

public class TimeSteppedEnvironment
extends Environment

General environment class that "synchronise" all agents actions. It waits one action for each agent and, when all actions is received, executes them.


Nested Class Summary
static class TimeSteppedEnvironment.OverActionsPolicy
          Policy used when a second action is requested and the agent still has another action pending execution
 
Field Summary
 
Fields inherited from class jason.environment.Environment
executor
 
Constructor Summary
TimeSteppedEnvironment()
           
 
Method Summary
 Structure getActionInSchedule(java.lang.String agName)
           
 int getNbAgs()
          Returns the number of agents in the MAS (used to test the end of a cycle)
 java.util.List<Literal> getPercepts(java.lang.String agName)
          stops perception while executing the step's actions
 int getStep()
          returns the current step counter
 void init(java.lang.String[] args)
          Called before the MAS execution with the args informed in .mas2j project, the user environment could override it.
protected  int requiredStepsForAction(java.lang.String agName, Structure action)
           
 void scheduleAction(java.lang.String agName, Structure action, java.lang.Object infraData)
          Called by the agent infrastructure to schedule an action to be executed on the environment
 void setNbAgs(int n)
          Set the number of agents
 void setOverActionsPolicy(TimeSteppedEnvironment.OverActionsPolicy p)
          Sets the policy used for the second ask for an action while another action is not finished yet.
 void setSleep(int s)
           
protected  void stepFinished(int step, long elapsedTime, boolean byTimeout)
          to be overridden by the user class
protected  void stepStarted(int step)
          to be overridden by the user class
 void stop()
          Called just before the end of MAS execution, the user environment could override it.
protected  boolean testEndCycle(java.util.Set<java.lang.String> finishedAgs)
          Returns true when a new cycle can start, it normally holds when all agents are in the finishedAgs set.
protected  void updateAgsPercept()
          This method is called after the execution of the action and before to send 'continue' to the agents
protected  void updateNumberOfAgents()
          Updates the number of agents using the environment, this default implementation, considers all agents in the MAS as actors in the environment.
 
Methods inherited from class jason.environment.Environment
addPercept, addPercept, clearAllPercepts, clearPercepts, clearPercepts, consultPercepts, containsPercept, containsPercept, executeAction, getEnvironmentInfraTier, getLogger, informAgsEnvironmentChanged, informAgsEnvironmentChanged, isRunning, removePercept, removePercept, removePerceptsByUnif, removePerceptsByUnif, setEnvironmentInfraTier
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TimeSteppedEnvironment

public TimeSteppedEnvironment()
Method Detail

init

public void init(java.lang.String[] args)
Description copied from class: Environment
Called before the MAS execution with the args informed in .mas2j project, the user environment could override it.

Overrides:
init in class Environment

setSleep

public void setSleep(int s)

stop

public void stop()
Description copied from class: Environment
Called just before the end of MAS execution, the user environment could override it.

Overrides:
stop in class Environment

updateNumberOfAgents

protected void updateNumberOfAgents()
Updates the number of agents using the environment, this default implementation, considers all agents in the MAS as actors in the environment.


getNbAgs

public int getNbAgs()
Returns the number of agents in the MAS (used to test the end of a cycle)


setNbAgs

public void setNbAgs(int n)
Set the number of agents


getStep

public int getStep()
returns the current step counter


setOverActionsPolicy

public void setOverActionsPolicy(TimeSteppedEnvironment.OverActionsPolicy p)
Sets the policy used for the second ask for an action while another action is not finished yet. If set as queue, the second action is added in a queue for future execution If set as failSecond, the second action fails.


scheduleAction

public void scheduleAction(java.lang.String agName,
                           Structure action,
                           java.lang.Object infraData)
Description copied from class: Environment
Called by the agent infrastructure to schedule an action to be executed on the environment

Overrides:
scheduleAction in class Environment

getActionInSchedule

public Structure getActionInSchedule(java.lang.String agName)

testEndCycle

protected boolean testEndCycle(java.util.Set<java.lang.String> finishedAgs)
Returns true when a new cycle can start, it normally holds when all agents are in the finishedAgs set.

Parameters:
finishedAgs - the set of agents' name that already finished the current cycle

updateAgsPercept

protected void updateAgsPercept()
This method is called after the execution of the action and before to send 'continue' to the agents


stepStarted

protected void stepStarted(int step)
to be overridden by the user class


stepFinished

protected void stepFinished(int step,
                            long elapsedTime,
                            boolean byTimeout)
to be overridden by the user class


requiredStepsForAction

protected int requiredStepsForAction(java.lang.String agName,
                                     Structure action)

getPercepts

public java.util.List<Literal> getPercepts(java.lang.String agName)
stops perception while executing the step's actions

Overrides:
getPercepts in class Environment