Class Type
- java.lang.Object
-
- org.apache.xalan.xsltc.compiler.util.Type
-
- All Implemented Interfaces:
org.apache.bcel.generic.InstructionConstants
,Constants
- Direct Known Subclasses:
BooleanType
,MethodType
,NodeSetType
,NodeType
,NumberType
,ObjectType
,ReferenceType
,ResultTreeType
,StringType
,VoidType
public abstract class Type extends java.lang.Object implements Constants
- Author:
- Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen
-
-
Field Summary
Fields Modifier and Type Field Description 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
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, 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 Description Type()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.apache.bcel.generic.Instruction
ADD()
org.apache.bcel.generic.Instruction
CMP(boolean less)
int
distanceTo(Type type)
Returns the distance between two types.org.apache.bcel.generic.Instruction
DIV()
org.apache.bcel.generic.Instruction
DUP()
org.apache.bcel.generic.BranchInstruction
GE(boolean tozero)
java.lang.String
getClassName()
Returns the class name of an internal type's external representation.org.apache.bcel.generic.BranchInstruction
GT(boolean tozero)
abstract 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.org.apache.bcel.generic.BranchInstruction
LE(boolean tozero)
org.apache.bcel.generic.Instruction
LOAD(int slot)
org.apache.bcel.generic.BranchInstruction
LT(boolean tozero)
org.apache.bcel.generic.Instruction
MUL()
org.apache.bcel.generic.Instruction
NEG()
static Type
newObjectType(java.lang.Class clazz)
Factory method to instantiate object types.static Type
newObjectType(java.lang.String javaClassName)
Factory method to instantiate object types.org.apache.bcel.generic.Instruction
POP()
org.apache.bcel.generic.Instruction
REM()
org.apache.bcel.generic.Instruction
STORE(int slot)
org.apache.bcel.generic.Instruction
SUB()
abstract org.apache.bcel.generic.Type
toJCType()
abstract java.lang.String
toSignature()
Returns the signature of an internal type's external representation.abstract 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
translateFrom(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)
Translates an external (Java) type denoted byclazz
to an object of this type.void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)
Translates an object of this type to the external (Java) type denoted byclazz
.void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates an object of this type to an object of typetype
.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 typetype
.void
translateUnBox(ClassGenerator classGen, MethodGenerator methodGen)
Translates an object of this type to its unboxed representation.
-
-
-
Field Detail
-
Int
public static final Type Int
-
Real
public static final Type Real
-
Boolean
public static final Type Boolean
-
NodeSet
public static final Type NodeSet
-
String
public static final Type String
-
ResultTree
public static final Type ResultTree
-
Reference
public static final Type Reference
-
Void
public static final Type Void
-
Object
public static final Type Object
-
Node
public static final Type Node
-
Root
public static final Type Root
-
Element
public static final Type Element
-
Attribute
public static final Type Attribute
-
Text
public static final Type Text
-
Comment
public static final Type Comment
-
Processing_Instruction
public static final Type Processing_Instruction
-
-
Method Detail
-
newObjectType
public static Type newObjectType(java.lang.String javaClassName)
Factory method to instantiate object types. Returns a pre-defined instance for "java.lang.Object" and "java.lang.String".
-
newObjectType
public static Type newObjectType(java.lang.Class clazz)
Factory method to instantiate object types. Returns a pre-defined instance for java.lang.Object.class and java.lang.String.class.
-
toString
public abstract java.lang.String toString()
Returns a string representation of this type.- Overrides:
toString
in classjava.lang.Object
-
identicalTo
public abstract boolean identicalTo(Type other)
Returns true if this and other are identical types.
-
isNumber
public boolean isNumber()
Returns true if this type is a numeric type. Redefined in NumberType.
-
implementedAsMethod
public boolean implementedAsMethod()
Returns true if this type has no object representaion. Redefined in ResultTreeType.
-
isSimple
public boolean isSimple()
Returns true if this type is a simple type. Redefined in NumberType, BooleanType and StringType.
-
toJCType
public abstract org.apache.bcel.generic.Type toJCType()
-
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.
-
toSignature
public abstract java.lang.String toSignature()
Returns the signature of an internal type's external representation.
-
translateTo
public void translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates an object of this type to an object of typetype
. Expects an object of the former type and pushes an object of the latter.
-
translateToDesynthesized
public FlowList translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates object of this type to an object of typetype
. Expects an object of the former type and pushes an object of the latter if not boolean. If typetype
is boolean then a branchhandle list (to be appended to the false list) is returned.
-
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.
-
translateTo
public void translateTo(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)
Translates an object of this type to the external (Java) type denoted byclazz
. This method is used to translate parameters when external functions are called.
-
translateFrom
public void translateFrom(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)
Translates an external (Java) type denoted byclazz
to an object of this type. This method is used to translate return values when external functions are called.
-
translateBox
public void translateBox(ClassGenerator classGen, MethodGenerator methodGen)
Translates an object of this type to its boxed representation.
-
translateUnBox
public void translateUnBox(ClassGenerator classGen, MethodGenerator methodGen)
Translates an object of this type to its unboxed representation.
-
getClassName
public java.lang.String getClassName()
Returns the class name of an internal type's external representation.
-
ADD
public org.apache.bcel.generic.Instruction ADD()
-
SUB
public org.apache.bcel.generic.Instruction SUB()
-
MUL
public org.apache.bcel.generic.Instruction MUL()
-
DIV
public org.apache.bcel.generic.Instruction DIV()
-
REM
public org.apache.bcel.generic.Instruction REM()
-
NEG
public org.apache.bcel.generic.Instruction NEG()
-
LOAD
public org.apache.bcel.generic.Instruction LOAD(int slot)
-
STORE
public org.apache.bcel.generic.Instruction STORE(int slot)
-
POP
public org.apache.bcel.generic.Instruction POP()
-
GT
public org.apache.bcel.generic.BranchInstruction GT(boolean tozero)
-
GE
public org.apache.bcel.generic.BranchInstruction GE(boolean tozero)
-
LT
public org.apache.bcel.generic.BranchInstruction LT(boolean tozero)
-
LE
public org.apache.bcel.generic.BranchInstruction LE(boolean tozero)
-
CMP
public org.apache.bcel.generic.Instruction CMP(boolean less)
-
DUP
public org.apache.bcel.generic.Instruction DUP()
-
-