net.sf.joost.instruction
Class ForEachFactory.Instance
java.lang.Object
net.sf.joost.instruction.AbstractInstruction
net.sf.joost.instruction.NodeBase
net.sf.joost.instruction.ForEachFactory.Instance
- All Implemented Interfaces:
- Constants
- Enclosing class:
- ForEachFactory
- public final class ForEachFactory.Instance
- extends NodeBase
Represents an instance of the for-each-item element.
| Fields inherited from interface net.sf.joost.Constants |
DEBUG, DEFAULT_ENCODING, FEAT_NS, FEAT_NSPREFIX, FEATURE_URI_PREFIX, FUNC_NS, JOOST_EXT_NS, PR_ATTRIBUTES, PR_BUFFER, PR_CHILDREN, PR_CONTINUE, PR_ERROR, PR_SELF, PR_SIBLINGS, STX_NS |
|
Method Summary |
boolean |
compile(int pass)
Create the loop by connecting the end with the start |
short |
process(Context context)
If continued is true then take the next
item from a previously computed sequence, otherwise evaluate
the select attribute and take the first item. |
short |
processEnd(Context context)
Sets continued to true to signal the loop. |
varName
private String varName
expName
private String expName
select
private Tree select
resultStack
private Stack resultStack
- Stack that stores the remaining sequence of the select attribute
in case this for-each-item was interrupted via
stx:process-xxx
contents
private AbstractInstruction contents
successor
private AbstractInstruction successor
continued
private boolean continued
- Determines whether this instruction is encountered the first time
(
false; i.e. the select attribute needs
to be evaluated) or during the processing (true;
i.e. this is part of the loop)
ForEachFactory.Instance
protected ForEachFactory.Instance(String qName,
NodeBase parent,
ParseContext context,
String varName,
String expName,
Tree select)
compile
public boolean compile(int pass)
- Create the loop by connecting the end with the start
- Overrides:
compile in class NodeBase
- Parameters:
pass - the number of invocations already performed on this node
- Returns:
true if another invocation in the next pass is
necessary, false if the compiling is complete.
This instance returns false.
process
public short process(Context context)
throws SAXException
- If
continued is true then take the next
item from a previously computed sequence, otherwise evaluate
the select attribute and take the first item.
- Overrides:
process in class NodeBase
- Returns:
Constants.PR_CONTINUE
- Throws:
SAXException - if an error occurs (in a derived class)
processEnd
public short processEnd(Context context)
throws SAXException
- Sets
continued to true to signal the loop.
- Overrides:
processEnd in class NodeBase
- Parameters:
context - the current context
- Returns:
Constants.PR_CONTINUE
- Throws:
SAXException - if an error occurs (in a derived class)