return list;
}
protected static Property demandOpenProperty(Type type, String name, Object value, boolean isSequence)
{
TypeHelper typeHelper = TypeHelper.INSTANCE; //FB TODO: what TypeHelper to use?
String uri = type.getURI() + "/" + type.getName(); // unique URI for open content properties on instances of the type
Property property = typeHelper.getOpenContentProperty(uri, name);
if (property != null)
return property;
boolean isMany = isSequence;
boolean isContainment = false;
Type propertyType;
if (value instanceof DataObject)
{
DataObject dataObject = (DataObject)value;
propertyType = dataObject.getType();
isContainment = dataObject.getContainer() == null;
}
else if (value instanceof List && !((List)value).isEmpty())
{
Object listValue = ((List)value).get(0); //TODO: get common base class if all values are not the same type?
if (listValue instanceof DataObject)
propertyType = ((DataObject)listValue).getType();
else
propertyType = typeHelper.getType(listValue.getClass());
isMany = true;
}
else
{
propertyType = typeHelper.getType(value.getClass());
}
if (propertyType == null)
{
propertyType = ((ModelFactoryImpl)ModelFactory.INSTANCE).getObject();
}