org.apache.xalan.xsltc.compiler
Class StepPattern
java.lang.Object
org.apache.xalan.xsltc.compiler.SyntaxTreeNode
org.apache.xalan.xsltc.compiler.Expression
org.apache.xalan.xsltc.compiler.Pattern
org.apache.xalan.xsltc.compiler.LocationPathPattern
org.apache.xalan.xsltc.compiler.RelativePathPattern
org.apache.xalan.xsltc.compiler.StepPattern
- All Implemented Interfaces:
- Constants
- Direct Known Subclasses:
- ProcessingInstructionPattern
class StepPattern
- extends RelativePathPattern
Fields inherited from interface org.apache.xalan.xsltc.compiler.Constants |
ABSOLUTE_ITERATOR, ACC_FINAL, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ADD_ATTRIBUTE, ADD_ATTRIBUTE_SIG, ADD_ITERATOR, ADD_ITERATOR_SIG, ADD_PARAMETER, ADD_PARAMETER_SIG, APPLY_TEMPLATES, ATTR_SET_SIG, ATTRIBUTE_LIST_FIELD, ATTRIBUTE_LIST_IMPL_CLASS, ATTRIBUTE_LIST_IMPL_SIG, ATTRIBUTES_SIG, BASIS_LIBRARY_CLASS, BOOLEAN_CLASS, BOOLEAN_VALUE, BOOLEAN_VALUE_SIG, CACHED_NODE_LIST_ITERATOR_CLASS, CHARACTERS, CHARACTERS_SIG, CHARACTERSW, CHARACTERSW_SIG, CLEAR_ATTRIBUTES, CLEAR_ATTRIBUTES_SIG, COLLATOR_CLASS, COLLATOR_SIG, COMPILER_PACKAGE, CURRENT_NODE_LIST_FILTER, CURRENT_NODE_LIST_FILTER_SIG, CURRENT_NODE_LIST_ITERATOR, CURRENT_NODE_LIST_ITERATOR_SIG, DEFAULT_NODE_COUNTER, DEFAULT_NODE_COUNTER_SIG, DOCUMENT_PNAME, DOM_ADAPTER_CLASS, DOM_ADAPTER_SIG, DOM_FIELD, DOM_IMPL, DOM_IMPL_CLASS, DOM_IMPL_SIG, DOM_INTF, DOM_INTF_SIG, DOM_PNAME, DOUBLE_CLASS, DOUBLE_SIG, DOUBLE_VALUE, DOUBLE_VALUE_SIG, DUP_FILTERED_ITERATOR, EMPTYATTR_FIELD, EMPTYSTRING, ERROR, EXPAND_STYLESHEET_QNAME_REF, EXPAND_STYLESHEET_QNAME_SIG, FALLBACK_CLASS, FATAL, FILTER_INTERFACE, FILTER_INTERFACE_SIG, FILTER_ITERATOR, FILTER_STEP_ITERATOR, FORMAT_SYMBOLS_FIELD, GET_ATTRIBUTE_VALUE, GET_ATTRIBUTE_VALUE_SIG, GET_CHILDREN, GET_CHILDREN_SIG, GET_ELEMENT_VALUE, GET_ELEMENT_VALUE_SIG, GET_ITERATOR_SIG, GET_NODE_NAME, GET_NODE_NAME_SIG, GET_NODE_TYPE, GET_NODE_TYPE_SIG, GET_NODE_VALUE, GET_NODE_VALUE_ITERATOR, GET_NODE_VALUE_ITERATOR_SIG, GET_NODE_VALUE_SIG, GET_PARAMETER, GET_PARAMETER_SIG, GET_PARENT, GET_PARENT_SIG, GET_TYPED_CHILDREN, GET_TYPED_CHILDREN_SIG, GET_UNPARSED_ENTITY_URI, GET_UNPARSED_ENTITY_URI_SIG, HAS_ATTRIBUTE, HAS_ATTRIBUTE_SIG, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG, INT_VALUE, INT_VALUE_SIG, INTEGER_CLASS, INTEGER_SIG, INTERNAL, INVOKE_METHOD, ITERATOR_FIELD_SIG, ITERATOR_PNAME, KEY_INDEX_CLASS, KEY_INDEX_ITERATOR_SIG, KEY_INDEX_SIG, LAST_INDEX, LOAD_DOCUMENT_CLASS, LOCALE_CLASS, LOCALE_SIG, LOOKUP_STYLESHEET_QNAME_NS_REF, LOOKUP_STYLESHEET_QNAME_NS_SIG, MAKE_NODE, MAKE_NODE_LIST, MAKE_NODE_LIST_SIG, MAKE_NODE_LIST_SIG2, MAKE_NODE_SIG, MAKE_NODE_SIG2, MATCHING_ITERATOR, MATH_CLASS, MULTI_DOM_CLASS, MULTI_DOM_SIG, NAMES_INDEX, NAMES_INDEX_SIG, NAMESPACE_FEATURE, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG, NEXT, NEXT_SIG, NEXTID, NODE, NODE_COUNTER, NODE_COUNTER_SIG, NODE_FIELD, NODE_FIELD_SIG, NODE_ITERATOR, NODE_ITERATOR_BASE, NODE_ITERATOR_SIG, NODE_PNAME, NODE_SIG, NODE_SORT_FACTORY, NODE_SORT_FACTORY_SIG, NODE_SORT_RECORD, NODE_SORT_RECORD_SIG, NS_ANCESTORS_INDEX_SIG, NTH_ITERATOR_CLASS, OBJECT_CLASS, OBJECT_SIG, ORDER_ITERATOR, ORDER_ITERATOR_SIG, OUTPUT_BASE, OUTPUT_HANDLER, OUTPUT_HANDLER_SIG, POP_PARAM_FRAME, POP_PARAM_FRAME_SIG, POSITION_INDEX, PREFIX_URIS_ARRAY_SIG, PREFIX_URIS_IDX_SIG, PUSH_PARAM_FRAME, PUSH_PARAM_FRAME_SIG, REDIRECT_URI, RESET, RESET_SIG, RTF_INITIAL_SIZE, RUNTIME_NODE_CLASS, RUNTIME_PACKAGE, SAX_IMPL, SAX_IMPL_CLASS, SAX_IMPL_SIG, SET_START_NODE, SET_START_NODE_SIG, SINGLETON_ITERATOR, SORT_ITERATOR, SORT_ITERATOR_SIG, STATIC_CHAR_DATA_FIELD, STATIC_CHAR_DATA_FIELD_SIG, STATIC_NAMES_ARRAY_FIELD, STATIC_NAMESPACE_ARRAY_FIELD, STATIC_NS_ANCESTORS_ARRAY_FIELD, STATIC_PREFIX_URIS_ARRAY_FIELD, STATIC_PREFIX_URIS_IDX_ARRAY_FIELD, STATIC_TYPES_ARRAY_FIELD, STATIC_URIS_ARRAY_FIELD, STEP_ITERATOR_CLASS, STREAM_XML_OUTPUT, STRING, STRING_BUFFER_CLASS, STRING_BUFFER_SIG, STRING_CLASS, STRING_SIG, STRING_TO_INT, STRING_TO_INT_SIG, STRING_TO_REAL, STRING_TO_REAL_SIG, STRING_VALUE_HANDLER, STRING_VALUE_HANDLER_SIG, STRING_WRITER, STRIP_SPACE, STRIP_SPACE_INTF, STRIP_SPACE_PARAMS, STRIP_SPACE_SIG, TRANSLET_CLASS, TRANSLET_FIELD, TRANSLET_FIELD_SIG, TRANSLET_INTF, TRANSLET_INTF_SIG, TRANSLET_OUTPUT_BASE, TRANSLET_OUTPUT_INTERFACE, TRANSLET_OUTPUT_PNAME, TRANSLET_OUTPUT_SIG, TRANSLET_PNAME, TRANSLET_SIG, TRANSLET_URI, TRANSLET_VERSION_INDEX, TRANSLET_VERSION_INDEX_SIG, TYPES_INDEX, TYPES_INDEX_SIG, UNION_ITERATOR_CLASS, UNION_ITERATOR_SIG, UNSUPPORTED, URIS_INDEX, URIS_INDEX_SIG, WARNING, WRITER_SIG, XHTML_URI, XMLNS_PREFIX, XMLNS_STRING, XMLNS_URI, XSLT_PACKAGE, XSLT_URI |
Constructor Summary |
StepPattern(int axis,
int nodeType,
java.util.Vector predicates)
|
Methods inherited from class org.apache.xalan.xsltc.compiler.Expression |
backPatchFalseList, backPatchTrueList, compile, desynthesize, evaluateAtCompileTime, getFalseList, getTrueList, getType, hasLastCall, hasPositionCall, lookupPrimop, startIterator, synthesize, translateDesynthesized |
Methods inherited from class org.apache.xalan.xsltc.compiler.SyntaxTreeNode |
addAttribute, addElement, addPrefixMapping, compileResultTree, contextDependent, dependentContents, display, displayContents, elementAt, elementCount, elements, getAttribute, getAttribute, getAttributes, getContents, getImportPrecedence, getLineNumber, getNodeIDForStylesheetNSLookup, getParent, getParser, getPrefixMapping, getQName, getStylesheet, getSymbolTable, getXSLTC, hasAttribute, hasContents, indent, isDummy, lastChild, lookupNamespace, lookupPrefix, parseChildren, parseContents, removeElement, reportError, reportWarning, setAttributes, setFirstElement, setLineNumber, setParent, setPrefixMapping, setQName, setQName, translateContents, typeCheckContents, updateScope |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
NO_CONTEXT
private static final int NO_CONTEXT
- See Also:
- Constant Field Values
SIMPLE_CONTEXT
private static final int SIMPLE_CONTEXT
- See Also:
- Constant Field Values
GENERAL_CONTEXT
private static final int GENERAL_CONTEXT
- See Also:
- Constant Field Values
_axis
protected final int _axis
_nodeType
protected final int _nodeType
_predicates
protected java.util.Vector _predicates
_step
private Step _step
_isEpsilon
private boolean _isEpsilon
_contextCase
private int _contextCase
_priority
private double _priority
StepPattern
public StepPattern(int axis,
int nodeType,
java.util.Vector predicates)
setParser
public void setParser(Parser parser)
- Description copied from class:
SyntaxTreeNode
- Set this node's parser. The parser (the XSLT parser) gives this
syntax tree node access to the symbol table and XPath parser.
- Overrides:
setParser
in class SyntaxTreeNode
- Parameters:
parser
- The XSLT parser.
getNodeType
public int getNodeType()
setPriority
public void setPriority(double priority)
getKernelPattern
public StepPattern getKernelPattern()
- Specified by:
getKernelPattern
in class LocationPathPattern
isWildcard
public boolean isWildcard()
- Specified by:
isWildcard
in class LocationPathPattern
setPredicates
public StepPattern setPredicates(java.util.Vector predicates)
hasPredicates
protected boolean hasPredicates()
getDefaultPriority
public double getDefaultPriority()
- Overrides:
getDefaultPriority
in class LocationPathPattern
getAxis
public int getAxis()
- Overrides:
getAxis
in class LocationPathPattern
reduceKernelPattern
public void reduceKernelPattern()
- Specified by:
reduceKernelPattern
in class LocationPathPattern
toString
public java.lang.String toString()
- Overrides:
toString
in class LocationPathPattern
analyzeCases
private int analyzeCases()
getNextFieldName
private java.lang.String getNextFieldName()
typeCheck
public Type typeCheck(SymbolTable stable)
throws TypeCheckError
- Description copied from class:
Pattern
- Returns the type of a pattern, which is always a
NodeType
.
A NodeType
has a number of subtypes defined by
NodeType._type
corresponding to each type of node.
- Overrides:
typeCheck
in class LocationPathPattern
- Parameters:
stable
- The compiler/parser's symbol table
- Throws:
TypeCheckError
translateKernel
private void translateKernel(ClassGenerator classGen,
MethodGenerator methodGen)
translateNoContext
private void translateNoContext(ClassGenerator classGen,
MethodGenerator methodGen)
translateSimpleContext
private void translateSimpleContext(ClassGenerator classGen,
MethodGenerator methodGen)
translateGeneralContext
private void translateGeneralContext(ClassGenerator classGen,
MethodGenerator methodGen)
translate
public void translate(ClassGenerator classGen,
MethodGenerator methodGen)
- Description copied from class:
Pattern
- Translate this node into JVM bytecodes. Patterns are translated as
boolean expressions with true/false lists. Before calling
translate
on a pattern, make sure that the node being
matched is on top of the stack. After calling translate
,
make sure to backpatch both true and false lists. True lists are the
default, in the sense that they always "fall through". If this
is not the intended semantics (e.g., see
AlternativePattern.translate(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator)
)
then a GOTO must be appended to the instruction list after calling
translate
.
- Overrides:
translate
in class LocationPathPattern
- Parameters:
classGen
- BCEL Java class generatormethodGen
- BCEL Java method generator