@Override public ClassDescriptorMap getClassDescriptorMap() { if (classDescriptorMap == null) { ClassDescriptorMap classDescriptorMap = new ClassDescriptorMap(this); classDescriptorMap.addFactory(new ValueHolderDescriptorFactory( classDescriptorMap)); // since ClassDescriptorMap is not synchronized, we need to prefill it with // entity proxies here. for (DataMap map : maps) { for (String entityName : map.getObjEntityMap().keySet()) { classDescriptorMap.getDescriptor(entityName); } } this.classDescriptorMap = classDescriptorMap; } return classDescriptorMap; } }
/** * Returns an object that compiles and stores {@link ClassDescriptor} * instances for all entities. * * @since 3.0 */ public ClassDescriptorMap getClassDescriptorMap() { if (classDescriptorMap == null) { synchronized (this) { if (classDescriptorMap == null) { ClassDescriptorMap classDescriptorMap = new ClassDescriptorMap(this); FaultFactory faultFactory = new SingletonFaultFactory(); // add factories in reverse of the desired chain order classDescriptorMap.addFactory(new ValueHolderDescriptorFactory(classDescriptorMap)); classDescriptorMap.addFactory(new DataObjectDescriptorFactory(classDescriptorMap, faultFactory)); // since ClassDescriptorMap is not synchronized, we need to // prefill // it with entity proxies here. for (DataMap map : maps) { for (String entityName : map.getObjEntityMap().keySet()) { classDescriptorMap.getDescriptor(entityName); } } this.classDescriptorMap = classDescriptorMap; } } } return classDescriptorMap; }