KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > javacore > jmiimpl > javamodel > ElementReferenceImpl


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 package org.netbeans.modules.javacore.jmiimpl.javamodel;
20
21 import java.util.ArrayList JavaDoc;
22 import java.util.Collection JavaDoc;
23 import org.netbeans.jmi.javamodel.*;
24 import org.netbeans.lib.java.parser.ASTree;
25 import org.netbeans.mdr.storagemodel.StorableObject;
26 import org.netbeans.modules.javacore.parser.ASTUtil;
27
28 /**
29  *
30  * @author Martin Matula
31  */

32 public abstract class ElementReferenceImpl extends ExpressionImpl {
33     protected String JavaDoc name = null;
34
35     /** Creates a new instance of ElementReferenceImpl */
36     public ElementReferenceImpl(StorableObject o) {
37         super(o);
38     }
39     
40     public String JavaDoc getName() {
41         if (isChanged(CHANGED_NAME)) {
42             return name;
43         } else {
44             return getParser().getText(getNameAST());
45         }
46     }
47     
48     public void setName(String JavaDoc name) {
49         objectChanged(CHANGED_NAME);
50         this.name = name;
51     }
52     
53     protected ASTree getNameAST() {
54         return getASTree().getSubTrees()[2];
55     }
56
57     protected ASTree getPartTree(ElementPartKind part) {
58         if (ElementPartKindEnum.NAME.equals(part)) {
59             return getNameAST();
60         }
61         throw new IllegalArgumentException JavaDoc("Invalid part for this element: " + part); // NOI18N
62
}
63     
64     void setData(String JavaDoc name) {
65         this.name = name;
66     }
67     
68     public NamedElement getElement() {
69         return (NamedElement) getParser().getSemanticInfo(getASTree(), this);
70     }
71 }
72
Popular Tags