Package org.eclipse.cdt.core.resources

## Class RefreshExclusion

- java.lang.Object
- - org.eclipse.cdt.core.resources.RefreshExclusion

All Implemented Interfaces:
  `Cloneable`

    public abstract class RefreshExclusion
    extends Object
    implements Cloneable

A RefreshExclusion represents a rule for excluding certain resources from being refreshed. Clients should extend this class to provide support for their own custom exclusions. EXPERIMENTAL. This class or interface has been added as part of a work in progress. There is no guarantee that this API will work or that it will remain the same. Please do not use this API without consulting with the CDT team.

Since:
  5.3

### Field Summary

Fields
`static String` `CLASS_ATTRIBUTE_NAME`
`static String` `CONTRIBUTOR_ID_ATTRIBUTE_NAME`
`static String` `DISPLAY_STRING_ATTRIBUTE_NAME`
`static String` `EXCLUSION_ELEMENT_NAME`
`static String` `EXCLUSION_TYPE_ATTRIBUTE_NAME`
`static String` `EXTENSION_DATA_ELEMENT_NAME`
`protected String` `fContributorId`
`protected List<ExclusionInstance>` `fExclusionInstanceList`
`protected ExclusionType` `fExclusionType`
`static String` `FILE_VALUE`
`protected List<RefreshExclusion>` `fNestedExclusions`
`static String` `FOLDER_VALUE`
`protected RefreshExclusion` `fParentExclusion`
`protected org.eclipse.core.resources.IResource` `fParentResource`
`static String` `INSTANCE_ELEMENT_NAME`
`static String` `RESOURCE_VALUE`
`static String` `WORKSPACE_PATH_ATTRIBUTE_NAME`

### Constructor Summary

Constructors
`RefreshExclusion()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`void` `addExclusionInstance​(ExclusionInstance exclusionInstance)` Adds an instance to the list of instances of this exclusion.
`void` `addNestedExclusion​(RefreshExclusion exclusion)`
`abstract Object` `clone()`
`protected void` `copyTo​(RefreshExclusion destination)` Duplicate this refresh exclusion to the given one.
`String` `getContributorId()`
`List<ExclusionInstance>` `getExclusionInstances()`
`ExclusionType` `getExclusionType()`
`abstract String` `getName()`
`List<RefreshExclusion>` `getNestedExclusions()`
`RefreshExclusion` `getParentExclusion()` If this is a nested exclusion, returns the exclusion which is the direct parent of this one.
`org.eclipse.core.resources.IResource` `getParentResource()` If this exclusion is a direct descendant of a resource, returns that resource.
`static List<RefreshExclusion>` `loadData​(ICStorageElement parentElement, RefreshExclusion parentExclusion, org.eclipse.core.resources.IResource parentResource, RefreshScopeManager manager)`
`protected void` `loadExtendedData​(ICStorageElement grandchild)`
`void` `persistData​(ICStorageElement parentElement)`
`protected void` `persistExtendedData​(ICStorageElement extensionElement)`
`void` `removeExclusionInstance​(ExclusionInstance exclusionInstance)` Removes an exclusion instance from the list of instances of this exclusion.
`void` `removeNestedExclusion​(RefreshExclusion exclusion)` Removes the given nested exclusion.
`void` `setContributorId​(String id)`
`void` `setExclusionType​(ExclusionType exclusionType)`
`void` `setParentExclusion​(RefreshExclusion parent)`
`void` `setParentResource​(org.eclipse.core.resources.IResource parentResource)` Sets the parent resource of this exclusion.
`abstract boolean` `supportsExclusionInstances()`
`abstract boolean` `testExclusion​(org.eclipse.core.resources.IResource resource)` Tests a given resource to see if this exclusion applies to it.
`boolean` `testExclusionChain​(org.eclipse.core.resources.IResource resource)` Tests this exclusion and recursively test all of its nested exclusions to determine whether this exclusion should be triggered or not.

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CLASS_ATTRIBUTE_NAME

    public static final String CLASS_ATTRIBUTE_NAME

See Also:
  Constant Field Values

#### CONTRIBUTOR_ID_ATTRIBUTE_NAME

    public static final String CONTRIBUTOR_ID_ATTRIBUTE_NAME

See Also:
  Constant Field Values

#### DISPLAY_STRING_ATTRIBUTE_NAME

    public static final String DISPLAY_STRING_ATTRIBUTE_NAME

See Also:
  Constant Field Values

#### EXCLUSION_ELEMENT_NAME

    public static final String EXCLUSION_ELEMENT_NAME

See Also:
  Constant Field Values

#### EXCLUSION_TYPE_ATTRIBUTE_NAME

    public static final String EXCLUSION_TYPE_ATTRIBUTE_NAME

See Also:
  Constant Field Values

#### EXTENSION_DATA_ELEMENT_NAME

    public static final String EXTENSION_DATA_ELEMENT_NAME

See Also:
  Constant Field Values

#### FILE_VALUE

    public static final String FILE_VALUE

See Also:
  Constant Field Values

#### FOLDER_VALUE

    public static final String FOLDER_VALUE

See Also:
  Constant Field Values

#### INSTANCE_ELEMENT_NAME

    public static final String INSTANCE_ELEMENT_NAME

See Also:
  Constant Field Values

#### RESOURCE_VALUE

    public static final String RESOURCE_VALUE

See Also:
  Constant Field Values

#### WORKSPACE_PATH_ATTRIBUTE_NAME

    public static final String WORKSPACE_PATH_ATTRIBUTE_NAME

See Also:
  Constant Field Values

#### fContributorId

    protected String fContributorId

#### fExclusionInstanceList

    protected List<ExclusionInstance> fExclusionInstanceList

#### fExclusionType

    protected ExclusionType fExclusionType

#### fNestedExclusions

    protected List<RefreshExclusion> fNestedExclusions

#### fParentExclusion

    protected RefreshExclusion fParentExclusion

#### fParentResource

    protected org.eclipse.core.resources.IResource fParentResource

### Constructor Detail

#### RefreshExclusion

    public RefreshExclusion()

### Method Detail

#### loadData

    public static List<RefreshExclusion> loadData​(ICStorageElement parentElement,
                                                  RefreshExclusion parentExclusion,
                                                  org.eclipse.core.resources.IResource parentResource,
                                                  RefreshScopeManager manager)
                                           throws org.eclipse.core.runtime.CoreException

Throws:
  `org.eclipse.core.runtime.CoreException`

#### addExclusionInstance

    public void addExclusionInstance​(ExclusionInstance exclusionInstance)

Adds an instance to the list of instances of this exclusion.

Parameters:
  `exclusionInstance` -

#### addNestedExclusion

    public void addNestedExclusion​(RefreshExclusion exclusion)

#### getContributorId

    public String getContributorId()

Returns:
  a String corresponding to the ID of the RefreshExclusionContributor that was used to create this exclusion.

#### getExclusionInstances

    public List<ExclusionInstance> getExclusionInstances()

Returns:
  an unmodifiable list of all the instance of this exclusion

#### getExclusionType

    public ExclusionType getExclusionType()

#### getName

    public abstract String getName()

Returns:
  a String corresponding to the human-readable name for this exclusion.

#### getNestedExclusions

    public List<RefreshExclusion> getNestedExclusions()

Returns:
  an unmodifiable list of exclusions to this exclusion.

#### getParentExclusion

    public RefreshExclusion getParentExclusion()

If this is a nested exclusion, returns the exclusion which is the direct parent of this one.

Returns:
  RefreshExclusion

#### getParentResource

    public org.eclipse.core.resources.IResource getParentResource()

If this exclusion is a direct descendant of a resource, returns that resource. Otherwise, returns null;

Returns:
  IResource

#### loadExtendedData

    protected void loadExtendedData​(ICStorageElement grandchild)

#### persistData

    public void persistData​(ICStorageElement parentElement)

#### persistExtendedData

    protected void persistExtendedData​(ICStorageElement extensionElement)

#### removeExclusionInstance

    public void removeExclusionInstance​(ExclusionInstance exclusionInstance)

Removes an exclusion instance from the list of instances of this exclusion.

Parameters:
  `exclusionInstance` -

#### removeNestedExclusion

    public void removeNestedExclusion​(RefreshExclusion exclusion)

Removes the given nested exclusion. The exclusion must be a direct child of this exclusion.

Parameters:
  `exclusion` -

#### setContributorId

    public void setContributorId​(String id)

#### setExclusionType

    public void setExclusionType​(ExclusionType exclusionType)

#### setParentExclusion

    public void setParentExclusion​(RefreshExclusion parent)

#### setParentResource

    public void setParentResource​(org.eclipse.core.resources.IResource parentResource)

Sets the parent resource of this exclusion.

Parameters:
  `parentResource` - the parent resource to set

#### supportsExclusionInstances

    public abstract boolean supportsExclusionInstances()

Returns:
  true if this exclusion supports exclusion instances

#### testExclusion

    public abstract boolean testExclusion​(org.eclipse.core.resources.IResource resource)

Tests a given resource to see if this exclusion applies to it.

Parameters:
  `resource` - the resource to be tested.
Returns:
  true if the resource triggers the exclusion, false otherwise (including if this exclusion does not apply).

#### testExclusionChain

    public boolean testExclusionChain​(org.eclipse.core.resources.IResource resource)

Tests this exclusion and recursively test all of its nested exclusions to determine whether this exclusion should be triggered or not.

Parameters:
  `resource` - the resource to be tested
Returns:
  true if the exclusion is triggered, false otherwise (including if this exclusion does not apply)

#### copyTo

    protected void copyTo​(RefreshExclusion destination)

Duplicate this refresh exclusion to the given one.

Parameters:
  `destination` - - the refresh exclusion to be modified
Since:
  5.4

#### clone

    public abstract Object clone()

Overrides:
  `clone` in class `Object`