ix.iplan
Class SlipFindExecutable

java.lang.Object
  extended by ix.iplan.SlipFindExecutable
All Implemented Interfaces:
java.lang.Runnable

 class SlipFindExecutable
extends java.lang.Object
implements java.lang.Runnable

Finds an executable node-end and either simulates its execution or begins its expansion.


Nested Class Summary
(package private)  class SlipFindExecutable.ExpandLaterAlt
           
(package private)  class SlipFindExecutable.Resume
           
(package private)  class SlipFindExecutable.SatisfyByAchieveAlt
           
 
Field Summary
(package private)  Slip slip
           
 
Constructor Summary
SlipFindExecutable(Slip slip)
           
 
Method Summary
(package private)  boolean canComplete(PNodeEnd ne)
           
(package private)  boolean condMightBeAchieved(PatternAssignment cond)
           
(package private)  LListIterator endIterator(LList l)
           
(package private)  void executeNodeEnd(PNodeEnd ne)
           
(package private)  void executeTrivialEnds(LList nodeEnds)
           
(package private)  void findNext(LList allNodeEnds, LListIterator nodeEndIter)
           
(package private)  LList getNodeEnds()
           
(package private)  boolean goalExpanders(PNodeEnd ne, java.util.LinkedList useNow, java.util.LinkedList useLater)
           
(package private)  boolean isAlreadyExpanded(PNodeEnd ne)
           
(package private)  boolean isTrivial(PNodeEnd ne)
           
(package private)  Constraint makeCondition(PatternAssignment pv)
           
(package private)  java.lang.Object makeExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  java.lang.Object makeLaterExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  java.lang.Object makeManualExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  boolean mightAchieveConds(ix.icore.domain.ListOfConstraint conds)
          Determines whether all the conditions can be satisfied individually either by the current world-state or by introducing nodes.
(package private)  PNodeEnd nextStatusExecutable(java.util.Iterator i)
           
(package private)  boolean nodeExpanders(PNodeEnd ne, java.util.LinkedList useNow, java.util.LinkedList useLater)
           
(package private)  void postExpandLaterAlt(PNode node, java.util.LinkedList useLater)
           
(package private)  void postFindNextAlt(PNodeEnd selected, LList allNodeEnds, LListIterator nodeEndIter)
           
(package private)  void postSatisfyByAchieveAlt(PNode node, ix.icore.domain.ListOfConstraint conds)
           
(package private)  boolean refinementApplies(Refinement r, LList pattern)
           
 void run()
           
(package private)  void satisfyNodeEndConds(PNodeEnd ne, ix.icore.domain.ListOfConstraint conds, java.util.List envs)
           
(package private)  boolean someRefinementApplies(PNode node)
           
(package private)  boolean worldStateSatisfiesCond(Constraint cond)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

slip

Slip slip
Constructor Detail

SlipFindExecutable

SlipFindExecutable(Slip slip)
Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable

findNext

void findNext(LList allNodeEnds,
              LListIterator nodeEndIter)

postFindNextAlt

void postFindNextAlt(PNodeEnd selected,
                     LList allNodeEnds,
                     LListIterator nodeEndIter)

makeCondition

Constraint makeCondition(PatternAssignment pv)

satisfyNodeEndConds

void satisfyNodeEndConds(PNodeEnd ne,
                         ix.icore.domain.ListOfConstraint conds,
                         java.util.List envs)

postSatisfyByAchieveAlt

void postSatisfyByAchieveAlt(PNode node,
                             ix.icore.domain.ListOfConstraint conds)

mightAchieveConds

boolean mightAchieveConds(ix.icore.domain.ListOfConstraint conds)
Determines whether all the conditions can be satisfied individually either by the current world-state or by introducing nodes. It does not determine whether all the conds can be satisfied together; nor does it determine that introducing nodes will definitely work, because it might not be possible to get the right variable bindings. At least one of the conditions must look like it can be solved by introducing a node; for now at least /\/ this method is called only when it's already known that the world state cannot satisfy all of the conds together.


worldStateSatisfiesCond

boolean worldStateSatisfiesCond(Constraint cond)

condMightBeAchieved

boolean condMightBeAchieved(PatternAssignment cond)

getNodeEnds

LList getNodeEnds()

endIterator

LListIterator endIterator(LList l)

executeTrivialEnds

void executeTrivialEnds(LList nodeEnds)

isTrivial

boolean isTrivial(PNodeEnd ne)

someRefinementApplies

boolean someRefinementApplies(PNode node)

refinementApplies

boolean refinementApplies(Refinement r,
                          LList pattern)

nextStatusExecutable

PNodeEnd nextStatusExecutable(java.util.Iterator i)

canComplete

boolean canComplete(PNodeEnd ne)

executeNodeEnd

void executeNodeEnd(PNodeEnd ne)

isAlreadyExpanded

boolean isAlreadyExpanded(PNodeEnd ne)

nodeExpanders

boolean nodeExpanders(PNodeEnd ne,
                      java.util.LinkedList useNow,
                      java.util.LinkedList useLater)

goalExpanders

boolean goalExpanders(PNodeEnd ne,
                      java.util.LinkedList useNow,
                      java.util.LinkedList useLater)

makeManualExpander

java.lang.Object makeManualExpander(AgendaItem item,
                                    Refinement r,
                                    MatchEnv env)

makeExpander

java.lang.Object makeExpander(AgendaItem item,
                              Refinement r,
                              MatchEnv env)

makeLaterExpander

java.lang.Object makeLaterExpander(AgendaItem item,
                                   Refinement r,
                                   MatchEnv env)

postExpandLaterAlt

void postExpandLaterAlt(PNode node,
                        java.util.LinkedList useLater)