Class StringConversionNode

java.lang.Object
org.checkerframework.dataflow.cfg.node.Node
org.checkerframework.dataflow.cfg.node.StringConversionNode
All Implemented Interfaces:
org.plumelib.util.UniqueId

public class StringConversionNode extends Node
A node for the string conversion operation. See JLS 5.1.11 for the definition of string conversion.

A StringConversionNode does not correspond to any tree node in the parsed AST. It is introduced when a value of non-string type appears in a context that requires a String, such as in a string concatenation. A StringConversionNode should be treated as a potential call to the toString method of its operand, but does not necessarily call any method because null is converted to the string "null".

Conversion of primitive types to Strings requires first boxing and then string conversion.

  • Field Details

    • tree

      protected final Tree tree
    • operand

      protected final Node operand
  • Constructor Details

    • StringConversionNode

      public StringConversionNode(Tree tree, Node operand, TypeMirror type)
  • Method Details

    • getOperand

      public Node getOperand()
    • getTree

      public Tree getTree()
      Description copied from class: Node
      Returns the Tree in the abstract syntax tree, or null if no corresponding tree exists. For instance, this is the case for an ImplicitThisNode.
      Specified by:
      getTree in class Node
      Returns:
      the corresponding Tree or null
    • accept

      public <R, P> R accept(NodeVisitor<R,P> visitor, P p)
      Description copied from class: Node
      Accept method of the visitor pattern.
      Specified by:
      accept in class Node
      Type Parameters:
      R - result type of the operation
      P - parameter type
      Parameters:
      visitor - the visitor to be applied to this node
      p - the parameter for this operation
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getOperands

      @SideEffectFree public Collection<Node> getOperands()
      Description copied from class: Node
      Returns a collection containing all of the operand Nodes of this Node.
      Specified by:
      getOperands in class Node
      Returns:
      a collection containing all of the operand Nodes of this Node