View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * 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 and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.vfs.operations;
    18
    19  import org.apache.commons.vfs.FileObject;
    20  import org.apache.commons.vfs.FileSystemException;
    21
    22  import java.util.Collection;
    23
    24  /***
    25   * FileOperationProvider is responsible for dealing with FileOperation's.
    26   *
    27   * @author Siarhei Baidun
    28   * @since 0.1
    29   */
    30  public interface FileOperationProvider
    31  {
    32
    33  	/***
    34  	 * Gather available operations for the specified FileObject and put them into
    35  	 * specified operationsList.
    36  	 *
    37  	 * @param operationsList
    38  	 *            the list of available operations for the specivied FileObject.
    39  	 *            The operationList contains classes of available operations, e.g.
    40  	 *            Class objects.
    41  	 * @param file
    42  	 *            the FileObject for which we want to get the list of available
    43  	 *            operations.
    44  	 *
    45  	 * @throws FileSystemException
    46  	 *             if list of operations cannto be retrieved.
    47  	 */
    48  	void collectOperations(final Collection operationsList, final FileObject file)
    49  			throws FileSystemException;
    50
    51  	/***
    52  	 *
    53  	 * @param file
    54  	 *            the FileObject for which we need a operation.
    55  	 * @param operationClass
    56  	 *            the Class which instance we are needed.
    57  	 * @return the requried operation instance. s
    58  	 * @throws FileSystemException
    59  	 *             if operation cannot be retrieved.
    60  	 */
    61  	FileOperation getOperation(final FileObject file, final Class operationClass)
    62  			throws FileSystemException;
    63  }