PageRenderTime 18ms CodeModel.GetById 16ms app.highlight 1ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://jswat.googlecode.com/
Java | 59 lines | 7 code | 4 blank | 48 comment | 0 complexity | b6280f68485ed5075add3f30189da824 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. All Rights Reserved.
18 *
19 * Contributor(s): Nathan L. Fiedler.
20 *
21 * $Id: VariableNode.java 40 2009-01-09 07:35:28Z nathanfiedler $
22 */
23
24package com.bluemarsh.jswat.core.expr;
25
26/**
27 * A node that represents some type of variable, either a local variable
28 * or a field. It defines methods for retrieving the thing that contains
29 * the variable. If the thing is a Field, it also provides access to the
30 * thing (either ObjectReference or ReferenceType) that contains that field.
31 *
32 * @author  Nathan Fiedler
33 */
34public interface VariableNode extends Node {
35
36    /**
37     * Returns the thing the field is contained in, either an ObjectReference
38     * or a ReferenceType.
39     *
40     * @param  context  evaluation context.
41     * @return  object or class.
42     * @throws  EvaluationException
43     *          if there was an evaluation error.
44     */
45    Object getFieldContainer(EvaluationContext context)
46        throws EvaluationException;
47
48    /**
49     * Returns the thing this node refers to rather than its value;
50     * either a Field, LocalVariable, ObjectReference, or ReferenceType.
51     *
52     * @param  context  evaluation context.
53     * @return  field, variable, object, or class.
54     * @throws  EvaluationException
55     *          if there was an evaluation error.
56     */
57    Object getValueContainer(EvaluationContext context)
58        throws EvaluationException;
59}