it.sistematica.isharedoc.opencmis.indatabase
Class TypeManagerImpl

java.lang.Object
  extended by it.sistematica.isharedoc.opencmis.indatabase.TypeManagerImpl
All Implemented Interfaces:
TypeManagerCreatable, org.apache.chemistry.opencmis.server.support.TypeManager

public class TypeManagerImpl
extends java.lang.Object
implements TypeManagerCreatable

Class that manages a type system for a repository types can be added, the inheritance can be managed and type can be retrieved for a given type id.

Author:
Jens

Constructor Summary
TypeManagerImpl()
           
 
Method Summary
 void addTypeDefinition(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition cmisType)
          Add a type to the type system.
 void clearTypeSystem()
          Remove all types from the type system.
 void deleteTypeDefinition(java.lang.String typeId)
          Remove a type from a type system
 java.lang.String getPropertyIdForQueryName(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition typeDefinition, java.lang.String propQueryName)
           
 java.util.List<org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer> getRootTypes()
           
 org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer getTypeById(java.lang.String typeId)
           
 org.apache.chemistry.opencmis.commons.definitions.TypeDefinition getTypeByQueryName(java.lang.String typeQueryName)
           
 java.util.Collection<org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer> getTypeDefinitionList()
           
 void initTypeSystem(java.util.List<org.apache.chemistry.opencmis.commons.definitions.TypeDefinition> typesList)
          Initialize the type system with the given types.
 void updateTypeDefinition(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition typeDefinition)
          Modify an existing type definition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeManagerImpl

public TypeManagerImpl()
Method Detail

getTypeById

public org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer getTypeById(java.lang.String typeId)
Specified by:
getTypeById in interface org.apache.chemistry.opencmis.server.support.TypeManager

getTypeByQueryName

public org.apache.chemistry.opencmis.commons.definitions.TypeDefinition getTypeByQueryName(java.lang.String typeQueryName)
Specified by:
getTypeByQueryName in interface org.apache.chemistry.opencmis.server.support.TypeManager

getTypeDefinitionList

public java.util.Collection<org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer> getTypeDefinitionList()
Specified by:
getTypeDefinitionList in interface org.apache.chemistry.opencmis.server.support.TypeManager

getRootTypes

public java.util.List<org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer> getRootTypes()
Specified by:
getRootTypes in interface org.apache.chemistry.opencmis.server.support.TypeManager

initTypeSystem

public void initTypeSystem(java.util.List<org.apache.chemistry.opencmis.commons.definitions.TypeDefinition> typesList)
Initialize the type system with the given types. This list must not contain the CMIS default types. The default type are always contained by default.

Parameters:
typesList - list of types to add to the repository

addTypeDefinition

public void addTypeDefinition(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition cmisType)
Add a type to the type system. Add all properties from inherited types, add type to children of parent types.

Specified by:
addTypeDefinition in interface TypeManagerCreatable
Parameters:
repositoryId - repository to which the type is added
cmisType - new type to add

updateTypeDefinition

public void updateTypeDefinition(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition typeDefinition)
Description copied from interface: TypeManagerCreatable
Modify an existing type definition

Specified by:
updateTypeDefinition in interface TypeManagerCreatable
Parameters:
typeDefinition - type to be modified

deleteTypeDefinition

public void deleteTypeDefinition(java.lang.String typeId)
Remove a type from a type system

Specified by:
deleteTypeDefinition in interface TypeManagerCreatable
Parameters:
typeId -

clearTypeSystem

public void clearTypeSystem()
Remove all types from the type system. After this call only the default CMIS types are present in the type system. Use this method with care, its mainly intended for unit tests

Parameters:
repositoryId -

getPropertyIdForQueryName

public java.lang.String getPropertyIdForQueryName(org.apache.chemistry.opencmis.commons.definitions.TypeDefinition typeDefinition,
                                                  java.lang.String propQueryName)
Specified by:
getPropertyIdForQueryName in interface org.apache.chemistry.opencmis.server.support.TypeManager