Class Goal

java.lang.Object
edu.tufts.hrilab.action.goal.Goal
All Implemented Interfaces:
Serializable

public class Goal extends Object implements Serializable
Goal encapsulates a goal Predicate, the ActionInterpreter in charge of executing it and some additional information.
See Also:
  • Constructor Details

    • Goal

      public Goal(Predicate goalState)
      Construct goal that defines the actor to achieve the goal, and the desired goal/action. This is the main method used when using the GoalManager submitGoal method.
      Parameters:
      goalState -
    • Goal

      public Goal(Symbol actor, Symbol goalState)
      Construct goal with explicit actor. This is primarily used for creating goal instance from ASL
      Parameters:
      actor -
      goalState -
    • Goal

      public Goal(Symbol actor, Symbol goalState, Observable observable)
      Goal constructor used to explicitly mark goal as an observation. It's possible to have an observation goal without the OBS(actor, state) predicate form. This is almost always the case for observations from conditions and effects checks.
      Parameters:
      actor - the actor doing the observing (can be null, if it can be inferred from predicate)
      goalState - the goal predicate
      observable - enum specifying if goal is observable, and if so what type (true/false/default)
  • Method Details

    • getPredicate

      public Predicate getPredicate()
      Get the goal predicate. This can contain free variables, and it can also become bound depending on where in the goal execution process this method is called.
      Returns:
    • bindPredicate

      public boolean bindPredicate(Context context)
      Binds goal predicate to values in context.
      Parameters:
      context - context providing bindings
      Returns:
      true if predicate was bound using variables in context
    • getId

      public long getId()
    • isAction

      public boolean isAction()
    • setIsAction

      public void setIsAction(boolean value)
    • isObservation

      public boolean isObservation()
    • getObservableEnum

      public Observable getObservableEnum()
    • isPersistent

      public boolean isPersistent()
    • getActor

      public Symbol getActor()
    • getFailConditions

      public Justification getFailConditions()
    • getStatus

      public GoalStatus getStatus()
    • getStartTime

      public long getStartTime()
    • getEndTime

      public long getEndTime()
    • setRootContext

      public void setRootContext(Context context)
      Set the root context of this goal (not the root of the entire tree).
      Parameters:
      context -
    • setCurrentContext

      public void setCurrentContext(Context context)
      Set the current context being executed by an ActionInterpreter.
      Parameters:
      context -
    • getRootContext

      public Context getRootContext()
      Get the root context of this goal (not the root of the entire tree).
      Returns:
    • getCurrentContext

      public Context getCurrentContext()
      Get the current context being executed by an ActionInterpreter.
      Returns:
    • getContextDescription

      public ContextDescription getContextDescription(Predicate location)
    • setAsStarted

      public boolean setAsStarted()
      Set goal status to ACTIVE and set start time. This method does not actually start goal execution.
      Returns:
    • setStatus

      public void setStatus(GoalStatus status)
      Set the status of this goal. Does not directly change the actual execution of this goal.
      Parameters:
      status -
    • setAsTerminated

      public void setAsTerminated(GoalStatus status)
      Set goal status to passed in status, set the end time, and set the internal terminated flag. This method does not actually terminate the goal execution.
      Parameters:
      status -
    • setPriority

      public void setPriority(long priority)
    • getPriority

      public long getPriority()
    • setPriorityTier

      public void setPriorityTier(PriorityTier priorityTier)
    • getPriorityTier

      public PriorityTier getPriorityTier()
    • cancel

      public void cancel()
      Set the goal status to CANCEL and also attempt to cancel the goal execution.
    • suspend

      public void suspend()
      TODO: this is a half-baked attempt at pausing a goal, but only pauses the current AI, and not any child AIs. Something closer to how cancel works will need to be implemented. For instance, suspend could cancel the goal execution but keep the goal as a current goal in the BGM.
    • resume

      public void resume()
    • setFailConditions

      public void setFailConditions(Justification cond)
    • getActionInterpreter

      public ActionInterpreter getActionInterpreter()
    • setActionInterpreter

      public boolean setActionInterpreter(ActionInterpreter interpreter)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setMetric

      public void setMetric(Predicate metric)
    • getMetric

      public Predicate getMetric()