/core/src/com/bluemarsh/jswat/core/expr/VariableNode.java
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}