1 4 package gnu.expr; 5 import gnu.bytecode.*; 6 7 9 12 13 public class PairClassType extends ClassType 14 { 15 26 27 Object staticLink; 28 29 public ClassType instanceType; 30 31 public PairClassType() 32 { 33 } 34 35 PairClassType(Class reflectInterface, Class reflectInstanceClass) 36 { 37 super(reflectInterface.getName()); 38 setExisting(true); 39 reflectClass = reflectInterface; 40 Type.registerTypeForClass(reflectInterface, this); 41 this.instanceType = (ClassType) Type.make(reflectInstanceClass); 42 } 43 44 public static PairClassType make(Class reflectInterface, 45 Class reflectInstanceClass) 46 { 47 return new PairClassType(reflectInterface, reflectInstanceClass); 48 } 49 50 public static PairClassType make(Class reflectInterface, 51 Class reflectInstanceClass, 52 Object staticLink) 53 { 54 PairClassType type 55 = new PairClassType(reflectInterface, reflectInstanceClass); 56 type.staticLink = staticLink; 57 return type; 58 } 59 60 public Object getStaticLink() 61 { 62 return staticLink; 63 } 64 65 66 public static Object extractStaticLink(ClassType type) 67 { 68 return ((PairClassType) type).staticLink; 69 } 70 } 71 | Popular Tags |