/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

  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. */
  23. package com.bluemarsh.jswat.core.expr;
  24. import com.bluemarsh.jswat.parser.node.Token;
  25. /**
  26. * A TypeNode is one which has a specific type, as in a primitive or a
  27. * reference type (e.g. "byte" or "com.sun.jdi.Bootstrap"). It does not
  28. * evaluate to anything other than the type name.
  29. *
  30. * @author Nathan Fiedler
  31. */
  32. class TypeNode extends AbstractNode {
  33. /** Type of the node. */
  34. private String type;
  35. /**
  36. * Creates a new instance of PrimitiveNode.
  37. *
  38. * @param node lexical token.
  39. * @param type type of primitive (e.g. "byte").
  40. */
  41. TypeNode(Token node, String type) {
  42. super(node);
  43. this.type = type;
  44. }
  45. @Override
  46. protected Object eval(EvaluationContext context) throws EvaluationException {
  47. return type;
  48. }
  49. /**
  50. * Returns the type of this node, either a primitive keyword
  51. * ("byte") or a reference type name ("com.sun.jdi.Bootstrap").
  52. *
  53. * @return type name.
  54. */
  55. public String getTypeName() {
  56. return type;
  57. }
  58. }