diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java index 983a323cf9e..b81b6c6268c 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java @@ -12,10 +12,11 @@ package org.eclipse.cdt.make.core; import org.eclipse.core.resources.IContainer; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; -public interface IMakeTarget { +public interface IMakeTarget extends IAdaptable { String getName(); String getTargetBuilderID(); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java index 63a1852cd93..be4db6fef6f 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java @@ -15,6 +15,7 @@ import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.core.resources.ICommand; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRunnable; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.resources.ResourcesPlugin; @@ -22,9 +23,10 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.SubProgressMonitor; -public class MakeTarget implements IMakeTarget { +public class MakeTarget extends PlatformObject implements IMakeTarget { private final MakeTargetManager manager; private String name; @@ -109,7 +111,7 @@ public class MakeTarget implements IMakeTarget { return true; if (obj instanceof MakeTarget) { MakeTarget other = (MakeTarget)obj; - return container.equals(other.getContainer()) && name.equals(other.getName()); + return (container != null ? container.equals(other.getContainer()) : other.getContainer() == null) && name.equals(other.getName()); } return false; } @@ -197,4 +199,18 @@ public class MakeTarget implements IMakeTarget { public boolean runAllBuilders() { return runAllBuidlers; } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) + */ + public Object getAdapter(Class adapter) { + if (adapter.equals(IProject.class)) { + return container.getProject(); + } else if (adapter.equals(IResource.class)) { + return container; + } + return super.getAdapter(adapter); + } } \ No newline at end of file