org.apache.xalan.xsltc.compiler.util

## Class ResultTreeType

- java.lang.Object
- - org.apache.xalan.xsltc.compiler.util.Type
  - - org.apache.xalan.xsltc.compiler.util.ResultTreeType

- All Implemented Interfaces:
    org.apache.bcel.generic.InstructionConstants, Constants

      public final class ResultTreeType
      extends Type

  Author:
    Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.bcel.generic.InstructionConstants

      `org.apache.bcel.generic.InstructionConstants.Clinit`

  - ### Field Summary

    - ### Fields inherited from class org.apache.xalan.xsltc.compiler.util.Type

      `Attribute, Boolean, Comment, Element, Int, Node, NodeSet, Object, Processing_Instruction, Real, Reference, ResultTree, Root, String, Text, Void`

    - ### 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`

    - ### Fields inherited from interface org.apache.bcel.generic.InstructionConstants

      `AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ARETURN, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ATHROW, BALOAD, BASTORE, bla, CALOAD, CASTORE, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DMUL, DNEG, DREM, DRETURN, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FMUL, FNEG, FREM, FRETURN, FSUB, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, ILOAD_0, ILOAD_1, ILOAD_2, IMUL, INEG, INSTRUCTIONS, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISUB, IUSHR, IXOR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDIV, LMUL, LNEG, LOR, LREM, LRETURN, LSHL, LSHR, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, NOP, POP, POP2, RETURN, SALOAD, SASTORE, SWAP, THIS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ResultTreeType(java.lang.String methodName)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getClassName()` Returns the class name of an internal type's external representation.
    `java.lang.String` | `getMethodName()`
    `boolean` | `identicalTo(Type other)` Returns true if this and other are identical types.
    `boolean` | `implementedAsMethod()` Returns true if this type has no object representaion.
    `org.apache.bcel.generic.Instruction` | `LOAD(int slot)`
    `org.apache.bcel.generic.Instruction` | `STORE(int slot)`
    `org.apache.bcel.generic.Type` | `toJCType()`
    `java.lang.String` | `toSignature()` Returns the signature of an internal type's external representation.
    `java.lang.String` | `toString()` Returns a string representation of this type.
    `void` | `translateBox(ClassGenerator classGen, MethodGenerator methodGen)` Translates an object of this type to its boxed representation.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)` Expects an result tree on the stack and pushes a boolean.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)` Translates a result tree to a Java type denoted by `clazz`.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, NodeSetType type)` Expects a result tree on the stack and pushes a node-set (iterator).
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, ObjectType type)` Subsume result tree into ObjectType.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, RealType type)` Expects an result tree on the stack and pushes a real.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, ReferenceType type)` Expects a result tree on the stack and pushes a boxed result tree.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, StringType type)` Expects an result tree on the stack and pushes a string.
    `void` | `translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)` Translates a result tree to object of internal type `type`.
    `FlowList` | `translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)` Translates a result tree into a non-synthesized boolean.
    `void` | `translateUnBox(ClassGenerator classGen, MethodGenerator methodGen)` Translates an object of this type to its unboxed representation.

    - ### Methods inherited from class org.apache.xalan.xsltc.compiler.util.Type

      `ADD, CMP, distanceTo, DIV, DUP, GE, GT, isNumber, isSimple, LE, LT, MUL, NEG, newObjectType, newObjectType, POP, REM, SUB, translateFrom, translateToDesynthesized`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ResultTreeType

          public ResultTreeType(java.lang.String methodName)

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

      Description copied from class: `Type`
      Returns a string representation of this type.
      Specified by:
        `toString` in class `Type`

    - #### identicalTo

          public boolean identicalTo(Type other)

      Description copied from class: `Type`
      Returns true if this and other are identical types.
      Specified by:
        `identicalTo` in class `Type`

    - #### toSignature

          public java.lang.String toSignature()

      Description copied from class: `Type`
      Returns the signature of an internal type's external representation.
      Specified by:
        `toSignature` in class `Type`

    - #### toJCType

          public org.apache.bcel.generic.Type toJCType()

      Specified by:
        `toJCType` in class `Type`

    - #### getMethodName

          public java.lang.String getMethodName()

    - #### implementedAsMethod

          public boolean implementedAsMethod()

      Description copied from class: `Type`
      Returns true if this type has no object representaion. Redefined in ResultTreeType.
      Overrides:
        `implementedAsMethod` in class `Type`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  Type type)

      Translates a result tree to object of internal type `type`. The translation to int is undefined since result trees are always converted to reals in arithmetic expressions.
      Overrides:
        `translateTo` in class `Type`
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of the type to translate the result tree to
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  BooleanType type)

      Expects an result tree on the stack and pushes a boolean. Translates a result tree to a boolean by first converting it to string.
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of BooleanType (any)
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  StringType type)

      Expects an result tree on the stack and pushes a string.
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of StringType (any)
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  RealType type)

      Expects an result tree on the stack and pushes a real. Translates a result tree into a real by first converting it to string.
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of RealType (any)
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  ReferenceType type)

      Expects a result tree on the stack and pushes a boxed result tree. Result trees are already boxed so the translation is just a NOP.
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of ReferenceType (any)
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  NodeSetType type)

      Expects a result tree on the stack and pushes a node-set (iterator). Note that the produced iterator is an iterator for the DOM that contains the result tree, and not the DOM that is currently in use. This conversion here will therefore not directly work with elements such as and without the DOM parameter/variable being updates as well.
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of NodeSetType (any)
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  ObjectType type)

      Subsume result tree into ObjectType.
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateToDesynthesized

          public FlowList translateToDesynthesized(ClassGenerator classGen,
                                                   MethodGenerator methodGen,
                                                   BooleanType type)

      Translates a result tree into a non-synthesized boolean. It does not push a 0 or a 1 but instead returns branchhandle list to be appended to the false list.
      Overrides:
        `translateToDesynthesized` in class `Type`
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `type` - An instance of BooleanType (any)
      See Also:
        `Type.translateToDesynthesized(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateTo

          public void translateTo(ClassGenerator classGen,
                                  MethodGenerator methodGen,
                                  java.lang.Class clazz)

      Translates a result tree to a Java type denoted by `clazz`. Expects a result tree on the stack and pushes an object of the appropriate type after coercion. Result trees are translated to W3C Node or W3C NodeList and the translation is done via node-set type.
      Overrides:
        `translateTo` in class `Type`
      Parameters:
        `classGen` - A BCEL class generator
        `methodGen` - A BCEL method generator
        `clazz` - An reference to the Class to translate to
      See Also:
        `Type.translateTo(org.apache.xalan.xsltc.compiler.util.ClassGenerator, org.apache.xalan.xsltc.compiler.util.MethodGenerator, org.apache.xalan.xsltc.compiler.util.Type)`

    - #### translateBox

          public void translateBox(ClassGenerator classGen,
                                   MethodGenerator methodGen)

      Translates an object of this type to its boxed representation.
      Overrides:
        `translateBox` in class `Type`

    - #### translateUnBox

          public void translateUnBox(ClassGenerator classGen,
                                     MethodGenerator methodGen)

      Translates an object of this type to its unboxed representation.
      Overrides:
        `translateUnBox` in class `Type`

    - #### getClassName

          public java.lang.String getClassName()

      Returns the class name of an internal type's external representation.
      Overrides:
        `getClassName` in class `Type`

    - #### LOAD

          public org.apache.bcel.generic.Instruction LOAD(int slot)

      Overrides:
        `LOAD` in class `Type`

    - #### STORE

          public org.apache.bcel.generic.Instruction STORE(int slot)

      Overrides:
        `STORE` in class `Type`

Copyright © 2023 Apache XML Project. All Rights Reserved.