/* * 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 - 2013 Pentaho Corporation. All rights reserved. */ package org.pentaho.platform.repository2.unified; import java.io.Serializable; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Properties; import org.pentaho.platform.api.locale.IPentahoLocale; import org.pentaho.platform.api.repository2.unified.IRepositoryFileData; import org.pentaho.platform.api.repository2.unified.IUnifiedRepository; import org.pentaho.platform.api.repository2.unified.RepositoryFile; import org.pentaho.platform.api.repository2.unified.RepositoryFileAcl; import org.pentaho.platform.api.repository2.unified.RepositoryFileTree; import org.pentaho.platform.api.repository2.unified.RepositoryRequest; import org.pentaho.platform.api.repository2.unified.VersionSummary; /** * A data access object for reading and writing {@code RepositoryFile} instances. The methods in this interface * might closely resemble those in {@link IUnifiedRepository} but this interface is not part of the public Pentaho * API and can evolve independently. * * @author mlowery */ public interface IRepositoryFileDao { RepositoryFile getFileByAbsolutePath( final String absPath ); RepositoryFile getFile( final String relPath ); @Deprecated RepositoryFileTree getTree( final String relPath, final int depth, final String filter, final boolean showHidden ); RepositoryFileTree getTree( RepositoryRequest repositoryRequest ); RepositoryFile getFile( final String relPath, final boolean loadLocaleMaps ); RepositoryFile getFileById( final Serializable fileId ); RepositoryFile getFileById( final Serializable fileId, final boolean loadLocaleMaps ); RepositoryFile getFile( final String relPath, final IPentahoLocale locale ); RepositoryFile getFileById( final Serializable fileId, final IPentahoLocale locale ); RepositoryFile getFile( final String relPath, final boolean loadLocaleMaps, final IPentahoLocale locale ); RepositoryFile getFileById( final Serializable fileId, final boolean loadLocaleMaps, final IPentahoLocale locale ); <T extends IRepositoryFileData> T getData( final Serializable fileId, final Serializable versionId, final Class<T> dataClass ); RepositoryFile createFile( final Serializable parentFolderId, final RepositoryFile file, final IRepositoryFileData data, final RepositoryFileAcl acl, final String versionMessage ); RepositoryFile createFolder( final Serializable parentFolderId, final RepositoryFile file, final RepositoryFileAcl acl, final String versionMessage ); RepositoryFile updateFolder( final RepositoryFile file, final String versionMessage ); @Deprecated List<RepositoryFile> getChildren( final Serializable folderId, final String filter, final Boolean showHiddenFiles ); List<RepositoryFile> getChildren( RepositoryRequest repositoryRequest ); RepositoryFile updateFile( final RepositoryFile file, final IRepositoryFileData data, final String versionMessage ); void deleteFile( final Serializable fileId, final String versionMessage ); void deleteFileAtVersion( final Serializable fileId, final Serializable versionId ); void undeleteFile( final Serializable fileId, final String versionMessage ); void permanentlyDeleteFile( final Serializable fileId, final String versionMessage ); List<RepositoryFile> getDeletedFiles( final String origParentFolderPath, final String filter ); List<RepositoryFile> getDeletedFiles(); boolean canUnlockFile( final Serializable fileId ); void lockFile( final Serializable fileId, final String message ); void unlockFile( final Serializable fileId ); List<VersionSummary> getVersionSummaries( final Serializable fileId ); VersionSummary getVersionSummary( final Serializable fileId, final Serializable versionId ); RepositoryFile getFile( final Serializable fileId, final Serializable versionId ); void moveFile( final Serializable fileId, final String destRelPath, final String versionMessage ); void copyFile( final Serializable fileId, final String destAbsPath, final String versionMessage ); void restoreFileAtVersion( final Serializable fileId, final Serializable versionId, final String versionMessage ); List<RepositoryFile> getReferrers( final Serializable fileId ); void setFileMetadata( final Serializable fileId, Map<String, Serializable> metadataMap ); Map<String, Serializable> getFileMetadata( final Serializable fileId ); List<Character> getReservedChars(); List<Locale> getAvailableLocalesForFileById( final Serializable fileId ); List<Locale> getAvailableLocalesForFileByPath( final String relPath ); List<Locale> getAvailableLocalesForFile( final RepositoryFile repositoryFile ); Properties getLocalePropertiesForFileById( final Serializable fileId, final String locale ); Properties getLocalePropertiesForFileByPath( final String relPath, final String locale ); Properties getLocalePropertiesForFile( final RepositoryFile repositoryFile, final String locale ); void setLocalePropertiesForFileById( final Serializable fileId, final String locale, final Properties properties ); void setLocalePropertiesForFileByPath( final String relPath, final String locale, final Properties properties ); void setLocalePropertiesForFile( final RepositoryFile repositoryFile, final String locale, final Properties properties ); void deleteLocalePropertiesForFile( final RepositoryFile repositoryFile, final String locale ); }