org.apache.xalan.xsltc.compiler.util

Class ReferenceType

Implemented Interfaces:
Constants, InstructionConstants

public final class ReferenceType
extends Type

Authors:
Jacek Ambroziak
Santiago Pericas-Geertsen
Erwin Bolwidt

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, ATTRIBUTES_SIG, ATTRIBUTE_LIST_FIELD, ATTRIBUTE_LIST_IMPL_CLASS, ATTRIBUTE_LIST_IMPL_SIG, ATTR_SET_SIG, BASIS_LIBRARY_CLASS, BOOLEAN_CLASS, BOOLEAN_VALUE, BOOLEAN_VALUE_SIG, CACHED_NODE_LIST_ITERATOR_CLASS, CHARACTERS, CHARACTERSW, CHARACTERSW_SIG, CHARACTERS_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, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG, HAS_ATTRIBUTE, HAS_ATTRIBUTE_SIG, INTEGER_CLASS, INTEGER_SIG, INTERNAL, INT_VALUE, INT_VALUE_SIG, 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, NAMESPACE_FEATURE, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG, NAMES_INDEX, NAMES_INDEX_SIG, NEXT, NEXTID, NEXT_SIG, 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_NAMESPACE_ARRAY_FIELD, STATIC_NAMES_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

Method Summary

Instruction
LOAD(int slot)
Instruction
STORE(int slot)
boolean
identicalTo(Type other)
Returns true if this and other are identical types.
org.apache.bcel.generic.Type
toJCType()
String
toSignature()
Returns the signature of an internal type's external representation.
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
translateFrom(ClassGenerator classGen, MethodGenerator methodGen, Class clazz)
Translates an external Java type into a reference.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Class clazz)
Translates a reference into the Java type denoted by clazz.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)
Translates a reference to an object of internal type type.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, NodeSetType type)
Casts a reference into a NodeIterator.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, NodeType type)
Casts a reference into a Node.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, ObjectType type)
Subsume reference into ObjectType.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, RealType type)
Translates a reference into an object of internal type type.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, ResultTreeType type)
Casts a reference into a ResultTree.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, StringType type)
Translates reference into object of internal type type.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates a reference to an object of internal type type.
FlowList
translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)
Expects a reference on the stack and translates it to 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, DIV, DUP, GE, GT, LE, LOAD, LT, MUL, NEG, POP, REM, STORE, SUB, distanceTo, getClassName, identicalTo, implementedAsMethod, isNumber, isSimple, newObjectType, newObjectType, toJCType, toSignature, toString, translateBox, translateFrom, translateTo, translateTo, translateToDesynthesized, translateToDesynthesized, translateUnBox

Method Details

LOAD

public Instruction LOAD(int slot)
Overrides:
LOAD in interface Type

STORE

public Instruction STORE(int slot)
Overrides:
STORE in interface Type

identicalTo

public boolean identicalTo(Type other)
Returns true if this and other are identical types.
Overrides:
identicalTo in interface Type

toJCType

public org.apache.bcel.generic.Type toJCType()
Overrides:
toJCType in interface Type

toSignature

public String toSignature()
Returns the signature of an internal type's external representation.
Overrides:
toSignature in interface Type

toString

public String toString()
Returns a string representation of this type.
Overrides:
toString in interface Type

translateBox

public void translateBox(ClassGenerator classGen,
                         MethodGenerator methodGen)
Translates an object of this type to its boxed representation.
Overrides:
translateBox in interface Type

translateFrom

public void translateFrom(ClassGenerator classGen,
                          MethodGenerator methodGen,
                          Class clazz)
Translates an external Java type into a reference. Only conversion allowed is from java.lang.Object.
Overrides:
translateFrom in interface Type

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Class clazz)
Translates a reference into the Java type denoted by clazz.
Overrides:
translateTo in interface Type

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        BooleanType type)
Translates a reference to an object of internal type type.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        NodeSetType type)
Casts a reference into a NodeIterator.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        NodeType type)
Casts a reference into a Node.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        ObjectType type)
Subsume reference into ObjectType.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        RealType type)
Translates a reference into an object of internal type type.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        ResultTreeType type)
Casts a reference into a ResultTree.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        StringType type)
Translates reference into object of internal type type.
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Type type)
Translates a reference to an object of internal type type. The translation to int is undefined since references are always converted to reals in arithmetic expressions.
Overrides:
translateTo in interface Type
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo

translateToDesynthesized

public FlowList translateToDesynthesized(ClassGenerator classGen,
                                         MethodGenerator methodGen,
                                         BooleanType type)
Expects a reference on the stack and translates it to 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 interface Type
See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateToDesynthesized

translateUnBox

public void translateUnBox(ClassGenerator classGen,
                           MethodGenerator methodGen)
Translates an object of this type to its unboxed representation.
Overrides:
translateUnBox in interface Type

Copyright © 2006 Apache XML Project. All Rights Reserved.