use of org.qi4j.api.composite.NoSuchTransientException in project qi4j-sdk by Qi4j.
the class ModuleInstance method newTransientBuilder.
// Implementation of TransientBuilderFactory
@Override
public <T> TransientBuilder<T> newTransientBuilder(Class<T> mixinType) throws NoSuchTransientException {
NullArgumentException.validateNotNull("mixinType", mixinType);
ModelModule<TransientModel> modelModule = typeLookup.lookupTransientModel(mixinType);
if (modelModule == null) {
throw new NoSuchTransientException(mixinType.getName(), name());
}
Map<AccessibleObject, Property<?>> properties = new HashMap<AccessibleObject, Property<?>>();
for (PropertyModel propertyModel : modelModule.model().state().properties()) {
Property<?> property = new PropertyInstance<Object>(propertyModel.getBuilderInfo(), propertyModel.initialValue(modelModule.module()));
properties.put(propertyModel.accessor(), property);
}
TransientStateInstance state = new TransientStateInstance(properties);
return new TransientBuilderInstance<T>(modelModule, state, UsesInstance.EMPTY_USES);
}
use of org.qi4j.api.composite.NoSuchTransientException in project qi4j-sdk by Qi4j.
the class Qi4jObjectFactory method createQi4jComposite.
@SuppressWarnings("unchecked")
private Object createQi4jComposite(Class aClass, boolean isAddToTypes) {
if (compositeBuilderFactory == null) {
return null;
}
Object obj = null;
ConstructionException exception = null;
try {
obj = compositeBuilderFactory.newTransient(aClass);
} catch (NoSuchTransientException e) {
return null;
} catch (ConstructionException e) {
exception = e;
}
if (isAddToTypes) {
addToType(aClass, qi4jComposite);
}
if (exception != null) {
throw exception;
}
return obj;
}
Aggregations