KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > refactoring > java > plugins > SearchVisitor


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.refactoring.java.plugins;
21
22 import com.sun.source.tree.*;
23 import com.sun.source.util.TreePath;
24 import com.sun.source.util.TreePathScanner;
25 import com.sun.source.util.Trees;
26 import java.util.ArrayList JavaDoc;
27 import java.util.Collection JavaDoc;
28 import javax.lang.model.element.*;
29 import javax.lang.model.util.Types;
30 import org.netbeans.api.java.source.TreeMaker;
31 import org.netbeans.api.java.source.WorkingCopy;
32
33 /**
34  *
35  * @author Jan Becicka
36  */

37 public class SearchVisitor extends TreePathScanner<Tree, Element> {
38     private Collection JavaDoc<TreePath> usages = new ArrayList JavaDoc<TreePath>();
39     protected final WorkingCopy workingCopy;
40     protected final TreeMaker make;
41     
42     public SearchVisitor(WorkingCopy workingCopy) {
43         super();
44         this.workingCopy = workingCopy;
45         this.make = workingCopy.getTreeMaker();
46     }
47     
48     public Collection JavaDoc<TreePath> getUsages() {
49         return usages;
50     }
51     
52     protected void addUsage(TreePath tp) {
53         assert tp != null;
54         usages.add(tp);
55     }
56     
57     protected boolean isSubtype(TreePath t1, Element t2) {
58         Types types = workingCopy.getTypes();
59         Trees trees = workingCopy.getTrees();
60         return types.isSubtype(types.erasure(trees.getTypeMirror(t1)), types.erasure(t2.asType()));
61     }
62 }
63
Popular Tags