PageRenderTime 23ms CodeModel.GetById 21ms app.highlight 1ms RepoModel.GetById 0ms app.codeStats 0ms

/core/src/com/bluemarsh/jswat/core/expr/TypeNode.java

http://jswat.googlecode.com/
Java | 64 lines | 16 code | 6 blank | 42 comment | 0 complexity | b0fb9f275f3c745c1de44a91674767d3 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
 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 JSwat. The Initial Developer of the Original
16 * Software is Nathan L. Fiedler. Portions created by Nathan L. Fiedler
17 * are Copyright (C) 2004-2010. All Rights Reserved.
18 *
19 * Contributor(s): Nathan L. Fiedler.
20 *
21 * $Id: TypeNode.java 287 2010-11-21 02:04:47Z nathanfiedler $
22 */
23package com.bluemarsh.jswat.core.expr;
24
25import com.bluemarsh.jswat.parser.node.Token;
26
27/**
28 * A TypeNode is one which has a specific type, as in a primitive or a
29 * reference type (e.g. "byte" or "com.sun.jdi.Bootstrap"). It does not
30 * evaluate to anything other than the type name.
31 *
32 * @author  Nathan Fiedler
33 */
34class TypeNode extends AbstractNode {
35
36    /** Type of the node. */
37    private String type;
38
39    /**
40     * Creates a new instance of PrimitiveNode.
41     *
42     * @param  node  lexical token.
43     * @param  type  type of primitive (e.g. "byte").
44     */
45    TypeNode(Token node, String type) {
46        super(node);
47        this.type = type;
48    }
49
50    @Override
51    protected Object eval(EvaluationContext context) throws EvaluationException {
52        return type;
53    }
54
55    /**
56     * Returns the type of this node, either a primitive keyword
57     * ("byte") or a reference type name ("com.sun.jdi.Bootstrap").
58     *
59     * @return  type name.
60     */
61    public String getTypeName() {
62        return type;
63    }
64}