Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2004-01-20 16:37:18 +0000
committerDoug Schaefer2004-01-20 16:37:18 +0000
commit14bf87311d680452e5efc33b0c6f7f528b70fcf7 (patch)
treefbdda31bfd76946601220ef2b7bdfdb930485d0a /core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java
parenta38f5c4f0dd1208b4df07f8a318b103677fbf77a (diff)
downloadorg.eclipse.cdt-14bf87311d680452e5efc33b0c6f7f528b70fcf7.tar.gz
org.eclipse.cdt-14bf87311d680452e5efc33b0c6f7f528b70fcf7.tar.xz
org.eclipse.cdt-14bf87311d680452e5efc33b0c6f7f528b70fcf7.zip
Added visitor support for the C Model.
Diffstat (limited to 'core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java')
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java
index 745e63a3b5f..2a37a7728fd 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java
@@ -6,12 +6,14 @@ package org.eclipse.cdt.internal.core.model;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICElementVisitor;
import org.eclipse.cdt.core.model.ICModel;
import org.eclipse.cdt.core.model.ICModelStatusConstants;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IOpenable;
import org.eclipse.cdt.core.model.IParent;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
@@ -383,4 +385,20 @@ public abstract class CElement extends PlatformObject implements ICElement {
return this.equals(otherElement);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.model.ICElement#accept(org.eclipse.cdt.core.model.ICElementVisitor)
+ */
+ public void accept(ICElementVisitor visitor) throws CoreException {
+ // Visit me, return right away if the visitor doesn't want to visit my children
+ if (!visitor.visit(this))
+ return;
+
+ // If I am a Parent, visit my children
+ if (this instanceof IParent) {
+ ICElement [] children = ((IParent)this).getChildren();
+ for (int i = 0; i < children.length; ++i)
+ children[i].accept(visitor);
+ }
+ }
+
}

Back to the top