/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

  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. package com.bluemarsh.jswat.core.expr;
  24. /**
  25. * A node that represents some type of variable, either a local variable
  26. * or a field. It defines methods for retrieving the thing that contains
  27. * the variable. If the thing is a Field, it also provides access to the
  28. * thing (either ObjectReference or ReferenceType) that contains that field.
  29. *
  30. * @author Nathan Fiedler
  31. */
  32. public interface VariableNode extends Node {
  33. /**
  34. * Returns the thing the field is contained in, either an ObjectReference
  35. * or a ReferenceType.
  36. *
  37. * @param context evaluation context.
  38. * @return object or class.
  39. * @throws EvaluationException
  40. * if there was an evaluation error.
  41. */
  42. Object getFieldContainer(EvaluationContext context)
  43. throws EvaluationException;
  44. /**
  45. * Returns the thing this node refers to rather than its value;
  46. * either a Field, LocalVariable, ObjectReference, or ReferenceType.
  47. *
  48. * @param context evaluation context.
  49. * @return field, variable, object, or class.
  50. * @throws EvaluationException
  51. * if there was an evaluation error.
  52. */
  53. Object getValueContainer(EvaluationContext context)
  54. throws EvaluationException;
  55. }