X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SourceRefElement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SourceRefElement.java index 9139979..b8dd333 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SourceRefElement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SourceRefElement.java @@ -10,6 +10,8 @@ *******************************************************************************/ package net.sourceforge.phpdt.internal.core; +import java.util.HashMap; + import net.sourceforge.phpdt.core.IBuffer; import net.sourceforge.phpdt.core.ICompilationUnit; import net.sourceforge.phpdt.core.IJavaElement; @@ -22,14 +24,31 @@ import net.sourceforge.phpdt.core.JavaModelException; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import net.sourceforge.phpdt.internal.core.JavaElementInfo; +import net.sourceforge.phpdt.internal.core.JavaModelManager; +import net.sourceforge.phpdt.internal.core.Openable; + +import net.sourceforge.phpdt.internal.core.JavaElement; /** * Abstract class for Java elements which implement ISourceReference. */ /* package */ abstract class SourceRefElement extends JavaElement implements ISourceReference { -protected SourceRefElement(int type, IJavaElement parent, String name) { - super(type, parent, name); + protected SourceRefElement(JavaElement parent, String name) { + super(parent, name); + } +/** + * This element is being closed. Do any necessary cleanup. + */ +protected void closing(Object info) throws JavaModelException { + // Do any necessary cleanup +} +/** + * Returns a new element info for this element. + */ +protected Object createElementInfo() { + return null; // not used for source ref elements } /** * @see ISourceManipulation @@ -57,6 +76,18 @@ protected SourceRefElement(int type, IJavaElement parent, String name) { // IJavaElement[] elements = new IJavaElement[] {this}; // getJavaModel().delete(elements, force, monitor); //} +/* + * @see JavaElement#generateInfos + */ +protected void generateInfos(Object info, HashMap newElements, IProgressMonitor pm) throws JavaModelException { + Openable openableParent = (Openable)getOpenableParent(); + if (openableParent == null) return; + + JavaElementInfo openableParentInfo = (JavaElementInfo) JavaModelManager.getJavaModelManager().getInfo(openableParent); + if (openableParentInfo == null) { + openableParent.generateInfos(openableParent.createElementInfo(), newElements, pm); + } +} /** * @see IMember */