/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed 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.pentaho.di.repository; import org.pentaho.di.core.exception.KettleException; /** * Additional methods to be added to Repository in next major revision. * */ @Deprecated public interface RepositoryExtended extends Repository { /** * @deprecated more deprecated than the others * Loads the RepositoryDirectoryTree either Eagerly or Lazilly based on the value passed. This value will * override the default and any specified setting value for KETTLE_LAZY_REPOSITORY. * * @param eager * @return * @throws KettleException */ RepositoryDirectoryInterface loadRepositoryDirectoryTree( boolean eager ) throws KettleException; /** * Loads the RepositoryDirectoryTree, filtering at the server. * @param path - relative path to folder from which we should to download the tree. * Implementation should use "/" as default path, because it is a root folder of repository * @param filter - filter may be a full name or a partial name with one or more wildcard characters ("*"), or a disjunction (using the "|" character to represent logical OR) of these; * if null then it should be "*" and return all files and folders from root folder * @param depth - 0 fetches just file at path; positive integer n fetches node at path plus n levels of children; * negative integer fetches all children. If n > 0 then only the top level children will be processed * @param showHidden - if true we will show hidden files * @param includeEmptyFolder include directories without any match * @param includeAcls include ACLs * @throws KettleException */ RepositoryDirectoryInterface loadRepositoryDirectoryTree( String path, String filter, int depth, boolean showHidden, boolean includeEmptyFolder, boolean includeAcls ) throws KettleException; /** * Move / rename a repository directory * * @param dirId * The ObjectId of the repository directory to move * @param newParent * The RepositoryDirectoryInterface that will be the new parent of the repository directory (May be null if a * move is not desired) * @param newName * The new name of the repository directory (May be null if a rename is not desired) * @param renameHomeDirectories * true if this is an allowed action * @return The ObjectId of the repository directory that was moved * @throws KettleException */ ObjectId renameRepositoryDirectory( final ObjectId dirId, final RepositoryDirectoryInterface newParent, final String newName, final boolean renameHomeDirectories ) throws KettleException; /** * Delete a repository directory * * @param dir * The ObjectId of the repository directory to move * @param deleteHomeDirectories * true if this is an allowed action * @throws KettleException */ void deleteRepositoryDirectory( final RepositoryDirectoryInterface dir, final boolean deleteHomeDirectories ) throws KettleException; }