KickJava   Java API By Example, From Geeks To Geeks.

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


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 org.netbeans.jmi.javamodel.Expression;
22 import org.netbeans.jmi.javamodel.JavaModelPackage;
23 import org.netbeans.jmi.javamodel.Type;
24 import org.netbeans.mdr.storagemodel.StorableObject;
25
26 /**
27  *
28  * @author Vladimir Hudec
29  */

30 public abstract class ExpressionImpl extends StatementImpl {
31     protected Type type;
32
33     /** Creates a new instance of ExpressionImpl */
34     public ExpressionImpl(StorableObject o) {
35         super(o);
36     }
37
38     /**
39      * Returns the value of reference type.
40      * @return Value of reference type.
41      */

42     public Type getType() {
43         if (isChanged(CHANGED_TYPE))
44             return type;
45         else {
46             Object JavaDoc semInfo = getParser().getSemanticInfo(getASTree(), this);
47             if (semInfo instanceof Type) {
48                 return (Type) semInfo;
49             } else if (semInfo instanceof String JavaDoc) {
50                 return ((JavaModelPackage) refImmediatePackage()).getType().resolve((String JavaDoc)semInfo);
51             } else {
52                 return null;
53             }
54         }
55     }
56
57 }
58
Popular Tags