All Packages Class Hierarchy This Package Previous Next Index
Class edu.mit.ai.psg.jevaES.TypeMethods
java.lang.Object
|
+----edu.mit.ai.psg.jevaES.TypeMethods
- public class TypeMethods
- extends Object
Predicates and Methods for testing and comparing types.
- Author:
- CarlManning, caroma@ai.mit.edu
Copyright (c) 1997 Massachusetts Institute of Technology
-
binaryCombineBitwiseTypes(Token, Class, Class)
-
-
binaryCombineNumericTypes(Token, Class, Class)
-
-
binaryPromoteType(Class, Class)
- [JavaLangSpec1.0 sec 5.6.2 Binary Numeric Promotion]
-
canNarrowPrimitive(Class, Class)
- [JavaLangSpec1.0 sec 5.1.3 Narrowing Primitive Conversions]
-
canNarrowPrimitiveConstant(Class, Class, ExpressionNode, IEnv)
- [JavaLangSpec1.0 sec 5.2, 15.24]
check if expr is integer constant that fits in char, short, or byte.
-
canNarrowReference(Class, Class)
- [JavaLangSpec1.0 sec 5.1.5 Narrowing Reference Conversions]
(does not check for methods that differ only in return type)
-
canWidenPrimitive(Class, Class)
- [JavaLangSpec1.0 sec 5.1.2 Widening Primitive Conversions]
-
canWidenReference(Class, Class)
- [JavaLangSpec1.0 sec 5.1.4 Widening Reference Conversions]
-
checkCastTypes(Class, Class)
- check for impermissible casts
[JavaLangSpec1.0 sec 5.4 Casting Conversion]
-
isAbstractClass(Class)
-
-
isApplicable(Class[], Class[])
-
-
isApplicable(Constructor, Class[])
-
-
isApplicable(Method, Class[])
- [JavaLangSpec 15.11.2.1 Find Methods that are applicable (& accessible)]
Accessibility is not a concern, since only public methods are
accessiblethrough reflection.
-
isAssignable(Class, ExpressionNode, IEnv)
- [JavaLangSpec1.0 sec 5.2 Assignment Conversion]
This checks for primitive as well as reference widenings.
-
isBindableType(Class, Class)
- [JavaLangSpec1.0 sec 5.3 Method Invocation Conversion]
-
isClassType(Class)
- Class is not primitive, array, nor interface
-
isFinalClass(Class)
-
-
isImplementation(Class, Class)
-
-
isIntegralType(Class)
- primitive integer types of various sizes (byte, short, int, long)
-
isIntExpression(ExpressionNode, IEnv)
- Check that array dims/indexes are int [JavaLangSpec1.0 sec15.9, 15.12]
-
isMoreSpecific(Constructor, Constructor)
-
-
isMoreSpecific(Method, Method)
- [JavaLangSpec 15.11.2.2 Choose Most Specific Method]
Assumes method name matches
-
isNumericType(Class)
- primitive numeric types
-
isReferenceType(Class)
-
-
isSubclass(Class, Class)
-
-
isSubinterface(Class, Class)
-
-
makeArrayType(Class, int)
-
-
nameToPrimitiveType(String)
- Get primitive type from its name, e.g., for "long" return long.class
-
toPrimitiveType(Class)
- Get primitive type associated with wrapper,
e.g., for a new Long(0) return long.class
-
toSourceString(Class)
- Return source code declaration string for class even if it is an array,
e.g., "int[][]" instead of "[[I", which is what type.getName() returns
-
unaryPromoteType(Class)
- [JavaLangSpec1.0 sec 5.6.1 Unary Numeric Promotion]
isReferenceType
public static final boolean isReferenceType(Class type)
isClassType
public static final boolean isClassType(Class type)
- Class is not primitive, array, nor interface
isNumericType
public static final boolean isNumericType(Class type)
- primitive numeric types
isIntegralType
public static final boolean isIntegralType(Class type)
- primitive integer types of various sizes (byte, short, int, long)
unaryPromoteType
public static final Class unaryPromoteType(Class type)
- [JavaLangSpec1.0 sec 5.6.1 Unary Numeric Promotion]
binaryPromoteType
public static final Class binaryPromoteType(Class cX,
Class cY)
- [JavaLangSpec1.0 sec 5.6.2 Binary Numeric Promotion]
binaryCombineNumericTypes
public static final Class binaryCombineNumericTypes(Token operator,
Class cX,
Class cY)
binaryCombineBitwiseTypes
public static final Class binaryCombineBitwiseTypes(Token operator,
Class cX,
Class cY)
isAssignable
public static final boolean isAssignable(Class receivingType,
ExpressionNode expr,
IEnv env) throws EvalException
- [JavaLangSpec1.0 sec 5.2 Assignment Conversion]
This checks for primitive as well as reference widenings.
- Throws: EvalException
- if expr has type err
isBindableType
public static final boolean isBindableType(Class receivingType,
Class exprType)
- [JavaLangSpec1.0 sec 5.3 Method Invocation Conversion]
canWidenPrimitive
public static final boolean canWidenPrimitive(Class to,
Class from)
- [JavaLangSpec1.0 sec 5.1.2 Widening Primitive Conversions]
canNarrowPrimitiveConstant
public static final boolean canNarrowPrimitiveConstant(Class receivingType,
Class exprType,
ExpressionNode expr,
IEnv env) throws EvalException
- [JavaLangSpec1.0 sec 5.2, 15.24]
check if expr is integer constant that fits in char, short, or byte.
- Throws: EvalException
- if expr has type err
canNarrowPrimitive
public static final boolean canNarrowPrimitive(Class to,
Class from)
- [JavaLangSpec1.0 sec 5.1.3 Narrowing Primitive Conversions]
canWidenReference
public static final boolean canWidenReference(Class to,
Class from)
- [JavaLangSpec1.0 sec 5.1.4 Widening Reference Conversions]
isFinalClass
public static final boolean isFinalClass(Class aClass)
isAbstractClass
public static final boolean isAbstractClass(Class aClass)
isSubinterface
public static final boolean isSubinterface(Class sub,
Class aSuper)
isSubclass
public static final boolean isSubclass(Class sub,
Class aSuper)
isImplementation
public static final boolean isImplementation(Class sub,
Class anInterface)
canNarrowReference
public static final boolean canNarrowReference(Class to,
Class from)
- [JavaLangSpec1.0 sec 5.1.5 Narrowing Reference Conversions]
(does not check for methods that differ only in return type)
toPrimitiveType
public static final Class toPrimitiveType(Class wrapperType)
- Get primitive type associated with wrapper,
e.g., for a new Long(0) return long.class
nameToPrimitiveType
public static final Class nameToPrimitiveType(String name) throws ClassNotFoundException
- Get primitive type from its name, e.g., for "long" return long.class
- Throws: ClassNotFoundException
- if not primitive type
toSourceString
public static final String toSourceString(Class type)
- Return source code declaration string for class even if it is an array,
e.g., "int[][]" instead of "[[I", which is what type.getName() returns
makeArrayType
public static final Class makeArrayType(Class baseType,
int nDims)
checkCastTypes
public static final void checkCastTypes(Class castType,
Class exprType)
- check for impermissible casts
[JavaLangSpec1.0 sec 5.4 Casting Conversion]
isApplicable
public static final boolean isApplicable(Method method,
Class argExprTypes[])
- [JavaLangSpec 15.11.2.1 Find Methods that are applicable (& accessible)]
Accessibility is not a concern, since only public methods are
accessiblethrough reflection.
isApplicable
public static final boolean isApplicable(Constructor constructor,
Class argExprTypes[])
isApplicable
public static final boolean isApplicable(Class parameterTypes[],
Class argExprTypes[])
isMoreSpecific
public static final boolean isMoreSpecific(Method m1,
Method m2)
- [JavaLangSpec 15.11.2.2 Choose Most Specific Method]
Assumes method name matches
isMoreSpecific
public static final boolean isMoreSpecific(Constructor c1,
Constructor c2)
isIntExpression
public static final boolean isIntExpression(ExpressionNode expr,
IEnv env) throws EvalException
- Check that array dims/indexes are int [JavaLangSpec1.0 sec15.9, 15.12]
- Throws: EvalException
- if expr has type err
All Packages Class Hierarchy This Package Previous Next Index