/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright 2010 Pentaho Corporation. All rights reserved.
*
* @created Jan, 2010
* @author James Dixon
*
*/
package org.pentaho.commons.util.repository;
import java.util.List;
import org.pentaho.commons.util.repository.exception.ConstraintViolationException;
import org.pentaho.commons.util.repository.exception.FolderNotValidException;
import org.pentaho.commons.util.repository.exception.InvalidArgumentException;
import org.pentaho.commons.util.repository.exception.OperationNotSupportedException;
import org.pentaho.commons.util.repository.exception.PermissionDeniedException;
import org.pentaho.commons.util.repository.exception.RuntimeException;
import org.pentaho.commons.util.repository.exception.StorageException;
import org.pentaho.commons.util.repository.exception.StreamNotSupportedException;
import org.pentaho.commons.util.repository.exception.TypeNotFoundException;
import org.pentaho.commons.util.repository.exception.UpdateConflictException;
import org.pentaho.commons.util.repository.type.AllowableActions;
import org.pentaho.commons.util.repository.type.CmisObject;
import org.pentaho.commons.util.repository.type.CmisProperties;
import org.pentaho.commons.util.repository.type.ContentStream;
import org.pentaho.commons.util.repository.type.ReturnVersion;
import org.pentaho.commons.util.repository.type.UnfileNonfolderObjects;
import org.pentaho.commons.util.repository.type.VersioningState;
public interface IObjectService {
public String createDocument(
String repositoryId,
String typeId,
CmisProperties properties,
String folderId,
ContentStream contentStream,
VersioningState versioningState) throws
StorageException,
InvalidArgumentException,
ConstraintViolationException,
RuntimeException,
UpdateConflictException,
StreamNotSupportedException,
OperationNotSupportedException,
PermissionDeniedException,
TypeNotFoundException,
FolderNotValidException;
public String createFolder(
String repositoryId,
String typeId,
CmisProperties properties,
String folderId ) throws
StorageException,
InvalidArgumentException,
ConstraintViolationException,
RuntimeException,
UpdateConflictException,
StreamNotSupportedException,
OperationNotSupportedException,
PermissionDeniedException,
TypeNotFoundException,
FolderNotValidException;
public String createRelationship(
String repositoryId,
String typeId,
CmisProperties properties,
String sourceObjectId,
String targetObjectId) throws
OperationNotSupportedException;
public String createPolicy(
String repositoryId,
String typeId,
CmisProperties properties,
String folderId ) throws
OperationNotSupportedException;
public AllowableActions getAllowableActions(
String repositoryId,
String objectId ) throws
OperationNotSupportedException;
public CmisObject getProperties(
String repositoryId,
String objectId,
ReturnVersion returnVersion,
String filter,
boolean includeAllowableActions,
boolean includeRelationships ) throws
OperationNotSupportedException;
public ContentStream getContentStream(
String repositoryId,
String documentId) throws
OperationNotSupportedException;
public void updateProperties(
String repositoryId,
String objectId,
String changeToken,
CmisProperties properties) throws
OperationNotSupportedException;
public void moveObject(
String repositoryId,
String objectId,
String targetFolderId,
String sourceFolderId ) throws
OperationNotSupportedException;
public void deleteObject(
String repositoryId,
String objectId ) throws
OperationNotSupportedException;
public List<String> deleteTree(
String repositoryId,
String folderId,
UnfileNonfolderObjects unfileNonfolderObjects,
boolean continueOnFailure) throws
OperationNotSupportedException;
public String setContentStream(
String repositoryId,
String documentId,
boolean overwriteFlag,
ContentStream contentStream ) throws
OperationNotSupportedException;
public void deleteContentStream(
String repositoryId,
String documentId) throws
OperationNotSupportedException;
}