1 4 package com.tc.objectserver.managedobject.bytecode; 5 6 import com.tc.objectserver.managedobject.PhysicalManagedObjectState; 7 import com.tc.util.Assert; 8 9 public class ClassSpec { 10 11 private static final String PHYSICAL_MO_STATE_CLASS_NAME = PhysicalManagedObjectState.class.getName(); 12 13 private final String className; 14 private final String loaderDesc; 15 private final String classIdentifier; 16 private int classID = Integer.MIN_VALUE; 17 private String generatedClassName; 18 private String superClassName = PHYSICAL_MO_STATE_CLASS_NAME; 19 20 public ClassSpec(String className, String loaderDesc, long strIdx) { 21 this.className = className; 22 this.loaderDesc = loaderDesc; 23 this.classIdentifier = "com.tc.state." + strIdx + "." + className; 24 } 25 26 public void setGeneratedClassID(int classID) { 27 this.classID = classID; 28 this.generatedClassName = this.classIdentifier + "_V" + classID; 29 } 30 31 public String getGeneratedClassName() { 32 Assert.assertNotNull(this.generatedClassName); 33 return this.generatedClassName; 34 } 35 36 public String getClassName() { 37 return className; 38 } 39 40 public String getLoaderDesc() { 41 return loaderDesc; 42 } 43 44 public String getClassIdentifier() { 45 return classIdentifier; 46 } 47 48 public int getClassID() { 49 Assert.assertFalse(this.classID == Integer.MIN_VALUE); 50 return this.classID; 51 } 52 53 public Object getLock() { 54 return classIdentifier.intern(); 55 } 56 57 public void setSuperClassName(String className) { 58 this.superClassName = className; 59 } 60 61 public String getSuperClassName() { 62 return this.superClassName; 63 } 64 65 public boolean isDirectSubClassOfPhysicalMOState() { 66 return (PHYSICAL_MO_STATE_CLASS_NAME.equals(this.superClassName)); 67 } 68 } 69 | Popular Tags |