Class Thatcher

  extended by ix.icore.IXAgent
      extended by ix.ip2.Ip2
          extended by ix.iplan.IPlan
              extended by ix.iplan.PlannerBase
                  extended by ix.iplan.Thatcher
All Implemented Interfaces:

public class Thatcher
extends PlannerBase

Simple, non-backtracking, pure HTN planning algorithm.

"There is no alternative."

Nested Class Summary
Nested classes/interfaces inherited from class ix.ip2.Ip2
Ip2.AddExtensionsHandler, Ip2.AddHandlersHandler
Field Summary
Fields inherited from class ix.ip2.Ip2
activityViewer, agentTypeName, annotationViewer, controller, domain, frame, issueViewer, logoImage, logoLine1, logoLine2, modelManager, optionManager, resetHooks, showOptions, stateViewer
Fields inherited from class ix.icore.IXAgent
contactManager, displayName, eventLogger, exitHooks, initialDisplayName, ipcName, ipcStrategyName, iSimTimer, mainAgent, nameListeners, startupDate, startupHooks, symbolName, textFrame
Constructor Summary
Thatcher(boolean standAlone)
Method Summary
protected  void addHandlers()
          Install any built-in issue and activity handlers.
(package private)  java.util.List allActivities()
(package private)  ActivityItem findExecutable()
static void main(java.lang.String[] argv)
          Standalone main program.
 void plan()
          Finds a plan that is a completion of this planner's current plan and makes it the new current plan.
(package private)  boolean planIsComplete()
Methods inherited from class ix.iplan.PlannerBase
completeStartup, getStatistics, handleInput, initOptions, isStandAlone, makeInstance, outputOwlSPlan, outputPlan, outputPlanPSGraphData, replan, startServer, startup
Methods inherited from class ix.iplan.IPlan
displayFrame, makeDefaultPlanner, makeIp2Frame, makeModelManager, setDomain
Methods inherited from class ix.ip2.Ip2
addAboutInfo, addForwardingHandler, addHandlers, addResetHook, addTest, addTestMenuItems, addTool, clearAllButState, clearModel, do_reloadViewers, ensureTool, getActivityPatternSyntaxes, getAgentTypeName, getController, getDomain, getFrame, getIp2ModelManager, getModelManager, getOptionManager, getPlan, handleInputDirectly, handleNewActivity, handleNewChatMessage, handleNewConstraint, handleNewIssue, handleNewReport, isReloadingViewers, loadDomain, loadInitialPlan, loadPlan, loadPlan, loadPlan, makeActivityViewer, makeAnnotationViewer, makeController, makeIssueViewer, makeLogoPanel, makeStateViewer, makeViewer, processCommandLineArguments, readDomain, readDomain, reloadViewers, reset, resetAllButState, resetViewers, savePlanAs
Methods inherited from class ix.icore.IXAgent
addAgentNameListener, addExitHook, addStartupHook, adjustLookAndFeel, displayMessage, do_mainStartup, exit, fireSymbolNameChanged, getAgent, getAgentDisplayName, getAgentIPCName, getAgentStartupDate, getAgentSymbolName, getContactManager, getEventLogger, getISimTimer, getKnownAgents, handleReceivedReport, installAgentExtensions, installAgentExtensions, isMainAgent, log, mainStartup, notePossibleNewContact, pre_handleInput, preprocessInput, reportInputException, setAgentSymbolName, setEventLogger, setupISimTimer
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ix.iplan.Planner
getPlan, loadPlan, setDomain

Constructor Detail


public Thatcher(boolean standAlone)
Method Detail


public static void main(java.lang.String[] argv)
Standalone main program. One plan in, one plan out. To specify the initial plan, use the plan command-line argument. The result will be written to the file specified by the output argument. If no output is specified, the user is asked by a dialog.


protected void addHandlers()
Install any built-in issue and activity handlers.

addHandlers in class PlannerBase


public void plan()
Description copied from interface: Planner
Finds a plan that is a completion of this planner's current plan and makes it the new current plan. The precise meaning of "completion" depends on the planner in question, but typically it will mean that all activities in the initial plan that might be expanded into subactions, using refinements in this planner's domain, will be expanded, and that all constraints in the initial plan or introduced by expansion would be satisfied if the plan were executed in a way that respected all of the ordering constraints. (Here, the initial plan is the plan that was current when plan() was called.)

A successful call to plan() leaves this planner in a state in which Planner.replan() can be called.

Specified by:
plan in interface Planner
plan in class PlannerBase


ActivityItem findExecutable()


java.util.List allActivities()


boolean planIsComplete()