1 21 package oracle.toplink.essentials.tools.schemaframework; 23 24 import java.util.*; 25 import oracle.toplink.essentials.internal.sessions.AbstractSession; 26 import oracle.toplink.essentials.descriptors.ClassDescriptor; 27 28 38 public class PopulationManager { 39 40 41 protected Hashtable registeredObjects; 42 43 44 protected static PopulationManager defaultManager; 45 46 public PopulationManager() { 47 registeredObjects = new Hashtable(); 48 } 49 50 54 public void addAllObjectsForAbstractClass(Class objectsClass, AbstractSession session, Vector allObjects) { 55 ClassDescriptor descriptor = session.getDescriptor(objectsClass); 56 addAllObjectsForClass(objectsClass, allObjects); 57 for (Enumeration enumeration = descriptor.getInheritancePolicy().getChildDescriptors().elements(); 58 enumeration.hasMoreElements();) { 59 addAllObjectsForAbstractClass(((ClassDescriptor)enumeration.nextElement()).getJavaClass(), session, allObjects); 60 } 61 } 62 63 67 public void addAllObjectsForAbstractClass(Class objectsClass, oracle.toplink.essentials.sessions.Session session, Vector allObjects) { 68 addAllObjectsForAbstractClass(objectsClass, (AbstractSession)session, allObjects); 69 } 70 71 74 public void addAllObjectsForClass(Class objectsClass, Vector allObjects) { 75 if (!getRegisteredObjects().containsKey(objectsClass)) { 76 return; 77 } 78 79 for (Enumeration enumeration = ((Hashtable)getRegisteredObjects().get(objectsClass)).elements(); 80 enumeration.hasMoreElements();) { 81 allObjects.addElement(enumeration.nextElement()); 82 } 83 } 84 85 88 public boolean containsObject(Class objectsClass, String objectsName) { 89 return ((getRegisteredObjects().containsKey(objectsClass)) && (((Hashtable)getRegisteredObjects().get(objectsClass)).containsKey(objectsName))); 90 } 91 92 95 public boolean containsObject(Object objectToCheck, String objectsName) { 96 return containsObject(objectToCheck.getClass(), objectsName); 97 } 98 99 102 public Vector getAllClasses() { 103 Vector allClasses = new Vector(); 104 105 for (Enumeration e = getRegisteredObjects().keys(); e.hasMoreElements();) { 106 allClasses.addElement(e.nextElement()); 107 } 108 109 return allClasses; 110 } 111 112 115 public Vector getAllObjects() { 116 Vector allObjects; 117 118 allObjects = new Vector(); 119 for (Enumeration e = getAllClasses().elements(); e.hasMoreElements();) { 120 Class eachClass = (Class )e.nextElement(); 121 addAllObjectsForClass(eachClass, allObjects); 122 } 123 124 return allObjects; 125 } 126 127 130 public Vector getAllObjectsForAbstractClass(Class objectsClass) { 131 Vector allObjects; 132 133 allObjects = new Vector(); 134 return allObjects; 136 } 137 138 142 public Vector getAllObjectsForAbstractClass(Class objectsClass, AbstractSession session) { 143 ClassDescriptor descriptor = session.getDescriptor(objectsClass); 144 Vector allObjects = new Vector(); 145 addAllObjectsForClass(objectsClass, allObjects); 146 if (descriptor.hasInheritance()) { 147 for (Enumeration enumeration = descriptor.getInheritancePolicy().getChildDescriptors().elements(); 148 enumeration.hasMoreElements();) { 149 addAllObjectsForClass(((ClassDescriptor)enumeration.nextElement()).getJavaClass(), allObjects); 150 } 151 } 152 153 return allObjects; 154 } 155 156 159 public Vector getAllObjectsForClass(Class objectsClass) { 160 Vector allObjects; 161 162 allObjects = new Vector(); 163 addAllObjectsForClass(objectsClass, allObjects); 164 165 return allObjects; 166 } 167 168 171 public static PopulationManager getDefaultManager() { 172 if (defaultManager == null) { 173 defaultManager = new PopulationManager(); 174 } 175 return defaultManager; 176 } 177 178 181 public Object getObject(Class objectsClass, String objectsName) { 182 if (!(getRegisteredObjects().containsKey(objectsClass))) { 183 return null; 184 } 185 186 return ((Hashtable)getRegisteredObjects().get(objectsClass)).get(objectsName); 187 } 188 189 192 public Hashtable getRegisteredObjects() { 193 return registeredObjects; 194 } 195 196 200 public Object registerObject(Class javaClass, Object objectToRegister, String objectsName) { 201 if (!(getRegisteredObjects().containsKey(javaClass))) { 202 getRegisteredObjects().put(javaClass, new Hashtable()); 203 } 204 ((Hashtable)getRegisteredObjects().get(javaClass)).put(objectsName, objectToRegister); 205 206 return objectToRegister; 207 } 208 209 213 public Object registerObject(Object objectToRegister, String objectsName) { 214 if (!(getRegisteredObjects().containsKey(objectToRegister.getClass()))) { 215 getRegisteredObjects().put(objectToRegister.getClass(), new Hashtable()); 216 } 217 ((Hashtable)getRegisteredObjects().get(objectToRegister.getClass())).put(objectsName, objectToRegister); 218 219 return objectToRegister; 220 } 221 222 225 public void removeObject(Class classToRemove, String objectsName) { 226 if (getRegisteredObjects().containsKey(classToRemove)) { 227 ((Hashtable)getRegisteredObjects().get(classToRemove)).remove(objectsName); 228 } 229 } 230 231 234 public Object removeObject(Object objectToRemove, String objectsName) { 235 removeObject(objectToRemove.getClass(), objectsName); 236 237 return objectToRemove; 238 } 239 240 243 public static void resetDefaultManager() { 244 defaultManager = null; 245 } 246 247 250 public static void setDefaultManager(PopulationManager theDefaultManager) { 251 defaultManager = theDefaultManager; 252 } 253 254 257 public void setRegisteredObjects(Hashtable registeredObjects) { 258 this.registeredObjects = registeredObjects; 259 } 260 } 261 | Popular Tags |