ix.iplan
Class SlipFindExecutable
java.lang.Object
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.
Field Summary |
(package private) 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 |
slip
Slip slip
SlipFindExecutable
SlipFindExecutable(Slip slip)
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)