]> git.uio.no Git - ifi-stolz-refaktor.git/blobdiff - case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/text/correction/TypeArgumentMismatchSubProcessor.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / ui / org / eclipse / jdt / internal / ui / text / correction / TypeArgumentMismatchSubProcessor.java
diff --git a/case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/text/correction/TypeArgumentMismatchSubProcessor.java b/case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/text/correction/TypeArgumentMismatchSubProcessor.java
new file mode 100644 (file)
index 0000000..ef57d24
--- /dev/null
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2012 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.ui.text.correction;
+
+import java.util.Collection;
+
+import org.eclipse.swt.graphics.Image;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ParameterizedType;
+import org.eclipse.jdt.core.dom.SimpleName;
+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
+
+import org.eclipse.jdt.internal.corext.dom.ASTNodes;
+
+import org.eclipse.jdt.ui.text.java.IInvocationContext;
+import org.eclipse.jdt.ui.text.java.IProblemLocation;
+import org.eclipse.jdt.ui.text.java.correction.ASTRewriteCorrectionProposal;
+import org.eclipse.jdt.ui.text.java.correction.ICommandAccess;
+
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+
+
+public class TypeArgumentMismatchSubProcessor {
+
+//     public static void getTypeParameterMismatchProposals(IInvocationContext context, IProblemLocation problem, Collection proposals) {
+//     CompilationUnit astRoot= context.getASTRoot();
+//     ASTNode selectedNode= problem.getCoveredNode(astRoot);
+//     if (!(selectedNode instanceof SimpleName)) {
+//     return;
+//     }
+
+//     ASTNode normalizedNode= ASTNodes.getNormalizedNode(selectedNode);
+//     if (!(normalizedNode instanceof ParameterizedType)) {
+//     return;
+//     }
+//     // waiting for result of https://bugs.eclipse.org/bugs/show_bug.cgi?id=81544
+
+
+//     }
+
+       public static void removeMismatchedArguments(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals){
+               ICompilationUnit cu= context.getCompilationUnit();
+               ASTNode selectedNode= problem.getCoveredNode(context.getASTRoot());
+               if (!(selectedNode instanceof SimpleName)) {
+                       return;
+               }
+
+               ASTNode normalizedNode=ASTNodes.getNormalizedNode(selectedNode);
+               if (normalizedNode instanceof ParameterizedType) {
+                       ASTRewrite rewrite = ASTRewrite.create(normalizedNode.getAST());
+                       ParameterizedType pt = (ParameterizedType) normalizedNode;
+                       ASTNode mt = rewrite.createMoveTarget(pt.getType());
+                       rewrite.replace(pt, mt, null);
+                       String label= CorrectionMessages.TypeArgumentMismatchSubProcessor_removeTypeArguments;
+                       Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
+                       ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, cu, rewrite, 6, image);
+                       proposals.add(proposal);
+               }
+       }
+
+       public static void getInferDiamondArgumentsProposal(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) {
+               ASTNode selectedNode= problem.getCoveredNode(context.getASTRoot());
+               if (!(selectedNode instanceof SimpleName)) {
+                       return;
+               }
+               
+               QuickAssistProcessor.getInferDiamondArgumentsProposal(context, selectedNode, null, proposals);
+       }
+
+}