KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > ui > text > correction > TypeParameterMismatchSubProcessor


1 /*******************************************************************************
2  * Copyright (c) 2000, 2007 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.jdt.internal.ui.text.correction;
12
13 import java.util.Collection JavaDoc;
14
15 import org.eclipse.swt.graphics.Image;
16
17 import org.eclipse.jdt.core.ICompilationUnit;
18 import org.eclipse.jdt.core.dom.ASTNode;
19 import org.eclipse.jdt.core.dom.CompilationUnit;
20 import org.eclipse.jdt.core.dom.ParameterizedType;
21 import org.eclipse.jdt.core.dom.SimpleName;
22 import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
23
24 import org.eclipse.jdt.internal.corext.dom.ASTNodes;
25
26 import org.eclipse.jdt.ui.text.java.IInvocationContext;
27 import org.eclipse.jdt.ui.text.java.IProblemLocation;
28
29 import org.eclipse.jdt.internal.ui.JavaPluginImages;
30
31
32 public class TypeParameterMismatchSubProcessor {
33
34     public static void getTypeParameterMismatchProposals(IInvocationContext context, IProblemLocation problem, Collection JavaDoc proposals) {
35         CompilationUnit astRoot= context.getASTRoot();
36         ASTNode selectedNode= problem.getCoveredNode(astRoot);
37         if (!(selectedNode instanceof SimpleName)) {
38             return;
39         }
40
41         ASTNode normalizedNode= ASTNodes.getNormalizedNode(selectedNode);
42         if (!(normalizedNode instanceof ParameterizedType)) {
43             return;
44         }
45         // waiting for result of https://bugs.eclipse.org/bugs/show_bug.cgi?id=81544
46

47
48     }
49     
50     public static void removeMismatchedParameters(IInvocationContext context, IProblemLocation problem, Collection JavaDoc proposals){
51         ICompilationUnit cu= context.getCompilationUnit();
52         ASTNode selectedNode= problem.getCoveredNode(context.getASTRoot());
53         if (!(selectedNode instanceof SimpleName)) {
54             return;
55         }
56         
57         ASTNode normalizedNode=ASTNodes.getNormalizedNode(selectedNode);
58         if (normalizedNode instanceof ParameterizedType) {
59             ASTRewrite rewrite = ASTRewrite.create(normalizedNode.getAST());
60             ParameterizedType pt = (ParameterizedType) normalizedNode;
61             ASTNode mt = rewrite.createMoveTarget(pt.getType());
62             rewrite.replace(pt, mt, null);
63             String JavaDoc label= CorrectionMessages.TypeParameterMismatchSubProcessor_removeTypeParameter;
64             Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
65             ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, cu, rewrite, 6, image);
66             proposals.add(proposal);
67         }
68     }
69     
70 }
71
Popular Tags