Package org.apache.chemistry.opencmis.inmemory.storedobj.api

Examples of org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore


    public void deleteObjectOrCancelCheckOut(CallContext context, String repositoryId, String objectId,
            Boolean allVersions, ExtensionsData extension) {

        LOG.debug("start deleteObject()");
        checkStandardParameters(repositoryId, objectId);
        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
        LOG.debug("delete object for id: " + objectId);

        // check if it is the root folder
        if (objectId.equals(objectStore.getRootFolder().getId()))
            throw new CmisNotSupportedException("You can't delete a root folder");

        objectStore.deleteObject(objectId);
        LOG.debug("stop deleteObject()");
    }
View Full Code Here


        if (null == unfileObjects)
            unfileObjects = UnfileObject.DELETE;
        if (null == continueOnFailure)
            continueOnFailure = false;

        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);

        if (null == so)
            throw new CmisInvalidArgumentException("Cannot delete object with id  " + folderId + ". Object does not exist.");

        if (!(so instanceof Folder))
            throw new CmisInvalidArgumentException("deleteTree can only be invoked on a folder, but id " + folderId
                    + " does not refer to a folder");

        if (unfileObjects == UnfileObject.UNFILE)
            throw new CmisNotSupportedException("This repository does not support unfile operations.");

        // check if it is the root folder
        if (folderId.equals(objectStore.getRootFolder().getId()))
            throw new CmisNotSupportedException("You can't delete a root folder");

        // recursively delete folder
        deleteRecursive(objectStore, (Folder) so, continueOnFailure, allVersions, failedToDeleteIds);
View Full Code Here

            Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
            Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension, ObjectInfoHandler objectInfos) {

        LOG.debug("start getObjectByPath()");
        checkRepositoryId(repositoryId);
        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
        StoredObject so = objectStore.getObjectByPath(path);

        if (so == null)
            throw new CmisObjectNotFoundException("Unknown path: " + path);

        String user = context.getUsername();
View Full Code Here

        LOG.debug("start moveObject()");
        StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
        Folder targetFolder = null;
        Folder sourceFolder = null;
        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
        Filing spo = null;

        if (null == so)
            throw new CmisObjectNotFoundException("Unknown object: " + objectId.getValue());
        else if (so instanceof Filing)
            spo = (Filing) so;
        else
            throw new CmisInvalidArgumentException("Object must be folder or document: " + objectId.getValue());

        StoredObject soTarget = objectStore.getObjectById(targetFolderId);
        if (null == soTarget)
            throw new CmisObjectNotFoundException("Unknown target folder: " + targetFolderId);
        else if (soTarget instanceof Folder)
            targetFolder = (Folder) soTarget;
        else
            throw new CmisNotSupportedException("Destination " + targetFolderId
                    + " of a move operation must be a folder");

        StoredObject soSource = objectStore.getObjectById(sourceFolderId);
        if (null == soSource)
            throw new CmisObjectNotFoundException("Unknown source folder: " + sourceFolderId);
        else if (soSource instanceof Folder)
            sourceFolder = (Folder) soSource;
        else
View Full Code Here

            Boolean overwriteFlag, Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {

        LOG.debug("start setContentStream()");
        checkStandardParameters(repositoryId, objectId.getValue());

        ObjectStore folderStore = fStoreManager.getObjectStore(repositoryId);
        StoredObject so = folderStore.getObjectById(objectId.getValue());
        Content content;

        if (!(so instanceof Document || so instanceof VersionedDocument || so instanceof DocumentVersion))
            throw new CmisObjectNotFoundException("Id" + objectId
                    + " does not refer to a document, but only documents can have content");
View Full Code Here

    private StoredObject createDocumentIntern(String repositoryId, Properties properties, String folderId,
            ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addACEs,
            Acl removeACEs, ExtensionsData extension, String user) {
        checkRepositoryId(repositoryId);

        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
        Map<String, PropertyData<?>> propMap = properties.getProperties();
        // get name from properties
        PropertyData<?> pd = propMap.get(PropertyIds.NAME);
        String name = (String) pd.getFirstValue();

        // Validation stuff
        TypeValidator.validateRequiredSystemProperties(properties);
        TypeDefinition typeDef = getTypeDefinition(repositoryId, properties);

        Folder folder = null;
        if (null != folderId) {
            StoredObject so = objectStore.getObjectById(folderId);

            if (null == so)
                throw new CmisInvalidArgumentException(" Cannot create document, folderId: " + folderId + " is invalid");

            if (so instanceof Folder)
View Full Code Here

        // Attach the CallContext to a thread local context that can be accessed
        // from everywhere
        checkStandardParameters(repositoryId, folderId);

        ObjectStore fs = fStoreManager.getObjectStore(repositoryId);
        StoredObject so = null;
        Folder parent = null;

        // get required properties
        PropertyData<?> pd = properties.getProperties().get(PropertyIds.NAME);
        String folderName = (String) pd.getFirstValue();
        if (null == folderName || folderName.length() == 0)
            throw new CmisInvalidArgumentException("Cannot create a folder without a name.");

        // check name syntax
        if (!NameValidator.isValidId(folderName))
            throw new CmisInvalidArgumentException(NameValidator.ERROR_ILLEGAL_NAME);

        TypeValidator.validateRequiredSystemProperties(properties);

        TypeDefinition typeDef = getTypeDefinition(repositoryId, properties);

        // check if the given type is a folder type
        if (!typeDef.getBaseTypeId().equals(BaseTypeId.CMIS_FOLDER))
            throw new CmisInvalidArgumentException("Cannot create a folder, with a non-folder type: " + typeDef.getId());

        Map<String, PropertyData<?>> propMap = properties.getProperties();
        Map<String, PropertyData<?>> propMapNew = setDefaultProperties(typeDef, propMap);
        if (propMapNew != propMap) {
            properties = new PropertiesImpl(propMapNew.values());
        }

        TypeValidator.validateProperties(typeDef, properties, true);

        // create folder
        try {
            LOG.debug("get folder for id: " + folderId);
            so = fs.getObjectById(folderId);
        } catch (Exception e) {
            throw new CmisObjectNotFoundException("Failed to retrieve folder.", e);
        }

        if (so instanceof Folder)
            parent = (Folder) so;
        else
            throw new CmisInvalidArgumentException("Can't create folder, folderId does not refer to a folder: "
                    + folderId);

        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
        Folder newFolder = objStore.createFolder(folderName);
        // set default system attributes
        if (user == null)
            user = "unknown";
        newFolder.createSystemBasePropertiesWhenCreated(properties.getProperties(), user);
        newFolder.setCustomProperties(properties.getProperties());
View Full Code Here

            Boolean includePathSegments, int maxItems, int skipCount, boolean folderOnly, ObjectInfoHandler objectInfos,
            String user) {

        ObjectInFolderListImpl result = new ObjectInFolderListImpl();
        List<ObjectInFolderData> folderList = new ArrayList<ObjectInFolderData>();
        ObjectStore fs = fStoreManager.getObjectStore(repositoryId);
        StoredObject so = fs.getObjectById(folderId);
        Folder folder = null;

        if (so == null)
            throw new CmisObjectNotFoundException("Unknown object id: " + folderId);
View Full Code Here

            throw new CmisInvalidArgumentException("Repository Id cannot be null.");

        if (null == objectId)
            throw new CmisInvalidArgumentException("Object Id cannot be null.");

        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);

        if (objStore == null)
            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);

        StoredObject so = objStore.getObjectById(objectId);

        if (so == null)
            throw new CmisObjectNotFoundException("Unknown object id: " + objectId);

        return so;
View Full Code Here

    protected void checkRepositoryId(String repositoryId) {
        if (null == repositoryId)
            throw new CmisInvalidArgumentException("Repository Id cannot be null.");
       
        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);

        if (objStore == null)
            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);
    }
View Full Code Here

TOP

Related Classes of org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.