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 TypeAttributestatic TypeBooleanstatic TypeCommentstatic TypeElementstatic TypeIntstatic TypeNodestatic TypeNodeSetstatic TypeObjectstatic TypeProcessing_Instructionstatic TypeRealstatic TypeReferencestatic TypeResultTreestatic TypeRootstatic TypeStringstatic TypeTextstatic TypeVoid-
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.InstructionADD()org.apache.bcel.generic.InstructionCMP(boolean less)intdistanceTo(Type type)Returns the distance between two types.org.apache.bcel.generic.InstructionDIV()org.apache.bcel.generic.InstructionDUP()org.apache.bcel.generic.BranchInstructionGE(boolean tozero)java.lang.StringgetClassName()Returns the class name of an internal type's external representation.org.apache.bcel.generic.BranchInstructionGT(boolean tozero)abstract booleanidenticalTo(Type other)Returns true if this and other are identical types.booleanimplementedAsMethod()Returns true if this type has no object representaion.booleanisNumber()Returns true if this type is a numeric type.booleanisSimple()Returns true if this type is a simple type.org.apache.bcel.generic.BranchInstructionLE(boolean tozero)org.apache.bcel.generic.InstructionLOAD(int slot)org.apache.bcel.generic.BranchInstructionLT(boolean tozero)org.apache.bcel.generic.InstructionMUL()org.apache.bcel.generic.InstructionNEG()static TypenewObjectType(java.lang.Class clazz)Factory method to instantiate object types.static TypenewObjectType(java.lang.String javaClassName)Factory method to instantiate object types.org.apache.bcel.generic.InstructionPOP()org.apache.bcel.generic.InstructionREM()org.apache.bcel.generic.InstructionSTORE(int slot)org.apache.bcel.generic.InstructionSUB()abstract org.apache.bcel.generic.TypetoJCType()abstract java.lang.StringtoSignature()Returns the signature of an internal type's external representation.abstract java.lang.StringtoString()Returns a string representation of this type.voidtranslateBox(ClassGenerator classGen, MethodGenerator methodGen)Translates an object of this type to its boxed representation.voidtranslateFrom(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)Translates an external (Java) type denoted byclazzto an object of this type.voidtranslateTo(ClassGenerator classGen, MethodGenerator methodGen, java.lang.Class clazz)Translates an object of this type to the external (Java) type denoted byclazz.voidtranslateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)Translates an object of this type to an object of typetype.FlowListtranslateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)Translates an object of this type to an non-synthesized boolean.FlowListtranslateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, Type type)Translates object of this type to an object of typetype.voidtranslateUnBox(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:
toStringin 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 typetypeis 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 byclazzto 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()
-
-