From 3cd2cd80984a85e819696ed450da48de7d1175d6 Mon Sep 17 00:00:00 2001 From: Chris Wiebe Date: Fri, 13 Aug 2004 21:38:35 +0000 Subject: [PATCH] 2004-08-13 Chris Wiebe Add findSourceRoot() method needed for class wizard * model/org/eclipse/cdt/core/model/ICProject.java * model/org/eclipse/cdt/internal/core/model/CProject.java --- core/org.eclipse.cdt.core/ChangeLog | 6 ++++ .../org/eclipse/cdt/core/model/ICProject.java | 10 ++++++ .../cdt/internal/core/model/CProject.java | 32 +++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 5da238fbeac..19514f6ace4 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,9 @@ +2004-08-13 Chris Wiebe + + Add findSourceRoot() method needed for class wizard + * model/org/eclipse/cdt/core/model/ICProject.java + * model/org/eclipse/cdt/internal/core/model/CProject.java + 2004-08-09 Bogdan Gheorghe Fix for Bug 71115: Double Indexing * model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICProject.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICProject.java index 158e3157671..4bac7160a1a 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICProject.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICProject.java @@ -82,6 +82,10 @@ public interface ICProject extends IParent, IOpenable, ICElement { */ ISourceRoot getSourceRoot(ISourceEntry entry) throws CModelException; + ISourceRoot findSourceRoot(IResource resource); + + ISourceRoot findSourceRoot(IPath path); + /** * Return the output entries. * @@ -102,6 +106,12 @@ public interface ICProject extends IParent, IOpenable, ICElement { */ boolean isOnSourceRoot(IResource resource); + /** + * @param element + * @return + */ + boolean isOnSourceRoot(ICElement element); + /** * Return the library references for this project. * diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java index 47a5a26f196..24b2043c1bc 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java @@ -434,6 +434,38 @@ public class CProject extends Openable implements ICProject { return null; } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.model.ICProject#findSourceRoot() + */ + public ISourceRoot findSourceRoot(IResource res) { + try { + ISourceRoot[] roots = getAllSourceRoots(); + for (int i = 0; i < roots.length; i++) { + if (roots[i].isOnSourceEntry(res)) { + return roots[i]; + } + } + } catch (CModelException e) { + } + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.model.ICProject#findSourceRoot() + */ + public ISourceRoot findSourceRoot(IPath path) { + try { + ISourceRoot[] roots = getAllSourceRoots(); + for (int i = 0; i < roots.length; i++) { + if (roots[i].getPath().equals(path)) { + return roots[i]; + } + } + } catch (CModelException e) { + } + return null; + } + /* (non-Javadoc) * @see org.eclipse.cdt.core.model.ICProject#getSourceRoots() */