}
}
else if( ValueCompositeType.isValueComposite( type ) )
{
// Find ValueModel in module/layer/used layers
ValueModel model = new ValueFinder( layer, module, Classes.RAW_CLASS.map( type ) ).getFoundModel();
if( model == null )
{
if( type.equals( ValueComposite.class ) )
{
// Create default model
MixinsModel mixinsModel = new MixinsModel();
Iterable valueComposite = (Iterable) Iterables.iterable( ValueComposite.class );
ValueStateModel valueStateModel = new ValueStateModel( new PropertiesModel(),
new AssociationsModel(),
new ManyAssociationsModel(),
new NamedAssociationsModel() );
model = new ValueModel( valueComposite, Visibility.application, new MetaInfo(),
mixinsModel, valueStateModel, new CompositeMethodsModel( mixinsModel ) );
}
else
{
throw new InvalidApplicationException( "[" + module.name() + "] Could not find ValueComposite of type " + type );
}
}
return model.valueType();
}
else if( EnumType.isEnum( type ) )
{
valueType = new EnumType( Classes.RAW_CLASS.map( type ) );
}