org.apache.xalan.xsltc.compiler
Class Number

java.lang.Object
  extended by org.apache.xalan.xsltc.compiler.SyntaxTreeNode
      extended by org.apache.xalan.xsltc.compiler.Instruction
          extended by org.apache.xalan.xsltc.compiler.Number
All Implemented Interfaces:
Closure, Constants

final class Number
extends Instruction
implements Closure


Field Summary
private  java.lang.String _className
           
private  java.util.ArrayList _closureVars
           
private  Pattern _count
           
private  AttributeValueTemplate _format
           
private  boolean _formatNeeded
           
private  Pattern _from
           
private  AttributeValueTemplate _groupingSeparator
           
private  AttributeValueTemplate _groupingSize
           
private  AttributeValueTemplate _lang
           
private  AttributeValueTemplate _letterValue
           
private  int _level
           
private  Expression _value
           
private static java.lang.String[] ClassNames
           
private static java.lang.String[] FieldNames
           
private static int LEVEL_ANY
           
private static int LEVEL_MULTIPLE
           
private static int LEVEL_SINGLE
           
 
Fields inherited from class org.apache.xalan.xsltc.compiler.SyntaxTreeNode
_attributes, _parent, _qname, Dummy, IndentIncrement, UNKNOWN_STYLESHEET_NODE_ID
 
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
Number()
           
 
Method Summary
 void addVariable(VariableRefBase variableRef)
          Add new variable to the closure.
private  void compileConstructor(ClassGenerator classGen)
          Compiles a constructor for the class _className that inherits from {Any,Single,Multiple}NodeCounter.
private  void compileDefault(ClassGenerator classGen, MethodGenerator methodGen)
           
private  void compileLocals(NodeCounterGenerator nodeCounterGen, MatchGenerator matchGen, InstructionList il)
          This method compiles code that is common to matchesFrom() and matchesCount() in the auxillary class.
private  void compilePatterns(ClassGenerator classGen, MethodGenerator methodGen)
           
 java.lang.String getInnerClassName()
          Returns the name of the auxiliary class or null if this predicate is compiled inside the Translet.
 Closure getParentClosure()
          Returns a reference to its parent closure or null if outermost.
 boolean hasValue()
          True if the has specified a value for this instance of number.
 boolean inInnerClass()
          Returns true if this closure is compiled in an inner class (i.e.
 boolean isDefault()
          Returns true if this instance of number has neither a from nor a count pattern.
 void parseContents(Parser parser)
          Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions).
 void translate(ClassGenerator classGen, MethodGenerator methodGen)
          Translate this node into JVM bytecodes.
 Type typeCheck(SymbolTable stable)
          Type check all the children of this node.
 
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, getTemplate, getXSLTC, hasAttribute, hasContents, indent, isDummy, lastChild, lookupNamespace, lookupPrefix, parseChildren, removeElement, reportError, reportWarning, setAttributes, setFirstElement, setLineNumber, setParent, setParser, setPrefixMapping, setQName, setQName, translateContents, typeCheckContents, updateScope
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LEVEL_SINGLE

private static final int LEVEL_SINGLE
See Also:
Constant Field Values

LEVEL_MULTIPLE

private static final int LEVEL_MULTIPLE
See Also:
Constant Field Values

LEVEL_ANY

private static final int LEVEL_ANY
See Also:
Constant Field Values

ClassNames

private static final java.lang.String[] ClassNames

FieldNames

private static final java.lang.String[] FieldNames

_from

private Pattern _from

_count

private Pattern _count

_value

private Expression _value

_lang

private AttributeValueTemplate _lang

_format

private AttributeValueTemplate _format

_letterValue

private AttributeValueTemplate _letterValue

_groupingSeparator

private AttributeValueTemplate _groupingSeparator

_groupingSize

private AttributeValueTemplate _groupingSize

_level

private int _level

_formatNeeded

private boolean _formatNeeded

_className

private java.lang.String _className

_closureVars

private java.util.ArrayList _closureVars
Constructor Detail

Number

Number()
Method Detail

inInnerClass

public boolean inInnerClass()
Returns true if this closure is compiled in an inner class (i.e. if this is a real closure).

Specified by:
inInnerClass in interface Closure

getParentClosure

public Closure getParentClosure()
Returns a reference to its parent closure or null if outermost.

Specified by:
getParentClosure in interface Closure

getInnerClassName

public java.lang.String getInnerClassName()
Returns the name of the auxiliary class or null if this predicate is compiled inside the Translet.

Specified by:
getInnerClassName in interface Closure

addVariable

public void addVariable(VariableRefBase variableRef)
Add new variable to the closure.

Specified by:
addVariable in interface Closure

parseContents

public void parseContents(Parser parser)
Description copied from class: SyntaxTreeNode
Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions). The default behaviour is to parser the syntax tree node's children (since there are no common expressions, patterns, etc. that can be handled in this base class.

Overrides:
parseContents in class SyntaxTreeNode
Parameters:
parser - reference to the XSLT parser

typeCheck

public Type typeCheck(SymbolTable stable)
               throws TypeCheckError
Description copied from class: Instruction
Type check all the children of this node.

Overrides:
typeCheck in class Instruction
Parameters:
stable - The compiler/parser's symbol table
Throws:
TypeCheckError

hasValue

public boolean hasValue()
True if the has specified a value for this instance of number.


isDefault

public boolean isDefault()
Returns true if this instance of number has neither a from nor a count pattern.


compileDefault

private void compileDefault(ClassGenerator classGen,
                            MethodGenerator methodGen)

compileConstructor

private void compileConstructor(ClassGenerator classGen)
Compiles a constructor for the class _className that inherits from {Any,Single,Multiple}NodeCounter. This constructor simply calls the same constructor in the super class.


compileLocals

private void compileLocals(NodeCounterGenerator nodeCounterGen,
                           MatchGenerator matchGen,
                           InstructionList il)
This method compiles code that is common to matchesFrom() and matchesCount() in the auxillary class.


compilePatterns

private void compilePatterns(ClassGenerator classGen,
                             MethodGenerator methodGen)

translate

public void translate(ClassGenerator classGen,
                      MethodGenerator methodGen)
Description copied from class: Instruction
Translate this node into JVM bytecodes.

Overrides:
translate in class Instruction
Parameters:
classGen - BCEL Java class generator
methodGen - BCEL Java method generator