All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.chemistry.opencmis.client.api.Folder Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.chemistry.opencmis.client.api;

import java.util.List;
import java.util.Map;

import org.apache.chemistry.opencmis.commons.data.Ace;
import org.apache.chemistry.opencmis.commons.data.ContentStream;
import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
import org.apache.chemistry.opencmis.commons.enums.VersioningState;

/**
 * CMIS folder interface.
 * 
 * @cmis 1.0
 */
public interface Folder extends FileableCmisObject, FolderProperties {

    /**
     * @deprecated Support for transient objects will be removed in the future.
     */
    @Deprecated
    TransientFolder getTransientFolder();

    // object service

    /**
     * Creates a new document in this folder.
     * 
     * The stream in contentStream is consumed but not closed by
     * this method.
     * 
     * @return the new document object or null if the parameter
     *         context was set to null
     * 
     * @cmis 1.0
     */
    Document createDocument(Map properties, ContentStream contentStream, VersioningState versioningState,
            List policies, List addAces, List removeAces, OperationContext context);

    /**
     * Creates a new document in this folder.
     * 
     * The stream in contentStream is consumed but not closed by
     * this method.
     * 
     * @return the new document object
     * 
     * @cmis 1.0
     */
    Document createDocument(Map properties, ContentStream contentStream, VersioningState versioningState);

    /**
     * Creates a new document from a source document in this folder.
     * 
     * @return the new document object or null if the parameter
     *         context was set to null
     * 
     * @cmis 1.0
     */
    Document createDocumentFromSource(ObjectId source, Map properties, VersioningState versioningState,
            List policies, List addAces, List removeAces, OperationContext context);

    /**
     * Creates a new document from a source document in this folder.
     * 
     * @return the new document object
     * 
     * @cmis 1.0
     */
    Document createDocumentFromSource(ObjectId source, Map properties, VersioningState versioningState);

    /**
     * Creates a new subfolder in this folder.
     * 
     * @return the new folder object or null if the parameter
     *         context was set to null
     * 
     * @cmis 1.0
     */
    Folder createFolder(Map properties, List policies, List addAces, List removeAces,
            OperationContext context);

    /**
     * Creates a new subfolder in this folder.
     * 
     * @return the new folder object
     * 
     * @cmis 1.0
     */
    Folder createFolder(Map properties);

    /**
     * Creates a new policy in this folder.
     * 
     * @return the new policy object or null if the parameter
     *         context was set to null
     * 
     * @cmis 1.0
     */
    Policy createPolicy(Map properties, List policies, List addAces, List removeAces,
            OperationContext context);

    /**
     * Creates a new item in this folder.
     * 
     * @return the new item object
     * 
     * @cmis 1.1
     */
    Item createItem(Map properties);

    /**
     * Creates a new item in this folder.
     * 
     * @return the new item object or null if the parameter
     *         context was set to null
     * 
     * @cmis 1.1
     */
    Item createItem(Map properties, List policies, List addAces, List removeAces,
            OperationContext context);

    /**
     * Creates a new policy in this folder.
     * 
     * @return the new policy object
     * 
     * @cmis 1.0
     */
    Policy createPolicy(Map properties);

    /**
     * Deletes this folder and all subfolders.
     * 
     * @return a list of object ids which failed to be deleted
     * 
     * @cmis 1.0
     */
    List deleteTree(boolean allversions, UnfileObject unfile, boolean continueOnFailure);

    // navigation service

    /**
     * Gets the folder tree starting with this folder.
     * 
     * @cmis 1.0
     */
    List> getFolderTree(int depth);

    /**
     * Gets the folder tree starting with this folder using the given
     * {@link OperationContext}.
     * 
     * @cmis 1.0
     */
    List> getFolderTree(int depth, OperationContext context);

    /**
     * Gets the folder descendants starting with this folder.
     * 
     * @cmis 1.0
     */
    List> getDescendants(int depth);

    /**
     * Gets the folder descendants starting with this folder using the given
     * {@link OperationContext}.
     * 
     * @cmis 1.0
     */
    List> getDescendants(int depth, OperationContext context);

    /**
     * Returns the children of this folder.
     * 
     * @cmis 1.0
     */
    ItemIterable getChildren();

    /**
     * Returns the children of this folder using the given
     * {@link OperationContext}.
     * 
     * @cmis 1.0
     */
    ItemIterable getChildren(OperationContext context);

    /**
     * Returns if the folder is the root folder.
     * 
     * @cmis 1.0
     */
    boolean isRootFolder();

    /**
     * Gets the parent folder object
     * 
     * @return the parent folder object or null if the folder is
     *         the root folder.
     * 
     * @cmis 1.0
     */
    Folder getFolderParent();

    /**
     * Returns the path of the folder.
     * 
     * @cmis 1.0
     */
    String getPath();

    /**
     * Returns all checked out documents in this folder.
     * 
     * @cmis 1.0
     */
    ItemIterable getCheckedOutDocs();

    /**
     * Returns all checked out documents in this folder using the given
     * {@link OperationContext}.
     * 
     * @cmis 1.0
     */
    ItemIterable getCheckedOutDocs(OperationContext context);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy