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..d3dcce0 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,15 +32,27 @@ 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 */ //public void copy(IJavaElement container, IJavaElement sibling, String rename, boolean force, IProgressMonitor monitor) throws JavaModelException { // if (container == null) { -// throw new IllegalArgumentException(Util.bind("operation.nullContainer")); //$NON-NLS-1$ +// throw new IllegalArgumentException(ProjectPrefUtil.bind("operation.nullContainer")); //$NON-NLS-1$ // } // IJavaElement[] elements= new IJavaElement[] {this}; // IJavaElement[] containers= new IJavaElement[] {container}; @@ -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 @@ -135,7 +170,7 @@ public IResource getUnderlyingResource() throws JavaModelException { */ //public void move(IJavaElement container, IJavaElement sibling, String rename, boolean force, IProgressMonitor monitor) throws JavaModelException { // if (container == null) { -// throw new IllegalArgumentException(Util.bind("operation.nullContainer")); //$NON-NLS-1$ +// throw new IllegalArgumentException(ProjectPrefUtil.bind("operation.nullContainer")); //$NON-NLS-1$ // } // IJavaElement[] elements= new IJavaElement[] {this}; // IJavaElement[] containers= new IJavaElement[] {container}; @@ -154,7 +189,7 @@ public IResource getUnderlyingResource() throws JavaModelException { */ //public void rename(String name, boolean force, IProgressMonitor monitor) throws JavaModelException { // if (name == null) { -// throw new IllegalArgumentException(Util.bind("element.nullName")); //$NON-NLS-1$ +// throw new IllegalArgumentException(ProjectPrefUtil.bind("element.nullName")); //$NON-NLS-1$ // } // IJavaElement[] elements= new IJavaElement[] {this}; // IJavaElement[] dests= new IJavaElement[] {this.getParent()};