if (type.getBaseTypeId() == null) {
return false;
}
// find base type
TypeDefinition baseType = null;
if (type.getBaseTypeId() == BaseTypeId.CMIS_DOCUMENT) {
baseType = copyTypeDefintion(types.get(DOCUMENT_TYPE_ID).getTypeDefinition());
} else if (type.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) {
baseType = copyTypeDefintion(types.get(FOLDER_TYPE_ID).getTypeDefinition());
} else if (type.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
baseType = copyTypeDefintion(types.get(RELATIONSHIP_TYPE_ID).getTypeDefinition());
} else if (type.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
baseType = copyTypeDefintion(types.get(POLICY_TYPE_ID).getTypeDefinition());
} else {
return false;
}
AbstractTypeDefinition newType = (AbstractTypeDefinition) copyTypeDefintion(type);
// copy property definition
for (PropertyDefinition<?> propDef : baseType.getPropertyDefinitions().values()) {
((AbstractPropertyDefinition<?>) propDef).setIsInherited(true);
newType.addPropertyDefinition(propDef);
}
// add it