/* * 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; }