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..9db0a5a 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,11 +10,15 @@ *******************************************************************************/ 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; import net.sourceforge.phpdt.core.IJavaProject; +import net.sourceforge.phpdt.core.IMember; import net.sourceforge.phpdt.core.IOpenable; +import net.sourceforge.phpdt.core.ISourceManipulation; import net.sourceforge.phpdt.core.ISourceRange; import net.sourceforge.phpdt.core.ISourceReference; import net.sourceforge.phpdt.core.JavaModelException; @@ -28,8 +32,20 @@ import org.eclipse.core.runtime.IProgressMonitor; * 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 +73,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 */ @@ -114,7 +142,14 @@ public String getSource() throws JavaModelException { if (offset == -1 || length == 0 ) { return null; } - return buffer.getText(offset, length); + try { + return buffer.getText(offset, length); + // jsurfer insert start + } catch (ArrayIndexOutOfBoundsException e) { + + } + return null; +// jsurfer insert end } /** * @see ISourceReference