@Override public Object createObject(CreationMode creationMode) { if (cls.isArray()) { return Array.newInstance(cls.getComponentType(), 0); } try { Object object = getRuntimeContext().instantiate(cls); if (creationMode == CreationMode.INITIALIZE) { final NakedObject adapter = getRuntimeContext().adapterFor(object); // initialize new object final NakedObjectAssociation[] fields = adapter.getSpecification().getAssociations(); for (int i = 0; i < fields.length; i++) { fields[i].toDefault(adapter); } getRuntimeContext().injectDependenciesInto(object); CallbackUtils.callCallback(adapter, CreatedCallbackFacet.class); } return object; } catch (final ObjectInstantiationException e) { throw new NakedObjectException("Failed to create instance of type " + cls.getName(), e); } }
@Override public Object createObject(CreationMode creationMode) { if (cls.isArray()) { return Array.newInstance(cls.getComponentType(), 0); } try { Object object = getRuntimeContext().instantiate(cls); if (creationMode == CreationMode.INITIALIZE) { final NakedObject adapter = getRuntimeContext().adapterFor(object); // initialize new object final NakedObjectAssociation[] fields = adapter.getSpecification().getAssociations(); for (int i = 0; i < fields.length; i++) { fields[i].toDefault(adapter); } getRuntimeContext().injectDependenciesInto(object); CallbackUtils.callCallback(adapter, CreatedCallbackFacet.class); } return object; } catch (final ObjectInstantiationException e) { throw new NakedObjectException("Failed to create instance of type " + cls.getName(), e); } }