Esempio n. 1
0
 @Override
 @SuppressWarnings("unchecked")
 public TypeVariable<Class<T>>[] getTypeParameters() {
   if (!type.isClassType()) {
     return new TypeVariable[0];
   } else {
     RVMClass klass = type.asClass();
     Atom sig = klass.getSignature();
     if (sig == null) {
       return new TypeVariable[0];
     } else {
       return JikesRVMHelpers.getTypeParameters(this, sig);
     }
   }
 }
Esempio n. 2
0
 public Type getGenericSuperclass() {
   if (type.isArrayType()) {
     return Object.class;
   } else if (type.isPrimitiveType()
       || type.isUnboxedType()
       || (type.isClassType() && type.asClass().isInterface())
       || this == Object.class) {
     return null;
   } else {
     RVMClass klass = type.asClass();
     Atom sig = klass.getSignature();
     if (sig == null) {
       return getSuperclass();
     } else {
       return JikesRVMHelpers.getSuperclassType(this, sig);
     }
   }
 }
Esempio n. 3
0
 public Type[] getGenericInterfaces() {
   if (type.isPrimitiveType() || type.isUnboxedType()) {
     return new Type[0];
   } else if (type.isArrayType()) {
     // arrays implement JavaLangSerializable & JavaLangCloneable
     return new Class[] {
       RVMType.JavaLangCloneableType.getClassForType(),
       RVMType.JavaIoSerializableType.getClassForType()
     };
   } else {
     RVMClass klass = type.asClass();
     Atom sig = klass.getSignature();
     if (sig == null) {
       return getInterfaces();
     } else {
       return JikesRVMHelpers.getInterfaceTypesFromSignature(this, sig);
     }
   }
 }