| /******************************************************************************* |
| * Copyright (c) 2008, 2010 Freescale Semiconductor and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Serge Beauchamp (Freescale Semiconductor) - initial API and implementation |
| * IBM - ongoing development |
| *******************************************************************************/ |
| package org.eclipse.core.resources; |
| |
| import org.eclipse.core.runtime.*; |
| |
| /** |
| * A description of a resource filter. |
| * |
| * A filter determines which file system objects will be visible when a local refresh is |
| * performed for an IContainer. |
| * |
| * @see IContainer#getFilters() |
| * @noimplement This interface is not intended to be implemented by clients. |
| * @noextend This interface is not intended to be extended by clients. |
| * @since 3.6 |
| */ |
| public interface IResourceFilterDescription { |
| |
| /*==================================================================== |
| * Constants defining which members are wanted: |
| *====================================================================*/ |
| |
| /** |
| * Flag for resource filters indicating that the filter list includes only |
| * the files matching the filters. All INCLUDE_ONLY filters are applied to |
| * the resource list with an logical OR operation. |
| */ |
| public static final int INCLUDE_ONLY = 1; |
| |
| /** |
| * Flag for resource filters indicating that the filter list excludes all |
| * the files matching the filters. All EXCLUDE_ALL filters are applied to |
| * the resource list with an logical AND operation. |
| */ |
| public static final int EXCLUDE_ALL = 2; |
| |
| /** |
| * Flag for resource filters indicating that this filter applies to files. |
| */ |
| public static final int FILES = 4; |
| |
| /** |
| * Flag for resource filters indicating that this filter applies to folders. |
| */ |
| public static final int FOLDERS = 8; |
| |
| /** |
| * Flag for resource filters indicating that the container children of the |
| * path inherit from this filter as well. |
| */ |
| public static final int INHERITABLE = 16; |
| |
| /** |
| * Returns the description of the file info matcher corresponding to this resource |
| * filter. |
| * @return the file info matcher description for this resource filter |
| */ |
| public FileInfoMatcherDescription getFileInfoMatcherDescription(); |
| |
| /** |
| * Return the resource towards which this filter is set. |
| * |
| * @return the resource towards which this filter is set |
| */ |
| public IResource getResource(); |
| |
| /** |
| * Return the filter type, either INCLUDE_ONLY or EXCLUDE_ALL |
| * |
| * @return (INCLUDE_ONLY or EXCLUDE_ALL) and/or INHERITABLE |
| */ |
| public int getType(); |
| |
| /** |
| * Deletes this filter description from its associated resource. |
| * <p> |
| * The {@link IResource#BACKGROUND_REFRESH} update flag controls when |
| * changes to the resource hierarchy under this container resulting from the filter |
| * removal take effect. If this flag is specified, the resource hierarchy is updated in a |
| * separate thread after this method returns. If the flag is not specified, any resource |
| * changes resulting from the filter removal will occur before this method returns. |
| * </p> |
| * <p> |
| * This operation changes resources; these changes will be reported |
| * in a subsequent resource change event that will include an indication |
| * of any resources that have been added as a result of the filter removal. |
| * </p> |
| * <p> |
| * This operation is long-running; progress and cancellation are provided |
| * by the given progress monitor. |
| * </p> |
| * |
| * @param updateFlags bit-wise or of update flag constants |
| * ({@link IResource#BACKGROUND_REFRESH}) |
| * @param monitor a progress monitor, or <code>null</code> if progress |
| * reporting is not desired |
| * @exception CoreException if this filter could not be removed. Reasons include: |
| * <ul> |
| * <li> Resource changes are disallowed during certain types of resource change |
| * event notification. See <code>IResourceChangeEvent</code> for more details.</li> |
| * </ul> |
| * @exception OperationCanceledException if the operation is canceled. |
| * Cancelation can occur even if no progress monitor is provided. |
| * @see IContainer#getFilters() |
| * @see IContainer#createFilter(int, FileInfoMatcherDescription, int, IProgressMonitor) |
| */ |
| public void delete(int updateFlags, IProgressMonitor monitor) throws CoreException; |
| |
| } |