org.apache.xalan.xsltc.compiler.util

Class Type

Implemented Interfaces:
Constants, InstructionConstants
Known Direct Subclasses:
BooleanType, MethodType, NodeSetType, NodeType, NumberType, ObjectType, ReferenceType, ResultTreeType, StringType, VoidType

public abstract class Type
extends java.lang.Object
implements Constants

Authors:
Jacek Ambroziak
Santiago Pericas-Geertsen
Morten Jorgensen

Field Summary

static Type
Attribute
static Type
Boolean
static Type
Comment
static Type
Element
static Type
Int
static Type
Node
static Type
NodeSet
static Type
Object
static Type
ObjectString
static Type
Processing_Instruction
static Type
Real
static Type
Reference
static Type
ResultTree
static Type
Root
static Type
String
static Type
Text
static Type
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, CALL_FUNCTION_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, 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_SIG, LAST_INDEX, LOAD_DOCUMENT_CLASS, LOCALE_CLASS, LOCALE_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, 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, 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_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
ADD()
Instruction
CMP(boolean less)
Instruction
DIV()
Instruction
DUP()
BranchInstruction
GE(boolean tozero)
BranchInstruction
GT(boolean tozero)
BranchInstruction
LE(boolean tozero)
Instruction
LOAD(int slot)
BranchInstruction
LT(boolean tozero)
Instruction
MUL()
Instruction
NEG()
Instruction
POP()
Instruction
REM()
Instruction
STORE(int slot)
Instruction
SUB()
int
distanceTo(Type type)
Returns the distance between two types.
String
getClassName()
Returns the class name of an internal type's external representation.
boolean
identicalTo(Type other)
Returns true if this and other are identical types.
boolean
implementedAsMethod()
Returns true if this type has no object representaion.
boolean
isNumber()
Returns true if this type is a numeric type.
boolean
isSimple()
Returns true if this type is a simple type.
static Type
newObjectType(Class clazz)
Factory method to instantiate object types.
static Type
newObjectType(String javaClassName)
Factory method to instantiate object 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 denoted by clazz to an object of this type.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Class clazz)
Translates an object of this type to the external (Java) type denoted by clazz.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates an object of this type to an object of type type.
FlowList
translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)
Translates an object of this type to an non-synthesized boolean.
FlowList
translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates object of this type to an object of type type.
void
translateUnBox(ClassGenerator classGen, MethodGenerator methodGen)
Translates an object of this type to its unboxed representation.

Field Details

Attribute

public static final Type Attribute


Boolean

public static final Type Boolean


Comment

public static final Type Comment


Element

public static final Type Element


Int

public static final Type Int


Node

public static final Type Node


NodeSet

public static final Type NodeSet


Object

public static final Type Object


ObjectString

public static final Type ObjectString


Processing_Instruction

public static final Type Processing_Instruction


Real

public static final Type Real


Reference

public static final Type Reference


ResultTree

public static final Type ResultTree


Root

public static final Type Root


String

public static final Type String


Text

public static final Type Text


Void

public static final Type Void

Method Details

ADD

public Instruction ADD()


CMP

public Instruction CMP(boolean less)


DIV

public Instruction DIV()


DUP

public Instruction DUP()


GE

public BranchInstruction GE(boolean tozero)


GT

public BranchInstruction GT(boolean tozero)


LE

public BranchInstruction LE(boolean tozero)


LOAD

public Instruction LOAD(int slot)


LT

public BranchInstruction LT(boolean tozero)


MUL

public Instruction MUL()


NEG

public Instruction NEG()


POP

public Instruction POP()


REM

public Instruction REM()


STORE

public Instruction STORE(int slot)


SUB

public Instruction SUB()


distanceTo

public int distanceTo(Type type)
Returns the distance between two types. This measure is used to select overloaded functions/operators. This method is typically redefined by the subclasses.


getClassName

public String getClassName()
Returns the class name of an internal type's external representation.


identicalTo

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


implementedAsMethod

public boolean implementedAsMethod()
Returns true if this type has no object representaion. Redefined in ResultTreeType.


isNumber

public boolean isNumber()
Returns true if this type is a numeric type. Redefined in NumberType.


isSimple

public boolean isSimple()
Returns true if this type is a simple type. Redefined in NumberType, BooleanType and StringType.


newObjectType

public static Type newObjectType(Class clazz)
Factory method to instantiate object types. Returns a pre-defined instance for java.lang.Object.class and java.lang.String.class.


newObjectType

public static Type newObjectType(String javaClassName)
Factory method to instantiate object types. Returns a pre-defined instance for "java.lang.Object" and "java.lang.String".


toJCType

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


toSignature

public String toSignature()
Returns the signature of an internal type's external representation.


toString

public String toString()
Returns a string representation of this type.


translateBox

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


translateFrom

public void translateFrom(ClassGenerator classGen,
                          MethodGenerator methodGen,
                          Class clazz)
Translates an external (Java) type denoted by clazz to an object of this type. This method is used to translate return values when external functions are called.


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Class clazz)
Translates an object of this type to the external (Java) type denoted by clazz. This method is used to translate parameters when external functions are called.


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Type type)
Translates an object of this type to an object of type type. Expects an object of the former type and pushes an object of the latter.


translateToDesynthesized

public FlowList translateToDesynthesized(ClassGenerator classGen,
                                         MethodGenerator methodGen,
                                         BooleanType type)
Translates an object of this type to an non-synthesized boolean. It does not push a 0 or a 1 but instead returns branchhandle list to be appended to the false list.


translateToDesynthesized

public FlowList translateToDesynthesized(ClassGenerator classGen,
                                         MethodGenerator methodGen,
                                         Type type)
Translates object of this type to an object of type type. Expects an object of the former type and pushes an object of the latter if not boolean. If type type is boolean then a branchhandle list (to be appended to the false list) is returned.


translateUnBox

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


Copyright B) 2004 Apache XML Project. All Rights Reserved.