diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ExclusionInstance.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ExclusionInstance.java index 01e7559580f..f29e3dc928e 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ExclusionInstance.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ExclusionInstance.java @@ -47,9 +47,26 @@ public class ExclusionInstance { public static final String FILE_VALUE = "FILE"; //$NON-NLS-1$ public static final String DISPLAY_STRING_ATTRIBUTE_NAME = "displayString"; //$NON-NLS-1$ - private ExclusionType fInstanceExclusionType; - private IResource fResource; - private String fDisplayString; + protected ExclusionType fInstanceExclusionType; + protected IResource fResource; + protected String fDisplayString; + protected RefreshExclusion fParent; + + /** + * Returns the parent exclusion of this exclusion instance. + * + * @return RefreshExclusion + */ + public RefreshExclusion getParentExclusion() { + return fParent; + } + + /** + * @param parent the RefreshExclusion to set as the parent. + */ + public void setParentExclusion(RefreshExclusion parent) { + fParent = parent; + } public ExclusionType getExclusionType() { return fInstanceExclusionType; diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshExclusion.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshExclusion.java index 7733bfc01c8..74a859b8ce1 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshExclusion.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshExclusion.java @@ -52,9 +52,31 @@ public abstract class RefreshExclusion { protected List fExclusionInstanceList = new LinkedList(); protected List fNestedExclusions = new LinkedList(); protected ExclusionType fExclusionType; - protected RefreshExclusion fParent; + protected RefreshExclusion fParentExclusion; + protected IResource fParentResource; + + protected String fContributorId; + /** + * If this exclusion is a direct descendant of a resource, returns that resource. + * Otherwise, returns null; + * + * @return IResource + */ + public IResource getParentResource() { + return fParentResource; + } + + /** + * Sets the parent resource of this exclusion. + * + * @param parentResource the parent resource to set + */ + public void setParentResource(IResource parentResource) { + this.fParentResource = parentResource; + } + /** * @return a String corresponding to the ID of the RefreshExclusionContributor that was used to create * this exclusion. @@ -72,12 +94,12 @@ public abstract class RefreshExclusion { * * @return RefreshExclusion */ - public RefreshExclusion getParent() { - return fParent; + public RefreshExclusion getParentExclusion() { + return fParentExclusion; } - public void setParent(RefreshExclusion parent) { - fParent = parent; + public void setParentExclusion(RefreshExclusion parent) { + fParentExclusion = parent; } public ExclusionType getExclusionType() { @@ -114,6 +136,7 @@ public abstract class RefreshExclusion { * @param exclusionInstance */ public void addExclusionInstance(ExclusionInstance exclusionInstance) { + exclusionInstance.setParentExclusion(this); fExclusionInstanceList.add(exclusionInstance); } @@ -136,7 +159,7 @@ public abstract class RefreshExclusion { public void addNestedExclusion(RefreshExclusion exclusion) { fNestedExclusions.add(exclusion); - exclusion.setParent(this); + exclusion.setParentExclusion(this); } /** @@ -249,7 +272,7 @@ public abstract class RefreshExclusion { } // set parent - newExclusion.fParent = parent; + newExclusion.fParentExclusion = parent; newExclusion.fContributorId = exclusionElement.getAttribute(CONTRIBUTOR_ID_ATTRIBUTE_NAME); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java index c3dfe48aa4f..2b919a5651e 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java @@ -11,15 +11,14 @@ package org.eclipse.cdt.core.resources; import java.io.StringWriter; -import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; -import java.util.Set; import java.util.TreeMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; @@ -64,7 +63,7 @@ public class RefreshScopeManager { } - private TreeMap> fProjectToResourcesMap; + private TreeMap> fProjectToResourcesMap; private TreeMap> fResourceToExclusionsMap; private static RefreshScopeManager fInstance; @@ -89,12 +88,8 @@ public class RefreshScopeManager { * @param project * @return Set */ - public Set getResourcesToRefresh(IProject project) { - Set retval = fProjectToResourcesMap.get(project); - - if(retval == null) { - return Collections.emptySet(); - } + public List getResourcesToRefresh(IProject project) { + List retval = new LinkedList(fProjectToResourcesMap.get(project)); return retval; }