X-Git-Url: http://secure.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..e359e6b 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 */ @@ -114,7 +145,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