1/*2* Licensed to the Apache Software Foundation (ASF) under one or more3* contributor license agreements. See the NOTICE file distributed with4* this work for additional information regarding copyright ownership.5* The ASF licenses this file to You under the Apache License, Version 2.06* (the "License"); you may not use this file except in compliance with7* the License. You may obtain a copy of the License at8*9* http://www.apache.org/licenses/LICENSE-2.010*11* Unless required by applicable law or agreed to in writing, software12* distributed under the License is distributed on an "AS IS" BASIS,13* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14* See the License for the specific language governing permissions and15* limitations under the License.16*/17packageorg.apache.commons.vfs2.operations; 18 19importjava.util.Collection; 20 21importorg.apache.commons.vfs2.FileObject; 22importorg.apache.commons.vfs2.FileSystemException; 23 24/**25* FileOperationProvider is responsible for dealing with FileOperation's.26*27* @since 0.128*/29publicinterfaceFileOperationProvider { 30 31/**32* Empty array.33*34* @since 2.9.035*/36 FileOperationProvider[] EMPTY_ARRAY = {}; 37 38/**39* Gather available operations for the specified FileObject and put them into specified operationsList.40*41* @param operationsList the list of available operations for the specified FileObject. The operationList contains42* classes of available operations, e.g. Class objects.43* @param file the FileObject for which we want to get the list of available operations.44*45* @throws FileSystemException if list of operations cannot be retrieved.46*/47voidcollectOperations(finalCollection<Class<?extendsFileOperation>> operationsList,finalFileObject file) 48throwsFileSystemException; 49 50/**51* Get implementation for a given FileObject and FileOperation interface.52*53* @param file the FileObject for which we need a operation.54* @param operationClass the Class which instance we are needed.55* @return the required operation instance.56*57* @throws FileSystemException if operation cannot be retrieved.58*/59 FileOperation getOperation(finalFileObject file,finalClass<?extendsFileOperation> operationClass) 60throwsFileSystemException; 61 }