org.xcmis.sp.inmemory
Class StorageImpl

java.lang.Object
  extended by org.xcmis.sp.inmemory.StorageImpl
All Implemented Interfaces:
org.xcmis.spi.Storage, org.xcmis.spi.TypeManager

public class StorageImpl
extends Object
implements org.xcmis.spi.Storage

In-memory implementation of xCMIS storage. This is storage is limited in number of items and total amount of content. Storage is not designed for high concurrency load. In some cases data in storage can be in inconsistency state.

Version:
$Id: StorageImpl.java 804 2010-04-16 16:48:59Z alexey.zavizionov@gmail.com $
Author:
Andrey Parfonov

Constructor Summary
protected StorageImpl(StorageConfiguration configuration)
           
  StorageImpl(StorageConfiguration configuration, org.xcmis.spi.RenditionManager manager, org.xcmis.spi.PermissionService permissionService)
           
 
Method Summary
 String addType(org.xcmis.spi.model.TypeDefinition type)
          
 org.xcmis.spi.model.AllowableActions calculateAllowableActions(org.xcmis.spi.ObjectData object)
          
 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)
          
 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)
          
 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)
          
 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)
          
 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)
          
 void deleteObject(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)
          
static String generateId()
           
 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)
          
protected  String getCurrentUser()
           
 String getId()
          
 org.xcmis.spi.ObjectData getObjectById(String objectId)
          
 org.xcmis.spi.ObjectData getObjectByPath(String path)
          
 org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.Rendition> getRenditions(org.xcmis.spi.ObjectData object)
          
 org.xcmis.spi.model.RepositoryInfo getRepositoryInfo()
          
 Collection<org.xcmis.spi.model.TypeDefinition> getSubTypes(String typeId, boolean includePropertyDefinitions)
           
 org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.TypeDefinition> getTypeChildren(String typeId, boolean includePropertyDefinitions)
          
 org.xcmis.spi.model.TypeDefinition getTypeDefinition(String typeId, boolean includePropertyDefinition)
          
 Iterator<String> getUnfiledObjectsId()
          
 org.xcmis.spi.ObjectData moveObject(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)
          
 void removeType(String typeId)
          
 void unfileObject(org.xcmis.spi.ObjectData object)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StorageImpl

public StorageImpl(StorageConfiguration configuration,
                   org.xcmis.spi.RenditionManager manager,
                   org.xcmis.spi.PermissionService permissionService)

StorageImpl

protected StorageImpl(StorageConfiguration configuration)
Method Detail

generateId

public static String generateId()

calculateAllowableActions

public org.xcmis.spi.model.AllowableActions calculateAllowableActions(org.xcmis.spi.ObjectData object)

Specified by:
calculateAllowableActions in interface org.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:
copyDocument in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.ConstraintException
org.xcmis.spi.NameConstraintViolationException
org.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:
createDocument in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.ConstraintException
org.xcmis.spi.NameConstraintViolationException
IOException
org.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:
createFolder in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.ConstraintException
org.xcmis.spi.NameConstraintViolationException
org.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:
createPolicy in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.ConstraintException
org.xcmis.spi.NameConstraintViolationException
org.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:
createRelationship in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.NameConstraintViolationException
org.xcmis.spi.StorageException

deleteObject

public void deleteObject(org.xcmis.spi.ObjectData object,
                         boolean deleteAllVersions)
                  throws org.xcmis.spi.VersioningException,
                         org.xcmis.spi.UpdateConflictException,
                         org.xcmis.spi.StorageException

Specified by:
deleteObject in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.VersioningException
org.xcmis.spi.UpdateConflictException
org.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:
deleteTree in interface org.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:
getAllVersions in interface org.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:
getChangeLog in interface org.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:
getCheckedOutDocuments in interface org.xcmis.spi.Storage

getId

public String getId()

Specified by:
getId in interface org.xcmis.spi.Storage

getObjectById

public org.xcmis.spi.ObjectData getObjectById(String objectId)
                                       throws org.xcmis.spi.ObjectNotFoundException

Specified by:
getObjectById in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.ObjectNotFoundException

getObjectByPath

public org.xcmis.spi.ObjectData getObjectByPath(String path)
                                         throws org.xcmis.spi.ObjectNotFoundException

Specified by:
getObjectByPath in interface org.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:
getRenditions in interface org.xcmis.spi.Storage

getRepositoryInfo

public org.xcmis.spi.model.RepositoryInfo getRepositoryInfo()

Specified by:
getRepositoryInfo in interface org.xcmis.spi.Storage

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:
moveObject in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.UpdateConflictException
org.xcmis.spi.VersioningException
org.xcmis.spi.NameConstraintViolationException
org.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:
query in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.InvalidArgumentException

unfileObject

public void unfileObject(org.xcmis.spi.ObjectData object)

Specified by:
unfileObject in interface org.xcmis.spi.Storage

getUnfiledObjectsId

public Iterator<String> getUnfiledObjectsId()
                                     throws org.xcmis.spi.StorageException

Specified by:
getUnfiledObjectsId in interface org.xcmis.spi.Storage
Throws:
org.xcmis.spi.StorageException

addType

public String addType(org.xcmis.spi.model.TypeDefinition type)
               throws org.xcmis.spi.StorageException,
                      org.xcmis.spi.CmisRuntimeException

Specified by:
addType in interface org.xcmis.spi.TypeManager
Throws:
org.xcmis.spi.StorageException
org.xcmis.spi.CmisRuntimeException

getTypeChildren

public org.xcmis.spi.ItemsIterator<org.xcmis.spi.model.TypeDefinition> getTypeChildren(String typeId,
                                                                                       boolean includePropertyDefinitions)
                                                                                throws org.xcmis.spi.TypeNotFoundException,
                                                                                       org.xcmis.spi.CmisRuntimeException

Specified by:
getTypeChildren in interface org.xcmis.spi.TypeManager
Throws:
org.xcmis.spi.TypeNotFoundException
org.xcmis.spi.CmisRuntimeException

getTypeDefinition

public org.xcmis.spi.model.TypeDefinition getTypeDefinition(String typeId,
                                                            boolean includePropertyDefinition)
                                                     throws org.xcmis.spi.TypeNotFoundException,
                                                            org.xcmis.spi.CmisRuntimeException

Specified by:
getTypeDefinition in interface org.xcmis.spi.TypeManager
Throws:
org.xcmis.spi.TypeNotFoundException
org.xcmis.spi.CmisRuntimeException

getSubTypes

public Collection<org.xcmis.spi.model.TypeDefinition> getSubTypes(String typeId,
                                                                  boolean includePropertyDefinitions)
                                                           throws org.xcmis.spi.TypeNotFoundException
Throws:
org.xcmis.spi.TypeNotFoundException

removeType

public void removeType(String typeId)
                throws org.xcmis.spi.TypeNotFoundException,
                       org.xcmis.spi.StorageException,
                       org.xcmis.spi.ConstraintException

Specified by:
removeType in interface org.xcmis.spi.TypeManager
Throws:
org.xcmis.spi.TypeNotFoundException
org.xcmis.spi.StorageException
org.xcmis.spi.ConstraintException

getCurrentUser

protected String getCurrentUser()


Copyright © 2011 eXo Platform SAS. All Rights Reserved.