public void addTypeDefinition(TypeDefinition cmisType) {
TypeDefinitionContainerImpl typeContainer = new TypeDefinitionContainerImpl(cmisType);
// add new type to children of parent types
TypeDefinitionContainer parentTypeContainer = fTypesMap.get(cmisType.getParentTypeId());
parentTypeContainer.getChildren().add(typeContainer);
// recursively add inherited properties
Map<String, PropertyDefinition<?>> propDefs = typeContainer.getTypeDefinition().getPropertyDefinitions();
addInheritedProperties(propDefs, parentTypeContainer.getTypeDefinition());
LOG.info("Adding type definition with name " + cmisType.getLocalName() + " and id "
+ cmisType.getId() + " to repository.");
// add type to type map
fTypesMap.put(cmisType.getId(), typeContainer);