Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManju Mathew2013-10-30 09:41:36 +0000
committerManju Mathew2013-10-30 09:41:36 +0000
commit15d4811e3fc0484d08c6a610fe081f96865a08ef (patch)
treec7792d3a4b7708e16287c6767795583ae1a9920d
parent3b350b06345eb502a18953d25f553b34aad02d91 (diff)
downloadeclipse.jdt.ui-15d4811e3fc0484d08c6a610fe081f96865a08ef.tar.gz
eclipse.jdt.ui-15d4811e3fc0484d08c6a610fe081f96865a08ef.tar.xz
eclipse.jdt.ui-15d4811e3fc0484d08c6a610fe081f96865a08ef.zip
Fix for bug 405270: [1.8][refactoring] Handling of receiver parameter
during UI refactoring. Updated changes wrt AnnotatableType.
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ExtractInterfaceProcessor.java12
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/HierarchyProcessor.java12
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveInstanceMethodProcessor.java18
3 files changed, 27 insertions, 15 deletions
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ExtractInterfaceProcessor.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ExtractInterfaceProcessor.java
index f2f49467a5..b3a5bcfacd 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ExtractInterfaceProcessor.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ExtractInterfaceProcessor.java
@@ -70,6 +70,7 @@ import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.ASTRequestor;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
+import org.eclipse.jdt.core.dom.AnnotatableType;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.EnumDeclaration;
@@ -750,10 +751,13 @@ public final class ExtractInterfaceProcessor extends SuperTypeRefactoringProcess
AST ast= rewrite.getAST();
SimpleName simpleName= ast.newSimpleName(targetName);
SimpleType simpleType= ast.newSimpleType(simpleName);
- Iterator<Annotation> iterator= declaration.getReceiverType().annotations().iterator();
- while (iterator.hasNext()) {
- Annotation annotation= iterator.next();
- simpleType.annotations().add(rewrite.createCopyTarget(annotation));
+ Type receiverType= declaration.getReceiverType();
+ if (receiverType.isAnnotatable()) {
+ Iterator<Annotation> iterator= ((AnnotatableType) receiverType).annotations().iterator();
+ while (iterator.hasNext()) {
+ Annotation annotation= iterator.next();
+ simpleType.annotations().add(rewrite.createCopyTarget(annotation));
+ }
}
rewrite.set(declaration, MethodDeclaration.RECEIVER_TYPE_PROPERTY, simpleType, null);
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/HierarchyProcessor.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/HierarchyProcessor.java
index 483e559c5a..0534667938 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/HierarchyProcessor.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/HierarchyProcessor.java
@@ -54,6 +54,7 @@ import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ASTVisitor;
+import org.eclipse.jdt.core.dom.AnnotatableType;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration;
import org.eclipse.jdt.core.dom.BodyDeclaration;
@@ -747,10 +748,13 @@ public abstract class HierarchyProcessor extends SuperTypeRefactoringProcessor {
String elementName= type.getElementName();
if (oldMethod.getReceiverType() != null) {
SimpleType simpleType= ast.newSimpleType(ast.newSimpleName(elementName));
- Iterator<Annotation> iterator= oldMethod.getReceiverType().annotations().iterator();
- while (iterator.hasNext()) {
- Annotation annotation= iterator.next();
- simpleType.annotations().add(ASTNode.copySubtree(ast, annotation));
+ Type receiverType= oldMethod.getReceiverType();
+ if (receiverType.isAnnotatable()) {
+ Iterator<Annotation> iterator= ((AnnotatableType) receiverType).annotations().iterator();
+ while (iterator.hasNext()) {
+ Annotation annotation= iterator.next();
+ simpleType.annotations().add(ASTNode.copySubtree(ast, annotation));
+ }
}
newMethod.setReceiverType(simpleType);
if (oldMethod.getReceiverQualifier() != null) {
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveInstanceMethodProcessor.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveInstanceMethodProcessor.java
index 8263b1cadc..39529e43e7 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveInstanceMethodProcessor.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveInstanceMethodProcessor.java
@@ -5,8 +5,8 @@
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
- * This is an implementation of an early-draft specification developed under the Java Community Process (JCP) and
- * is made available for testing and evaluation purposes only.
+ * This is an implementation of an early-draft specification developed under the Java Community Process (JCP) and
+ * is made available for testing and evaluation purposes only.
* The code is not compatible with any specification of the JCP.
*
* Contributors:
@@ -73,6 +73,7 @@ import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
+import org.eclipse.jdt.core.dom.AnnotatableType;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration;
import org.eclipse.jdt.core.dom.AnonymousClassDeclaration;
@@ -2261,7 +2262,7 @@ public final class MoveInstanceMethodProcessor extends MoveProcessor implements
adjustments.put(fMethod, adjustment);
}
}
- updateReceiverParameter(declaration, rewrite);
+ updateReceiverParameter(declaration, rewrite);
target= createMethodArguments(rewrites, rewrite, declaration, adjustments, status);
createMethodTypeParameters(rewrite, declaration, status);
createMethodComment(rewrite, declaration);
@@ -2279,10 +2280,13 @@ public final class MoveInstanceMethodProcessor extends MoveProcessor implements
AST ast= rewrite.getAST();
SimpleName simpleName= ast.newSimpleName(targetType.getElementName());
SimpleType simpleType= ast.newSimpleType(simpleName);
- Iterator<Annotation> iterator= declaration.getReceiverType().annotations().iterator();
- while (iterator.hasNext()) {
- Annotation annotation= iterator.next();
- simpleType.annotations().add(rewrite.createCopyTarget(annotation));
+ Type receiverType= declaration.getReceiverType();
+ if (receiverType.isAnnotatable()) {
+ Iterator<Annotation> iterator= ((AnnotatableType) receiverType).annotations().iterator();
+ while (iterator.hasNext()) {
+ Annotation annotation= iterator.next();
+ simpleType.annotations().add(rewrite.createCopyTarget(annotation));
+ }
}
rewrite.set(declaration, MethodDeclaration.RECEIVER_TYPE_PROPERTY, simpleType, null);
if (declaration.getReceiverQualifier() != null) {

Back to the top