|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--edu.mit.ai.psg.jeva.TypeMethods
Predicates and Methods for testing and comparing types. General type operations operate on type IClass, which includes both interpreted and wrapped compiled classes. Numeric type operations operaton only on type Class, since there are no interpreted numeric types.
| Field Summary | |
static IClass |
booleanIClass
|
static IClass |
byteIClass
|
static IClass |
charIClass
|
static IClass |
ClassIClass
|
static IClass |
CloneableIClass
|
static IClass |
doubleIClass
|
static IClass |
ErrorIClass
|
static IClass |
floatIClass
|
static IClass |
intIClass
|
static IClass |
longIClass
|
static IClass |
NumberIClass
|
static IClass |
ObjectIClass
|
static IClass |
RuntimeExceptionIClass
|
static IClass |
shortIClass
|
static IClass |
StringIClass
|
static IClass |
ThrowableIClass
|
static IClass |
voidIClass
|
| Constructor Summary | |
TypeMethods()
|
|
| Method Summary | |
static IClass |
binaryCombineBitwiseTypes(Token operator,
IClass cX,
IClass cY)
|
static IClass |
binaryCombineNumericTypes(Token operator,
IClass cX,
IClass cY)
|
static IClass |
binaryCombineShiftTypes(Token operator,
IClass leftType,
IClass rightType)
|
static Class |
binaryPromoteType(Class cX,
Class cY)
[JavaLangSpec1.0 sec 5.6.2 Binary Numeric Promotion] |
static boolean |
canNarrowPrimitive(Class to,
Class from)
[JavaLangSpec1.0 sec 5.1.3 Narrowing Primitive Conversions] |
static boolean |
canNarrowPrimitiveConstant(Class receivingType,
Class exprType,
IExpressionNode expr,
IEnv env)
[JavaLangSpec1.0 sec 5.2, 15.24] check if expr is integer constant that fits in char, short, or byte. |
static boolean |
canNarrowReference(IClass to,
IClass from)
[JavaLangSpec1.0 sec 5.1.5 Narrowing Reference Conversions] Uses i.isAssignableFrom(c) to test c implements interface i |
static boolean |
canWidenPrimitive(Class to,
Class from)
[JavaLangSpec1.0 sec 5.1.2 Widening Primitive Conversions] |
static boolean |
canWidenPrimitive(IClass to,
IClass from)
|
static boolean |
canWidenReference(Class to,
Class from)
[JavaLangSpec1.0 sec 5.1.4 Widening Reference Conversions] null used as class of null, can be assigned to any Reference type, so more general than to.isAssignableFrom(from) |
static boolean |
canWidenReference(IClass to,
IClass from)
implements isAssignableFrom for interpreted classes by searching |
static void |
checkCastTypes(IClass castType,
IClass exprType)
check for impermissible casts. |
static IClass |
getIClass(Object obj)
get IClass for implementation class of object |
static boolean |
isAbstractClass(IClass aClass)
|
static boolean |
isApplicable(IClass[] parameterTypes,
IClass[] argExprTypes)
|
static boolean |
isApplicable(IConstructor constructor,
IClass[] argExprTypes)
|
static boolean |
isApplicable(IMethod method,
IClass[] argExprTypes)
[JavaLangSpec 15.11.2.1 Find Methods that are applicable (& accessible)] Accessibility is not a concern, since only public methods are accessible through reflection (not necessarily true in Java1.2). |
static boolean |
isAssignable(IClass receivingIClass,
IExpressionNode expr,
IEnv env)
|
static boolean |
isAssignableType(Class receivingType,
Class exprType,
IExpressionNode expr,
IEnv env)
[JavaLangSpec1.0 sec 5.2 Assignment Conversion] This checks for primitive as well as reference widenings. |
static boolean |
isBindableType(Class receivingType,
Class exprType)
[JavaLangSpec1.0 sec 5.3 Method Invocation Conversion] |
static boolean |
isBindableType(IClass receivingIClass,
IClass exprIClass)
|
static boolean |
isCaughtOrDeclaredException(IClass exceptionClass,
IClass[] caughtOrDeclareds)
|
static boolean |
isClassType(IClass type)
|
static boolean |
isFinalClass(IClass aClass)
|
static boolean |
isImplementation(IClass sub,
IClass anInterface)
|
static boolean |
isIntegralType(Class type)
|
static boolean |
isIntegralType(IClass type)
|
static boolean |
isIntExpression(IExpressionNode expr,
IEnv env)
Check that array dims/indexes are int [JavaLangSpec1.0 sec15.9, 15.12] |
static boolean |
isMoreSpecific(IConstructor c1,
IConstructor c2)
|
static boolean |
isMoreSpecific(IMethod m1,
IMethod m2)
[JavaLangSpec 15.11.2.2 Choose Most Specific Method] assumes method name matches |
static boolean |
isNumericType(Class type)
|
static boolean |
isNumericType(IClass type)
|
static boolean |
isReferenceType(Class type)
|
static boolean |
isReferenceType(IClass type)
|
static boolean |
isSubclass(IClass sub,
IClass aSuper)
|
static boolean |
isSubinterface(IClass sub,
IClass aSuper)
|
static boolean |
isUncheckedException(IClass exceptionClass)
|
static IClass |
makeArrayType(IClass baseType,
int nDims)
|
static IClass |
nameToPrimitiveIClass(String name)
|
static Class |
nameToPrimitiveType(String name)
|
static IClass |
toPrimitiveIClass(IClass wrapperType)
|
static Class |
toPrimitiveType(Class wrapperType)
|
static String |
toSourceString(Class type)
|
static String |
toSourceString(IClass 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 |
static Class |
unaryPromoteType(Class type)
[JavaLangSpec1.0 sec 5.6.1 Unary Numeric Promotion] |
static IClass |
unaryPromoteType(IClass type)
|
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
public static final IClass ObjectIClass
public static final IClass ClassIClass
public static final IClass StringIClass
public static final IClass CloneableIClass
public static final IClass NumberIClass
public static final IClass booleanIClass
public static final IClass intIClass
public static final IClass longIClass
public static final IClass doubleIClass
public static final IClass floatIClass
public static final IClass charIClass
public static final IClass byteIClass
public static final IClass shortIClass
public static final IClass voidIClass
public static final IClass ThrowableIClass
public static final IClass ErrorIClass
public static final IClass RuntimeExceptionIClass
| Constructor Detail |
public TypeMethods()
| Method Detail |
public static final boolean isReferenceType(Class type)
public static final boolean isReferenceType(IClass type)
public static final boolean isClassType(IClass type)
public static final boolean isNumericType(Class type)
public static final boolean isNumericType(IClass type)
public static final boolean isIntegralType(Class type)
public static final boolean isIntegralType(IClass type)
public static final Class unaryPromoteType(Class type)
public static final IClass unaryPromoteType(IClass type)
public static final Class binaryPromoteType(Class cX,
Class cY)
public static final IClass binaryCombineNumericTypes(Token operator,
IClass cX,
IClass cY)
public static final IClass binaryCombineBitwiseTypes(Token operator,
IClass cX,
IClass cY)
public static final IClass binaryCombineShiftTypes(Token operator,
IClass leftType,
IClass rightType)
public static final boolean isAssignableType(Class receivingType,
Class exprType,
IExpressionNode expr,
IEnv env)
throws VerifyingException
public static final boolean isAssignable(IClass receivingIClass,
IExpressionNode expr,
IEnv env)
throws VerifyingException
public static final boolean isBindableType(Class receivingType,
Class exprType)
public static final boolean isBindableType(IClass receivingIClass,
IClass exprIClass)
public static final boolean canWidenPrimitive(Class to,
Class from)
public static final boolean canWidenPrimitive(IClass to,
IClass from)
public static final boolean canNarrowPrimitiveConstant(Class receivingType,
Class exprType,
IExpressionNode expr,
IEnv env)
throws VerifyingException
public static final boolean canNarrowPrimitive(Class to,
Class from)
public static final boolean canWidenReference(Class to,
Class from)
public static final boolean canWidenReference(IClass to,
IClass from)
public static final boolean isFinalClass(IClass aClass)
public static final boolean isAbstractClass(IClass aClass)
public static final boolean isSubinterface(IClass sub,
IClass aSuper)
public static final boolean isSubclass(IClass sub,
IClass aSuper)
public static final boolean isImplementation(IClass sub,
IClass anInterface)
public static final boolean canNarrowReference(IClass to,
IClass from)
public static final Class toPrimitiveType(Class wrapperType)
public static final IClass toPrimitiveIClass(IClass wrapperType)
public static final Class nameToPrimitiveType(String name)
throws ClassNotFoundException
public static final IClass nameToPrimitiveIClass(String name)
throws ClassNotFoundException
public static final String toSourceString(IClass type)
public static final String toSourceString(Class type)
public static final IClass makeArrayType(IClass baseType,
int nDims)
public static final void checkCastTypes(IClass castType,
IClass exprType)
public static final boolean isApplicable(IMethod method,
IClass[] argExprTypes)
public static final boolean isApplicable(IConstructor constructor,
IClass[] argExprTypes)
public static final boolean isApplicable(IClass[] parameterTypes,
IClass[] argExprTypes)
public static final boolean isMoreSpecific(IMethod m1,
IMethod m2)
public static final boolean isMoreSpecific(IConstructor c1,
IConstructor c2)
public static final boolean isIntExpression(IExpressionNode expr,
IEnv env)
throws VerifyingException
public static boolean isUncheckedException(IClass exceptionClass)
public static boolean isCaughtOrDeclaredException(IClass exceptionClass,
IClass[] caughtOrDeclareds)
public static IClass getIClass(Object obj)
|
Copyright (c) 1996-1999 Massachusetts Institute of Technology Feedback: jeva-bugs@ai.mit.edu |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||