static final GenericObjectModelFactory getGenericObjectModelFactory(ObjectModelFactory factory) { if(!(factory instanceof GenericObjectModelFactory)) { factory = new DelegatingObjectModelFactory(factory); } return factory instanceof GenericObjectModelFactory ? (GenericObjectModelFactory)factory : new DelegatingObjectModelFactory(factory); }
public DelegatingObjectModelFactory(ObjectModelFactory typedFactory) { this.typedFactory = typedFactory; replaceProps = isReplacePropertyRefs(typedFactory); Method[] methods = typedFactory.getClass().getMethods(); for(int i = 0; i < methods.length; ++i) { Method method = methods[i]; if("addChild".equals(method.getName())) { Class parent = method.getParameterTypes()[0]; AddMethods addMethods = (AddMethods)addMethodsByParent.get(parent); if(addMethods == null) { addMethods = new AddMethods(parent); addMethodsByParent.put(parent, addMethods); } addMethods.addMethod(method); } } }