Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 139967 Details for
Bug 88265
Make SourceRange API
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix and tests
patch.txt (text/plain), 17.10 KB, created by
Srikanth Sankaran
on 2009-06-24 06:01:25 EDT
(
hide
)
Description:
Proposed fix and tests
Filename:
MIME Type:
Creator:
Srikanth Sankaran
Created:
2009-06-24 06:01:25 EDT
Size:
17.10 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java,v >retrieving revision 1.60 >diff -u -r1.60 AttachSourceTests.java >--- src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java 22 Jun 2009 13:48:28 -0000 1.60 >+++ src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java 24 Jun 2009 09:50:40 -0000 >@@ -24,6 +24,7 @@ > import org.eclipse.core.runtime.Path; > import org.eclipse.jdt.core.*; > import org.eclipse.jdt.core.dom.*; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; > import org.eclipse.jdt.internal.core.JarPackageFragmentRoot; > import org.eclipse.jdt.internal.core.util.Util; >@@ -1470,4 +1471,19 @@ > attachSource(root, null, null); // detach source > root.close(); > } >+ >+// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88265 >+// Test to ensure availability and correctness of API SourceRange >+public void test88265 () { >+ org.eclipse.jdt.core.model.SourceRange one = new org.eclipse.jdt.core.model.SourceRange(10, 7); >+ org.eclipse.jdt.core.model.SourceRange two = new org.eclipse.jdt.core.model.SourceRange(9, 13); >+ assertTrue(two.getOffset() == 9); >+ assertTrue(two.getLength() == 13); >+ assertFalse(one.equals(two)); >+ SourceRange three = new org.eclipse.jdt.core.model.SourceRange(10, 7); >+ assertTrue(one.equals(three)); >+ assertTrue(SourceRange.isAvailable(one)); >+ assertFalse(SourceRange.isAvailable(null)); >+ assertFalse(SourceRange.isAvailable(new SourceRange(-1, 0))); >+} > } >Index: src/org/eclipse/jdt/core/tests/dom/ASTNodeFinderTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTNodeFinderTest.java,v >retrieving revision 1.3 >diff -u -r1.3 ASTNodeFinderTest.java >--- src/org/eclipse/jdt/core/tests/dom/ASTNodeFinderTest.java 16 Oct 2008 16:22:23 -0000 1.3 >+++ src/org/eclipse/jdt/core/tests/dom/ASTNodeFinderTest.java 24 Jun 2009 09:50:40 -0000 >@@ -19,7 +19,7 @@ > import org.eclipse.jdt.core.dom.AST; > import org.eclipse.jdt.core.dom.ASTNode; > import org.eclipse.jdt.core.dom.NodeFinder; >-import org.eclipse.jdt.internal.core.SourceRange; >+import org.eclipse.jdt.core.model.SourceRange; > > public class ASTNodeFinderTest extends ConverterTestSetup { > >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/core/ISourceRange.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ISourceRange.java,v >retrieving revision 1.13 >diff -u -r1.13 ISourceRange.java >--- model/org/eclipse/jdt/core/ISourceRange.java 27 Jun 2008 16:04:01 -0000 1.13 >+++ model/org/eclipse/jdt/core/ISourceRange.java 24 Jun 2009 09:50:43 -0000 >@@ -28,10 +28,12 @@ > int getLength(); > /** > * Returns the 0-based index of the first character of the source code for this element, >- * relative to the source buffer in which this element is contained. >+ * relative to the source buffer in which this element is contained. However, if the element >+ * has no associated source code, an implementation may return -1. > * > * @return the 0-based index of the first character of the source code for this element, >- * relative to the source buffer in which this element is contained >+ * relative to the source buffer in which this element is contained. However, if the element >+ * has no associated source code, an implementation may return -1. > */ > int getOffset(); > } >Index: model/org/eclipse/jdt/internal/core/SourceRefElementInfo.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceRefElementInfo.java,v >retrieving revision 1.15 >diff -u -r1.15 SourceRefElementInfo.java >--- model/org/eclipse/jdt/internal/core/SourceRefElementInfo.java 7 Mar 2009 01:08:08 -0000 1.15 >+++ model/org/eclipse/jdt/internal/core/SourceRefElementInfo.java 24 Jun 2009 09:50:44 -0000 >@@ -11,6 +11,7 @@ > package org.eclipse.jdt.internal.core; > > import org.eclipse.jdt.core.ISourceRange; >+import org.eclipse.jdt.core.model.SourceRange; > > /** > * Element info for ISourceReference elements. >Index: model/org/eclipse/jdt/internal/core/Member.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Member.java,v >retrieving revision 1.52 >diff -u -r1.52 Member.java >--- model/org/eclipse/jdt/internal/core/Member.java 7 Mar 2009 00:58:57 -0000 1.52 >+++ model/org/eclipse/jdt/internal/core/Member.java 24 Jun 2009 09:50:43 -0000 >@@ -18,6 +18,7 @@ > import org.eclipse.jdt.core.compiler.IScanner; > import org.eclipse.jdt.core.compiler.ITerminalSymbols; > import org.eclipse.jdt.core.compiler.InvalidInputException; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.impl.Constant; > import org.eclipse.jdt.internal.compiler.lookup.TypeIds; > import org.eclipse.jdt.internal.core.util.MementoTokenizer; >Index: model/org/eclipse/jdt/internal/core/SourceRange.java >=================================================================== >RCS file: model/org/eclipse/jdt/internal/core/SourceRange.java >diff -N model/org/eclipse/jdt/internal/core/SourceRange.java >--- model/org/eclipse/jdt/internal/core/SourceRange.java 6 Oct 2006 18:49:08 -0000 1.20 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,62 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2000, 2006 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- *******************************************************************************/ >-package org.eclipse.jdt.internal.core; >- >-import org.eclipse.jdt.core.ISourceRange; >- >-/** >- * @see ISourceRange >- */ >-public class SourceRange implements ISourceRange { >- >-protected int offset, length; >- >-public SourceRange(int offset, int length) { >- this.offset = offset; >- this.length = length; >-} >-/* >- * @see Object#equals(Object) >- */ >-public boolean equals(Object obj) { >- if (!(obj instanceof ISourceRange)) >- return false; >- ISourceRange sourceRange = (ISourceRange) obj; >- return sourceRange.getOffset() == this.offset && sourceRange.getLength() == this.length; >-} >-/** >- * @see ISourceRange >- */ >-public int getLength() { >- return this.length; >-} >-/** >- * @see ISourceRange >- */ >-public int getOffset() { >- return this.offset; >-} >-/* >- * @see Object#hashCode() >- */ >-public int hashCode() { >- return this.length ^ this.offset; >-} >-public String toString() { >- StringBuffer buffer = new StringBuffer(); >- buffer.append("[offset="); //$NON-NLS-1$ >- buffer.append(this.offset); >- buffer.append(", length="); //$NON-NLS-1$ >- buffer.append(this.length); >- buffer.append("]"); //$NON-NLS-1$ >- return buffer.toString(); >-} >-} >Index: model/org/eclipse/jdt/internal/core/ClassFile.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java,v >retrieving revision 1.144 >diff -u -r1.144 ClassFile.java >--- model/org/eclipse/jdt/internal/core/ClassFile.java 10 Oct 2008 07:28:57 -0000 1.144 >+++ model/org/eclipse/jdt/internal/core/ClassFile.java 24 Jun 2009 09:50:43 -0000 >@@ -27,6 +27,7 @@ > import org.eclipse.core.runtime.Path; > import org.eclipse.jdt.core.*; > import org.eclipse.jdt.core.compiler.IProblem; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader; > import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException; > import org.eclipse.jdt.internal.compiler.env.IBinaryType; >@@ -445,8 +446,8 @@ > > SourceRange range = mapper.getSourceRange(classFile.getType()); > if (range == SourceMapper.UNKNOWN_RANGE) continue; >- int newStart = range.offset; >- int newEnd = newStart + range.length - 1; >+ int newStart = range.getOffset(); >+ int newEnd = newStart + range.getLength() - 1; > if(newStart > start && newEnd < end > && newStart <= position && newEnd >= position) { > type = classFile.getType(); >Index: model/org/eclipse/jdt/internal/core/SourceMapper.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceMapper.java,v >retrieving revision 1.140 >diff -u -r1.140 SourceMapper.java >--- model/org/eclipse/jdt/internal/core/SourceMapper.java 22 Jun 2009 13:48:27 -0000 1.140 >+++ model/org/eclipse/jdt/internal/core/SourceMapper.java 24 Jun 2009 09:50:44 -0000 >@@ -49,6 +49,7 @@ > import org.eclipse.jdt.core.Signature; > import org.eclipse.jdt.core.compiler.CategorizedProblem; > import org.eclipse.jdt.core.compiler.CharOperation; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.IProblemFactory; > import org.eclipse.jdt.internal.compiler.ISourceElementRequestor; > import org.eclipse.jdt.internal.compiler.SourceElementParser; >Index: model/org/eclipse/jdt/internal/core/ImportContainer.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ImportContainer.java,v >retrieving revision 1.37 >diff -u -r1.37 ImportContainer.java >--- model/org/eclipse/jdt/internal/core/ImportContainer.java 27 Jun 2008 16:03:50 -0000 1.37 >+++ model/org/eclipse/jdt/internal/core/ImportContainer.java 24 Jun 2009 09:50:43 -0000 >@@ -11,12 +11,7 @@ > package org.eclipse.jdt.internal.core; > > import org.eclipse.jdt.core.*; >-import org.eclipse.jdt.core.IImportContainer; >-import org.eclipse.jdt.core.IImportDeclaration; >-import org.eclipse.jdt.core.IJavaElement; >-import org.eclipse.jdt.core.ISourceRange; >-import org.eclipse.jdt.core.ISourceReference; >-import org.eclipse.jdt.core.JavaModelException; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.core.util.MementoTokenizer; > > /** >Index: model/org/eclipse/jdt/internal/core/LocalVariable.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/LocalVariable.java,v >retrieving revision 1.29 >diff -u -r1.29 LocalVariable.java >--- model/org/eclipse/jdt/internal/core/LocalVariable.java 21 Aug 2008 10:15:27 -0000 1.29 >+++ model/org/eclipse/jdt/internal/core/LocalVariable.java 24 Jun 2009 09:50:43 -0000 >@@ -17,6 +17,7 @@ > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.jdt.core.*; > import org.eclipse.jdt.core.compiler.CharOperation; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.ast.ArrayInitializer; > import org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess; > import org.eclipse.jdt.internal.compiler.ast.Expression; >Index: model/org/eclipse/jdt/internal/core/TypeParameter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/TypeParameter.java,v >retrieving revision 1.13 >diff -u -r1.13 TypeParameter.java >--- model/org/eclipse/jdt/internal/core/TypeParameter.java 27 Jun 2008 16:03:50 -0000 1.13 >+++ model/org/eclipse/jdt/internal/core/TypeParameter.java 24 Jun 2009 09:50:44 -0000 >@@ -11,10 +11,8 @@ > package org.eclipse.jdt.internal.core; > > import org.eclipse.jdt.core.*; >-import org.eclipse.jdt.core.IMember; >-import org.eclipse.jdt.core.ITypeParameter; >-import org.eclipse.jdt.core.JavaModelException; > import org.eclipse.jdt.core.compiler.CharOperation; >+import org.eclipse.jdt.core.model.SourceRange; > > public class TypeParameter extends SourceRefElement implements ITypeParameter { > >Index: model/org/eclipse/jdt/internal/core/Annotation.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Annotation.java,v >retrieving revision 1.6 >diff -u -r1.6 Annotation.java >--- model/org/eclipse/jdt/internal/core/Annotation.java 8 Apr 2009 22:52:54 -0000 1.6 >+++ model/org/eclipse/jdt/internal/core/Annotation.java 24 Jun 2009 09:50:43 -0000 >@@ -16,6 +16,7 @@ > import org.eclipse.jdt.core.IMemberValuePair; > import org.eclipse.jdt.core.ISourceRange; > import org.eclipse.jdt.core.JavaModelException; >+import org.eclipse.jdt.core.model.SourceRange; > import org.eclipse.jdt.internal.compiler.env.IBinaryAnnotation; > import org.eclipse.jdt.internal.compiler.env.IBinaryElementValuePair; > import org.eclipse.jdt.internal.core.util.Util; >Index: model/org/eclipse/jdt/internal/core/CompilationUnitElementInfo.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnitElementInfo.java,v >retrieving revision 1.17 >diff -u -r1.17 CompilationUnitElementInfo.java >--- model/org/eclipse/jdt/internal/core/CompilationUnitElementInfo.java 27 Jun 2008 16:03:51 -0000 1.17 >+++ model/org/eclipse/jdt/internal/core/CompilationUnitElementInfo.java 24 Jun 2009 09:50:43 -0000 >@@ -11,6 +11,7 @@ > package org.eclipse.jdt.internal.core; > > import org.eclipse.jdt.core.ISourceRange; >+import org.eclipse.jdt.core.model.SourceRange; > > public class CompilationUnitElementInfo extends OpenableElementInfo { > >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/META-INF/MANIFEST.MF,v >retrieving revision 1.34 >diff -u -r1.34 MANIFEST.MF >--- META-INF/MANIFEST.MF 22 Jun 2009 13:04:49 -0000 1.34 >+++ META-INF/MANIFEST.MF 24 Jun 2009 09:50:43 -0000 >@@ -15,6 +15,7 @@ > org.eclipse.jdt.core.eval, > org.eclipse.jdt.core.formatter, > org.eclipse.jdt.core.jdom, >+ org.eclipse.jdt.core.model, > org.eclipse.jdt.core.search, > org.eclipse.jdt.core.util, > org.eclipse.jdt.internal.codeassist;x-internal:=true, >Index: model/org/eclipse/jdt/core/model/SourceRange.java >=================================================================== >RCS file: model/org/eclipse/jdt/core/model/SourceRange.java >diff -N model/org/eclipse/jdt/core/model/SourceRange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ model/org/eclipse/jdt/core/model/SourceRange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.core.model; >+ >+import org.eclipse.jdt.core.ISourceRange; >+ >+/** >+ * @see ISourceRange >+ * @since 3.6 >+ */ >+public class SourceRange implements ISourceRange { >+ >+protected int offset, length; >+ >+public SourceRange(int offset, int length) { >+ this.offset = offset; >+ this.length = length; >+} >+/* >+ * @see Object#equals(Object) >+ */ >+public boolean equals(Object obj) { >+ if (!(obj instanceof ISourceRange)) >+ return false; >+ ISourceRange sourceRange = (ISourceRange) obj; >+ return sourceRange.getOffset() == this.offset && sourceRange.getLength() == this.length; >+} >+/** >+ * @see ISourceRange >+ */ >+public int getLength() { >+ return this.length; >+} >+/** >+ * @see ISourceRange >+ */ >+public int getOffset() { >+ return this.offset; >+} >+/* >+ * @see Object#hashCode() >+ */ >+public int hashCode() { >+ return this.length ^ this.offset; >+} >+ >+/** >+ * Helper method that answers whether a valid source range is available >+ * in the given ISourceRange. When an element has no associated source >+ * code, Java Model APIs may return either <code>null</code> or a range of >+ * [-1, 0] to indicate an invalid range. This utility method can be used >+ * to detect that case. >+ * >+ * @param range a source range, can be <code>null</code> >+ * @return <code>true</code> iff range is not null and range.getOffset() is not -1 >+ */ >+public static boolean isAvailable(ISourceRange range) { >+ return range != null && range.getOffset() != -1; >+} >+ >+public String toString() { >+ StringBuffer buffer = new StringBuffer(); >+ buffer.append("[offset="); //$NON-NLS-1$ >+ buffer.append(this.offset); >+ buffer.append(", length="); //$NON-NLS-1$ >+ buffer.append(this.length); >+ buffer.append("]"); //$NON-NLS-1$ >+ return buffer.toString(); >+} >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 88265
:
139967
|
140936