net.sf.joost.instruction
Class ProcessBase

java.lang.Object
  extended by net.sf.joost.instruction.AbstractInstruction
      extended by net.sf.joost.instruction.NodeBase
          extended by net.sf.joost.instruction.ProcessBase
All Implemented Interfaces:
Cloneable, Constants
Direct Known Subclasses:
CallProcedureFactory.Instance, PAttributesFactory.Instance, PBufferFactory.Instance, PChildrenFactory.Instance, PDocumentFactory.Instance, PSelfFactory.Instance, PSiblingsFactory.Instance

public class ProcessBase
extends NodeBase

Common base class for all stx:process-xxx instructions

Version:
$Revision: 2.20 $ $Date: 2009/09/22 21:13:44 $
Author:
Oliver Becker

Nested Class Summary
private  class ProcessBase.ProcessEnd
          Instruction the clears the parameter stack
 
Nested classes/interfaces inherited from class net.sf.joost.instruction.NodeBase
NodeBase.End
 
Field Summary
private  GroupBase bufGroupScope
           
private  boolean bufScopeDetermined
           
protected  Vector children
           
protected  Tree filter
           
private  String groupExpName
           
private  String groupQName
           
private  Tree hrefTree
           
private  Stack paramStack
           
protected  GroupBase targetGroup
           
protected  String useBufExpName
           
protected  String useBufQName
           
 
Fields inherited from class net.sf.joost.instruction.NodeBase
lastChild, localFieldStack, nodeEnd, parent, preserveSpace, publicId, qName, scopedVariables, systemId
 
Fields inherited from class net.sf.joost.instruction.AbstractInstruction
colNo, lineNo, next
 
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
 
Constructor Summary
ProcessBase(String qName, NodeBase parent, ParseContext context, String groupQName, String method, String src)
           
 
Method Summary
 boolean compile(int pass, ParseContext context)
          Determine target group
protected  TransformerHandler getProcessHandler(Context context)
          Returns a handler that performs a transformation according to the specified filter value.
 void insert(NodeBase node)
          Ensure that only stx:with-param children will be inserted
protected  void onDeepCopy(AbstractInstruction copy, HashMap copies)
          Callback that will be called when a clone of this instance has been created.
 short process(Context context)
          assign target group, save and reset parameters
 
Methods inherited from class net.sf.joost.instruction.NodeBase
declareVariable, getNode, getNodeEnd, mayDropEnd, processable, processEnd, setEndLocation, toString
 
Methods inherited from class net.sf.joost.instruction.AbstractInstruction
deepCopy, deepHashtableCopy, deepTemplateArrayCopy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

paramStack

private Stack paramStack

children

protected Vector children

groupQName

private String groupQName

groupExpName

private String groupExpName

targetGroup

protected GroupBase targetGroup

useBufQName

protected String useBufQName

useBufExpName

protected String useBufExpName

filter

protected Tree filter

hrefTree

private Tree hrefTree

bufScopeDetermined

private boolean bufScopeDetermined

bufGroupScope

private GroupBase bufGroupScope
Constructor Detail

ProcessBase

public ProcessBase(String qName,
                   NodeBase parent,
                   ParseContext context,
                   String groupQName,
                   String method,
                   String src)
            throws SAXParseException
Throws:
SAXParseException
Method Detail

insert

public void insert(NodeBase node)
            throws SAXParseException
Ensure that only stx:with-param children will be inserted

Overrides:
insert in class NodeBase
Parameters:
node - the node to be inserted
Throws:
SAXParseException

compile

public boolean compile(int pass,
                       ParseContext context)
                throws SAXException
Determine target group

Overrides:
compile in class NodeBase
Parameters:
pass - the number of invocations already performed on this node
context - the parse context
Returns:
true if another invocation in the next pass is necessary, false if the compiling is complete. This instance returns false.
Throws:
SAXException

process

public short process(Context context)
              throws SAXException
assign target group, save and reset parameters

Overrides:
process in class NodeBase
Parameters:
context - the current context
Returns:
Constants.PR_CONTINUE
Throws:
SAXException - if an error occurs (in a derived class)

getProcessHandler

protected TransformerHandler getProcessHandler(Context context)
                                        throws SAXException
Returns a handler that performs a transformation according to the specified filter value.

Throws:
SAXException - if this handler couldn't be created

onDeepCopy

protected void onDeepCopy(AbstractInstruction copy,
                          HashMap copies)
Description copied from class: AbstractInstruction
Callback that will be called when a clone of this instance has been created. To be overridden in subclasses.

Overrides:
onDeepCopy in class NodeBase
Parameters:
copy - the created clones
copies - the map of already copied objects