ix.iplan
Class SlipFindExecutable

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

 class SlipFindExecutable
extends java.lang.Object
implements Slip.Step

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


Nested Class Summary
(package private)  class SlipFindExecutable.ExpandGoalAlt
           
(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)  LListIterator endIterator(LList l)
           
(package private)  void executeTrivialEnds(LList nodeEnds)
           
(package private)  java.util.List<PNodeEnd> findInteractingEnds(PNodeEnd selected)
           
(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 interactingCondsAndEffects(PNodeEnd selected, java.util.Set conds, java.util.Set effects, PNodeEnd ne)
           
(package private)  boolean isAlreadyExpanded(PNodeEnd ne)
           
(package private)  boolean isTrivial(PNodeEnd ne)
           
(package private)  Constraint makeCondition(PatternAssignment pv)
           
(package private)  SlipExpander makeExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  SlipExpander makeLaterExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  SlipExpander makeManualExpander(AgendaItem item, Refinement r, MatchEnv env)
           
(package private)  void maybePostExpandGoalAlt(PNodeEnd selected)
           
(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 nextExecutable(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, java.lang.String doing)
           
(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)

maybePostExpandGoalAlt

void maybePostExpandGoalAlt(PNodeEnd selected)

postFindNextAlt

void postFindNextAlt(PNodeEnd selected,
                     LList allNodeEnds,
                     LListIterator nodeEndIter,
                     java.lang.String doing)

findInteractingEnds

java.util.List<PNodeEnd> findInteractingEnds(PNodeEnd selected)

interactingCondsAndEffects

boolean interactingCondsAndEffects(PNodeEnd selected,
                                   java.util.Set conds,
                                   java.util.Set effects,
                                   PNodeEnd ne)

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)

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)

nextExecutable

PNodeEnd nextExecutable(java.util.Iterator i)

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

SlipExpander makeManualExpander(AgendaItem item,
                                Refinement r,
                                MatchEnv env)

makeExpander

SlipExpander makeExpander(AgendaItem item,
                          Refinement r,
                          MatchEnv env)

makeLaterExpander

SlipExpander makeLaterExpander(AgendaItem item,
                               Refinement r,
                               MatchEnv env)

postExpandLaterAlt

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