Class RefreshExclusion

  • All Implemented Interfaces:
    java.lang.Cloneable

    public abstract class RefreshExclusion
    extends java.lang.Object
    implements java.lang.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 Detail

      • CLASS_ATTRIBUTE_NAME

        public static final java.lang.String CLASS_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • CONTRIBUTOR_ID_ATTRIBUTE_NAME

        public static final java.lang.String CONTRIBUTOR_ID_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • DISPLAY_STRING_ATTRIBUTE_NAME

        public static final java.lang.String DISPLAY_STRING_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • EXCLUSION_ELEMENT_NAME

        public static final java.lang.String EXCLUSION_ELEMENT_NAME
        See Also:
        Constant Field Values
      • EXCLUSION_TYPE_ATTRIBUTE_NAME

        public static final java.lang.String EXCLUSION_TYPE_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • EXTENSION_DATA_ELEMENT_NAME

        public static final java.lang.String EXTENSION_DATA_ELEMENT_NAME
        See Also:
        Constant Field Values
      • INSTANCE_ELEMENT_NAME

        public static final java.lang.String INSTANCE_ELEMENT_NAME
        See Also:
        Constant Field Values
      • WORKSPACE_PATH_ATTRIBUTE_NAME

        public static final java.lang.String WORKSPACE_PATH_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • fContributorId

        protected java.lang.String fContributorId
      • fExclusionInstanceList

        protected java.util.List<ExclusionInstance> fExclusionInstanceList
      • fNestedExclusions

        protected java.util.List<RefreshExclusion> fNestedExclusions
      • fParentResource

        protected org.eclipse.core.resources.IResource fParentResource
    • Constructor Detail

      • RefreshExclusion

        public RefreshExclusion()
    • Method Detail

      • 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 java.lang.String getContributorId()
        Returns:
        a String corresponding to the ID of the RefreshExclusionContributor that was used to create this exclusion.
      • getExclusionInstances

        public java.util.List<ExclusionInstance> getExclusionInstances()
        Returns:
        an unmodifiable list of all the instance of this exclusion
      • getName

        public abstract java.lang.String getName()
        Returns:
        a String corresponding to the human-readable name for this exclusion.
      • getNestedExclusions

        public java.util.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)
      • 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​(java.lang.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 java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object