Finalizing the beta version of the implementation for Groovy extension in JPF: JPF...
[jpf-core.git] / src / classes / java / lang / Class.java
index 6149ba6cc49ee17d23a28f21e95c8d449961bc36..97f8e90e3ba0f68e40c6b059bc76ebbc2da03037 100644 (file)
@@ -28,11 +28,6 @@ import java.util.Map;
 
 import sun.reflect.ConstantPool;
 import sun.reflect.annotation.AnnotationType;
-// TODO: DIRTY HACKS!
-import sun.reflect.generics.factory.CoreReflectionFactory;
-import sun.reflect.generics.factory.GenericsFactory;
-import sun.reflect.generics.repository.ClassRepository;
-import sun.reflect.generics.scope.ClassScope;
 
 /**
  * MJI model class for java.lang.Class library abstraction
@@ -276,71 +271,17 @@ public final class Class<T> implements Serializable, GenericDeclaration, Type, A
 
   native AnnotationType getAnnotationType();
   
-  // TODO: DIRTY HACKS!
-  //public native TypeVariable<Class<T>>[] getTypeParameters();
-  /*
-  @Override
-  public TypeVariable<Class<T>>[] getTypeParameters() {
-    throw new UnsupportedOperationException();
-  }
-  
-  // Generic info repository; lazily initialized
-  private volatile transient ClassRepository genericInfo;
-  
-  // Generic signature handling
-  //private native String getGenericSignature0();
-  
-  // accessor for factory
-  private GenericsFactory getFactory() {
-    // create scope and factory
-    return CoreReflectionFactory.make(this, ClassScope.make(this));
-  }
-  
-  // accessor for generic info repository;
-  // generic info is lazily initialized
-  private ClassRepository getGenericInfo() {
-       ClassRepository genericInfo = this.genericInfo;
-    if (genericInfo == null) {
-      //String signature = getGenericSignature0();
-         //String signature = "Ljava/lang/Object;";
-         String signature = null;
-      if (signature == null) {
-        genericInfo = ClassRepository.NONE;
-      } else {
-        genericInfo = ClassRepository.make(signature, getFactory());
-      }
-      this.genericInfo = genericInfo;
-    }
-    return (genericInfo != ClassRepository.NONE) ? genericInfo : null;
-  }
-  
-  @Override
-  public TypeVariable<Class<T>>[] getTypeParameters() {
-    //throw new UnsupportedOperationException();
-       ClassRepository info = getGenericInfo();
-    if (info != null)
-      return (TypeVariable<Class<T>>[])info.getTypeParameters();
-    else
-      return (TypeVariable<Class<T>>[])new TypeVariable<?>[0];
-  }*/
-  @Override
-  public TypeVariable<Class<T>>[] getTypeParameters() {
-    //throw new UnsupportedOperationException();
-    System.out.println("Calling getTypeParameters for: " + this.name);
-    TypeVariable[] typeVariables = (TypeVariable<Class<T>>[])new TypeVariable<?>[1];
-    //Object obj = new Object();
-    //typeVariables[0] = (TypeVariable<Class<T>>) obj;
-    return typeVariables;
-  }
-  // TODO: DIRTY HACKS!
-  
-  public Type getGenericSuperclass() {
-    throw new UnsupportedOperationException();
-  }
-  
-  public Type[] getGenericInterfaces() {
-    throw new UnsupportedOperationException();
-  }
+  // TODO: Fix for Groovy's model-checking
+  public native TypeVariable<Class<T>>[] getTypeParameters();
+
+  public native Type getGenericSuperclass();
+
+  public native Type[] getGenericInterfaces();
+
+  public native java.security.ProtectionDomain getProtectionDomain();
+
+  transient ClassValue.ClassValueMap classValueMap;
+  // TODO: Fix for Groovy's model-checking
 
   public Object[] getSigners() {
     throw new UnsupportedOperationException();
@@ -388,10 +329,6 @@ public final class Class<T> implements Serializable, GenericDeclaration, Type, A
   public Class<?>[] getDeclaredClasses() throws SecurityException {
     throw new UnsupportedOperationException();
   }
-  
-  public java.security.ProtectionDomain getProtectionDomain() {
-    throw new UnsupportedOperationException();
-  }
 
   void setProtectionDomain0(java.security.ProtectionDomain pd) {
     pd = null;  // Get rid of IDE warning