/* * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License, version 2 as published by the Free Software * Foundation. * * You should have received a copy of the GNU General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/gpl-2.0.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 General Public License for more details. * * * Copyright 2006 - 2017 Pentaho Corporation. All rights reserved. */ package org.pentaho.platform.repository2.unified.webservices; import java.util.List; import java.util.Properties; import org.pentaho.platform.api.repository2.unified.RepositoryRequest; import org.pentaho.platform.repository2.locale.PentahoLocale; /** * JAX-WS-safe version of {@code IUnifiedRepositoryService}. * <p/> * <ul> * <li>No method overloading (e.g. getFile(id, versionId) becomes getFileAtVersion(id, versionId).</li> * <li>No interfaces (e.g. Serializable becomes String).</li> * <li>No references to public static inner classes.</li> * </ul> * * @author mlowery */ public interface IUnifiedRepositoryWebService { RepositoryFileDto getFile( final String path, final boolean loadLocaleMaps, final PentahoLocale locale ); RepositoryFileDto getFileById( final String fileId, final boolean loadLocaleMaps, final PentahoLocale locale ); NodeRepositoryFileDataDto getDataAsNodeForRead( final String fileId ); List<NodeRepositoryFileDataDto> getDataAsNodeForReadInBatch( final List<RepositoryFileDto> files ); RepositoryFileDto createFile( final String parentFolderId, final RepositoryFileDto file, final NodeRepositoryFileDataDto data, final String versionMessage ); RepositoryFileDto createFileWithAcl( final String parentFolderId, final RepositoryFileDto file, final NodeRepositoryFileDataDto data, final RepositoryFileAclDto acl, final String versionMessage ); RepositoryFileDto createFolder( final String parentFolderId, final RepositoryFileDto file, final String versionMessage ); RepositoryFileDto updateFolder( final RepositoryFileDto file, final String versionMessage ); RepositoryFileDto createFolderWithAcl( final String parentFolderId, final RepositoryFileDto file, final RepositoryFileAclDto acl, final String versionMessage ); /** * @Deprecated Construct a RepositoryRequest and use that, instead */ @Deprecated List<RepositoryFileDto> getChildren( final String folderId ); /** * @Deprecated Construct a RepositoryRequest and use that, instead */ @Deprecated List<RepositoryFileDto> getChildrenWithFilter( final String folderId, final String filter ); /** * @Deprecated Construct a RepositoryRequest and use that, instead */ @Deprecated List<RepositoryFileDto> getChildrenWithFilterAndHidden( final String folderId, final String filter, Boolean showHiddenFiles ); // Jax-WS fails methods are overloaded List<RepositoryFileDto> getChildrenFromRequest( RepositoryRequest repositoryRequest ); RepositoryFileDto updateFile( final RepositoryFileDto file, final NodeRepositoryFileDataDto data, final String versionMessage ); void deleteFileWithPermanentFlag( final String fileId, final boolean permanent, final String versionMessage ); void deleteFile( final String fileId, final String versionMessage ); void deleteFileAtVersion( final String fileId, final String versionId ); void undeleteFile( final String fileId, final String versionMessage ); List<RepositoryFileDto> getDeletedFilesInFolder( final String folderPath ); List<RepositoryFileDto> getDeletedFilesInFolderWithFilter( final String folderPath, final String filter ); List<RepositoryFileDto> getDeletedFiles(); void moveFile( final String fileId, final String destAbsPath, final String versionMessage ); void copyFile( final String string, final String destAbsPath, final String versionMessage ); void lockFile( final String fileId, final String message ); void unlockFile( final String fileId ); /** * @Deprecated Construct a RepositoryRequest and use that, instead */ @Deprecated RepositoryFileTreeDto getTree( final String path, final int depth, final String filter, final boolean showHidden ); // Jax-WS fails methods are overloaded RepositoryFileTreeDto getTreeFromRequest( final RepositoryRequest repositoryRequest ); RepositoryFileAclDto getAcl( final String fileId ); RepositoryFileAclDto updateAcl( final RepositoryFileAclDto acl ); boolean hasAccess( final String path, final List<Integer> permissions ); List<RepositoryFileAclAceDto> getEffectiveAces( final String fileId ); List<RepositoryFileAclAceDto> getEffectiveAcesWithForceFlag( final String fileId, final boolean forceEntriesInheriting ); NodeRepositoryFileDataDto getDataAsNodeForReadAtVersion( final String fileId, final String versionId ); VersionSummaryDto getVersionSummary( String fileId, String versionId ); List<VersionSummaryDto> getVersionSummaryInBatch( final List<RepositoryFileDto> files ); List<VersionSummaryDto> getVersionSummaries( final String fileId ); RepositoryFileDto getFileAtVersion( final String fileId, final String versionId ); void restoreFileAtVersion( final String fileId, final String versionId, final String versionMessage ); boolean canUnlockFile( final String fileId ); List<RepositoryFileDto> getReferrers( final String fileId ); void setFileMetadata( final String fileId, final List<StringKeyStringValueDto> fileMetadataMap ); List<StringKeyStringValueDto> getFileMetadata( final String fileId ); List<Character> getReservedChars(); List<PentahoLocale> getAvailableLocalesForFileById( final String fileId ); PropertiesWrapper getLocalePropertiesForFileById( final String fileId, final String locale ); void setLocalePropertiesForFileByFileId( final String fileId, final String locale, final Properties properties ); void deleteLocalePropertiesForFile( final String fileId, final String locale ); }