org.apache.xalan.xsltc.compiler.util

Class RealType

Implemented Interfaces:
Constants, InstructionConstants

public final class RealType
extends NumberType

Authors:
Jacek Ambroziak
Santiago Pericas-Geertsen

Nested Class Summary

Field Summary

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

Attribute, Boolean, Comment, Element, Int, Node, NodeSet, Object, ObjectString, 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, 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()
Instruction
LOAD(int slot)
Instruction
MUL()
Instruction
NEG()
Instruction
POP()
Instruction
REM()
Instruction
STORE(int slot)
Instruction
SUB()
int
distanceTo(Type type)
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 (primitive) Java type into a real.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Class clazz)
Translates a real into the Java type denoted by clazz.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)
Expects a real on the stack and pushes a 0 if that number is 0.0 and a 1 otherwise.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, IntType type)
Expects a real on the stack and pushes a truncated integer value
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, ReferenceType type)
Expects a double on the stack and pushes a boxed double.
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, StringType type)
Expects a real on the stack and pushes its string value by calling Double.toString(double d).
void
translateTo(ClassGenerator classGen, MethodGenerator methodGen, Type type)
Translates a real into an object of internal type type.
FlowList
translateToDesynthesized(ClassGenerator classGen, MethodGenerator methodGen, BooleanType type)
Translates a real 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.NumberType

isNumber, isSimple

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

ADD

public Instruction ADD()
Overrides:
ADD in interface Type


CMP

public Instruction CMP(boolean less)
Overrides:
CMP in interface Type


DIV

public Instruction DIV()
Overrides:
DIV in interface Type


DUP

public Instruction DUP()
Overrides:
DUP in interface Type


LOAD

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


MUL

public Instruction MUL()
Overrides:
MUL in interface Type


NEG

public Instruction NEG()
Overrides:
NEG in interface Type


POP

public Instruction POP()
Overrides:
POP in interface Type


REM

public Instruction REM()
Overrides:
REM in interface Type


STORE

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


SUB

public Instruction SUB()
Overrides:
SUB in interface Type


distanceTo

public int distanceTo(Type type)
Overrides:
distanceTo in interface Type

See Also:
Type.distanceTo(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 (primitive) Java type into a real. Expects a java object on the stack and pushes a real (i.e., a double).
Overrides:
translateFrom in interface Type


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Class clazz)
Translates a real into the Java type denoted by clazz. Expects a real on the stack and pushes a number of the appropriate type after coercion.
Overrides:
translateTo in interface Type


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        BooleanType type)
Expects a real on the stack and pushes a 0 if that number is 0.0 and a 1 otherwise.

See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        IntType type)
Expects a real on the stack and pushes a truncated integer value

See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        ReferenceType type)
Expects a double on the stack and pushes a boxed double. Boxed double are represented by an instance of java.lang.Double.

See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        StringType type)
Expects a real on the stack and pushes its string value by calling Double.toString(double d).

See Also:
org.apache.xalan.xsltc.compiler.util.Type.translateTo


translateTo

public void translateTo(ClassGenerator classGen,
                        MethodGenerator methodGen,
                        Type type)
Translates a real into an object of internal type type. The translation to int is undefined since reals are never converted to ints.
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)
Translates a real 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. A NaN must be converted to "false".
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 B) 2004 Apache XML Project. All Rights Reserved.