Package org.exoplatform.ecms.xcmis.sp
Class StorageImpl
- java.lang.Object
-
- org.exoplatform.ecms.xcmis.sp.StorageImpl
-
- All Implemented Interfaces:
org.xcmis.spi.Storage,org.xcmis.spi.TypeManager
public class StorageImpl extends Object implements org.xcmis.spi.Storage
- Version:
- $Id: StorageImpl.java 804 2010-04-16 16:48:59Z alexey.zavizionov@gmail.com $
- Author:
- Andrey Parfonov
-
-
Field Summary
Fields Modifier and Type Field Description static StringLATEST_LABELprotected Map<String,TypeMapping>nodeTypeMappingstatic StringPRODUCT_NAMEstatic StringPRODUCT_VERSIONstatic StringPWC_LABELstatic StringREPOSITORY_DESCRIPTIONprotected StringrootPathprotected StorageConfigurationstorageConfigurationstatic StringVENDOR_NAMEstatic StringXCMIS_POLICIESstatic StringXCMIS_PROPERTY_TYPEstatic PatternXCMIS_PROPERTY_TYPE_PATTERNstatic StringXCMIS_RELATIONSHIPSstatic StringXCMIS_SYSTEM_PATHstatic StringXCMIS_WORKING_COPIES
-
Constructor Summary
Constructors Constructor Description StorageImpl(StorageConfiguration configuration, org.xcmis.search.SearchService searchService, org.xcmis.spi.PermissionService permissionService, Map<String,TypeMapping> nodeTypeMapping)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringaddType(org.xcmis.spi.model.TypeDefinition type)org.xcmis.spi.model.AllowableActionscalculateAllowableActions(org.xcmis.spi.ObjectData object)org.xcmis.spi.DocumentDatacopyDocument(org.xcmis.spi.DocumentData source, org.xcmis.spi.FolderData parent, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies, org.xcmis.spi.model.VersioningState versioningState)org.xcmis.spi.DocumentDatacreateDocument(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, org.xcmis.spi.ContentStream content, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies, org.xcmis.spi.model.VersioningState versioningState)org.exoplatform.ecms.xcmis.sp.JcrNodeEntrycreateDocumentEntry(org.exoplatform.ecms.xcmis.sp.JcrNodeEntry parent, String name, org.xcmis.spi.model.TypeDefinition typeDefinition, org.xcmis.spi.model.VersioningState versioningState)org.xcmis.spi.FolderDatacreateFolder(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies)org.exoplatform.ecms.xcmis.sp.JcrNodeEntrycreateFolderEntry(org.exoplatform.ecms.xcmis.sp.JcrNodeEntry parent, String name, org.xcmis.spi.model.TypeDefinition typeDefinition)org.xcmis.spi.PolicyDatacreatePolicy(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies)org.exoplatform.ecms.xcmis.sp.JcrNodeEntrycreatePolicyEntry(String name, org.xcmis.spi.model.TypeDefinition typeDefinition)org.xcmis.spi.RelationshipDatacreateRelationship(org.xcmis.spi.ObjectData source, org.xcmis.spi.ObjectData target, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies)org.exoplatform.ecms.xcmis.sp.JcrNodeEntrycreateRelationshipEntry(String name, org.xcmis.spi.model.TypeDefinition typeDefinition, org.exoplatform.ecms.xcmis.sp.JcrNodeEntry source, org.exoplatform.ecms.xcmis.sp.JcrNodeEntry target)voiddeleteObject(org.xcmis.spi.ObjectData object, boolean deleteAllVersions)Collection<String>deleteTree(org.xcmis.spi.FolderData folder, boolean deleteAllVersions, org.xcmis.spi.model.UnfileObject unfileObject, boolean continueOnFailure)org.exoplatform.ecms.xcmis.sp.JcrNodeEntryfromNode(javax.jcr.Node node)Collection<org.xcmis.spi.DocumentData>getAllVersions(String versionSeriesId)org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.ChangeEvent>getChangeLog(String changeLogToken)org.xcmis.spi.ItemsIterator<org.xcmis.spi.DocumentData>getCheckedOutDocuments(org.xcmis.spi.FolderData folder, String orderBy)org.exoplatform.ecms.xcmis.sp.JcrNodeEntrygetEntry(String id)StringgetId()StringgetJcrRootPath()Map<String,TypeMapping>getNodeTypeMapping()org.xcmis.spi.ObjectDatagetObjectById(String objectId)org.xcmis.spi.ObjectDatagetObjectByPath(String path)org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.Rendition>getRenditions(org.xcmis.spi.ObjectData object)org.xcmis.spi.model.RepositoryInfogetRepositoryInfo()org.xcmis.search.SearchServicegetSearchService()javax.jcr.SessiongetSession()StorageConfigurationgetStorageConfiguration()Collection<org.xcmis.spi.model.TypeDefinition>getSubTypes(String typeId, boolean includePropertyDefinitions)Get all sub-types of typetypeId.org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.TypeDefinition>getTypeChildren(String typeId, boolean includePropertyDefinitions)org.xcmis.spi.model.TypeDefinitiongetTypeDefinition(String typeId, boolean includePropertyDefinition)org.xcmis.spi.model.TypeDefinitiongetTypeDefinition(javax.jcr.nodetype.NodeType nodeType, boolean includePropertyDefinition)Get CMIS type definition which is front-end of JCR node type.Iterator<String>getUnfiledObjectsId()booleanisSupportedNodeType(String nodeTypeName)org.xcmis.spi.ObjectDatamoveObject(org.xcmis.spi.ObjectData object, org.xcmis.spi.FolderData target, org.xcmis.spi.FolderData source)org.xcmis.spi.ItemsIterator<org.xcmis.spi.query.Result>query(org.xcmis.spi.query.Query query)voidremoveType(String typeId)voidsetSearchService(org.xcmis.search.SearchService searchService)voidunfileObject(org.xcmis.spi.ObjectData object)
-
-
-
Field Detail
-
XCMIS_PROPERTY_TYPE
public static final String XCMIS_PROPERTY_TYPE
- See Also:
- Constant Field Values
-
XCMIS_PROPERTY_TYPE_PATTERN
public static final Pattern XCMIS_PROPERTY_TYPE_PATTERN
-
XCMIS_SYSTEM_PATH
public static final String XCMIS_SYSTEM_PATH
- See Also:
- Constant Field Values
-
XCMIS_WORKING_COPIES
public static final String XCMIS_WORKING_COPIES
- See Also:
- Constant Field Values
-
XCMIS_RELATIONSHIPS
public static final String XCMIS_RELATIONSHIPS
- See Also:
- Constant Field Values
-
XCMIS_POLICIES
public static final String XCMIS_POLICIES
- See Also:
- Constant Field Values
-
LATEST_LABEL
public static final String LATEST_LABEL
- See Also:
- Constant Field Values
-
PWC_LABEL
public static final String PWC_LABEL
- See Also:
- Constant Field Values
-
VENDOR_NAME
public static final String VENDOR_NAME
- See Also:
- Constant Field Values
-
PRODUCT_NAME
public static final String PRODUCT_NAME
- See Also:
- Constant Field Values
-
PRODUCT_VERSION
public static final String PRODUCT_VERSION
- See Also:
- Constant Field Values
-
REPOSITORY_DESCRIPTION
public static final String REPOSITORY_DESCRIPTION
- See Also:
- Constant Field Values
-
storageConfiguration
protected StorageConfiguration storageConfiguration
-
nodeTypeMapping
protected Map<String,TypeMapping> nodeTypeMapping
-
rootPath
protected final String rootPath
-
-
Constructor Detail
-
StorageImpl
public StorageImpl(StorageConfiguration configuration, org.xcmis.search.SearchService searchService, org.xcmis.spi.PermissionService permissionService, Map<String,TypeMapping> nodeTypeMapping)
-
-
Method Detail
-
calculateAllowableActions
public org.xcmis.spi.model.AllowableActions calculateAllowableActions(org.xcmis.spi.ObjectData object)
- Specified by:
calculateAllowableActionsin interfaceorg.xcmis.spi.Storage
-
copyDocument
public org.xcmis.spi.DocumentData copyDocument(org.xcmis.spi.DocumentData source, org.xcmis.spi.FolderData parent, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies, org.xcmis.spi.model.VersioningState versioningState) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Specified by:
copyDocumentin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createDocument
public org.xcmis.spi.DocumentData createDocument(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, org.xcmis.spi.ContentStream content, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies, org.xcmis.spi.model.VersioningState versioningState) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.NameConstraintViolationException, IOException, org.xcmis.spi.StorageException- Specified by:
createDocumentin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.NameConstraintViolationExceptionIOExceptionorg.xcmis.spi.StorageException
-
createFolder
public org.xcmis.spi.FolderData createFolder(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Specified by:
createFolderin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createPolicy
public org.xcmis.spi.PolicyData createPolicy(org.xcmis.spi.FolderData parent, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Specified by:
createPolicyin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createRelationship
public org.xcmis.spi.RelationshipData createRelationship(org.xcmis.spi.ObjectData source, org.xcmis.spi.ObjectData target, org.xcmis.spi.model.TypeDefinition typeDefinition, Map<String,org.xcmis.spi.model.Property<?>> properties, List<org.xcmis.spi.model.AccessControlEntry> acl, Collection<org.xcmis.spi.PolicyData> policies) throws org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Specified by:
createRelationshipin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
deleteObject
public void deleteObject(org.xcmis.spi.ObjectData object, boolean deleteAllVersions) throws org.xcmis.spi.UpdateConflictException, org.xcmis.spi.VersioningException, org.xcmis.spi.StorageException- Specified by:
deleteObjectin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.UpdateConflictExceptionorg.xcmis.spi.VersioningExceptionorg.xcmis.spi.StorageException
-
deleteTree
public Collection<String> deleteTree(org.xcmis.spi.FolderData folder, boolean deleteAllVersions, org.xcmis.spi.model.UnfileObject unfileObject, boolean continueOnFailure) throws org.xcmis.spi.UpdateConflictException
- Specified by:
deleteTreein interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.UpdateConflictException
-
getAllVersions
public Collection<org.xcmis.spi.DocumentData> getAllVersions(String versionSeriesId) throws org.xcmis.spi.ObjectNotFoundException
- Specified by:
getAllVersionsin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ObjectNotFoundException
-
getChangeLog
public org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.ChangeEvent> getChangeLog(String changeLogToken) throws org.xcmis.spi.ConstraintException
- Specified by:
getChangeLogin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ConstraintException
-
getCheckedOutDocuments
public org.xcmis.spi.ItemsIterator<org.xcmis.spi.DocumentData> getCheckedOutDocuments(org.xcmis.spi.FolderData folder, String orderBy)- Specified by:
getCheckedOutDocumentsin interfaceorg.xcmis.spi.Storage
-
getId
public String getId()
- Specified by:
getIdin interfaceorg.xcmis.spi.Storage
-
getObjectById
public org.xcmis.spi.ObjectData getObjectById(String objectId) throws org.xcmis.spi.ObjectNotFoundException
- Specified by:
getObjectByIdin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ObjectNotFoundException
-
getObjectByPath
public org.xcmis.spi.ObjectData getObjectByPath(String path) throws org.xcmis.spi.ObjectNotFoundException
- Specified by:
getObjectByPathin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.ObjectNotFoundException
-
getRenditions
public org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.Rendition> getRenditions(org.xcmis.spi.ObjectData object)
- Specified by:
getRenditionsin interfaceorg.xcmis.spi.Storage
-
getRepositoryInfo
public org.xcmis.spi.model.RepositoryInfo getRepositoryInfo()
- Specified by:
getRepositoryInfoin interfaceorg.xcmis.spi.Storage
-
getUnfiledObjectsId
public Iterator<String> getUnfiledObjectsId() throws org.xcmis.spi.StorageException
- Specified by:
getUnfiledObjectsIdin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.StorageException
-
moveObject
public org.xcmis.spi.ObjectData moveObject(org.xcmis.spi.ObjectData object, org.xcmis.spi.FolderData target, org.xcmis.spi.FolderData source) throws org.xcmis.spi.UpdateConflictException, org.xcmis.spi.VersioningException, org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Specified by:
moveObjectin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.UpdateConflictExceptionorg.xcmis.spi.VersioningExceptionorg.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
query
public org.xcmis.spi.ItemsIterator<org.xcmis.spi.query.Result> query(org.xcmis.spi.query.Query query) throws org.xcmis.spi.InvalidArgumentException- Specified by:
queryin interfaceorg.xcmis.spi.Storage- Throws:
org.xcmis.spi.InvalidArgumentException
-
unfileObject
public void unfileObject(org.xcmis.spi.ObjectData object)
- Specified by:
unfileObjectin interfaceorg.xcmis.spi.Storage
-
getSearchService
public org.xcmis.search.SearchService getSearchService()
- Returns:
- the searchService
-
setSearchService
public void setSearchService(org.xcmis.search.SearchService searchService)
- Parameters:
searchService- the searchService to set
-
getStorageConfiguration
public StorageConfiguration getStorageConfiguration()
- Returns:
- the storageConfiguration
-
addType
public String addType(org.xcmis.spi.model.TypeDefinition type) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.StorageException
- Specified by:
addTypein interfaceorg.xcmis.spi.TypeManager- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.StorageException
-
getTypeChildren
public org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.TypeDefinition> getTypeChildren(String typeId, boolean includePropertyDefinitions) throws org.xcmis.spi.TypeNotFoundException
- Specified by:
getTypeChildrenin interfaceorg.xcmis.spi.TypeManager- Throws:
org.xcmis.spi.TypeNotFoundException
-
getTypeDefinition
public org.xcmis.spi.model.TypeDefinition getTypeDefinition(String typeId, boolean includePropertyDefinition) throws org.xcmis.spi.TypeNotFoundException
- Specified by:
getTypeDefinitionin interfaceorg.xcmis.spi.TypeManager- Throws:
org.xcmis.spi.TypeNotFoundException
-
removeType
public void removeType(String typeId) throws org.xcmis.spi.ConstraintException, org.xcmis.spi.TypeNotFoundException, org.xcmis.spi.StorageException
- Specified by:
removeTypein interfaceorg.xcmis.spi.TypeManager- Throws:
org.xcmis.spi.ConstraintExceptionorg.xcmis.spi.TypeNotFoundExceptionorg.xcmis.spi.StorageException
-
getSubTypes
public Collection<org.xcmis.spi.model.TypeDefinition> getSubTypes(String typeId, boolean includePropertyDefinitions) throws org.xcmis.spi.TypeNotFoundException
Get all sub-types of typetypeId.- Parameters:
typeId- type IdincludePropertyDefinitions- iftrueproperty definition should be included- Returns:
- set of type definitions which are sub-type of specified type. If type has not any sub-types that empty collection will be returned.
- Throws:
org.xcmis.spi.TypeNotFoundException- if typetypeIddoes not exist
-
getTypeDefinition
public org.xcmis.spi.model.TypeDefinition getTypeDefinition(javax.jcr.nodetype.NodeType nodeType, boolean includePropertyDefinition)Get CMIS type definition which is front-end of JCR node type.- Parameters:
nodeType- JCR node typeincludePropertyDefinition- if true property definition should be included- Returns:
- CMIS type definition
-
createDocumentEntry
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry createDocumentEntry(org.exoplatform.ecms.xcmis.sp.JcrNodeEntry parent, String name, org.xcmis.spi.model.TypeDefinition typeDefinition, org.xcmis.spi.model.VersioningState versioningState) throws org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Throws:
org.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createFolderEntry
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry createFolderEntry(org.exoplatform.ecms.xcmis.sp.JcrNodeEntry parent, String name, org.xcmis.spi.model.TypeDefinition typeDefinition) throws org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException- Throws:
org.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createPolicyEntry
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry createPolicyEntry(String name, org.xcmis.spi.model.TypeDefinition typeDefinition) throws org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException
- Throws:
org.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
createRelationshipEntry
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry createRelationshipEntry(String name, org.xcmis.spi.model.TypeDefinition typeDefinition, org.exoplatform.ecms.xcmis.sp.JcrNodeEntry source, org.exoplatform.ecms.xcmis.sp.JcrNodeEntry target) throws org.xcmis.spi.NameConstraintViolationException, org.xcmis.spi.StorageException
- Throws:
org.xcmis.spi.NameConstraintViolationExceptionorg.xcmis.spi.StorageException
-
getEntry
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry getEntry(String id) throws org.xcmis.spi.ObjectNotFoundException
- Throws:
org.xcmis.spi.ObjectNotFoundException
-
fromNode
public org.exoplatform.ecms.xcmis.sp.JcrNodeEntry fromNode(javax.jcr.Node node) throws org.xcmis.spi.ObjectNotFoundException- Throws:
org.xcmis.spi.ObjectNotFoundException
-
getJcrRootPath
public String getJcrRootPath()
-
isSupportedNodeType
public boolean isSupportedNodeType(String nodeTypeName)
-
getNodeTypeMapping
public Map<String,TypeMapping> getNodeTypeMapping()
- Returns:
- the nodeTypeMapping
-
getSession
public javax.jcr.Session getSession() throws javax.jcr.RepositoryException- Throws:
javax.jcr.RepositoryException
-
-