diff options
author | Doug Schaefer | 2004-01-20 16:37:18 +0000 |
---|---|---|
committer | Doug Schaefer | 2004-01-20 16:37:18 +0000 |
commit | 14bf87311d680452e5efc33b0c6f7f528b70fcf7 (patch) | |
tree | fbdda31bfd76946601220ef2b7bdfdb930485d0a /core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java | |
parent | a38f5c4f0dd1208b4df07f8a318b103677fbf77a (diff) | |
download | org.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.java | 18 |
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); + } + } + } |