Class 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 Detail

      • tree

        protected final com.sun.source.tree.Tree tree
      • operand

        protected final Node operand
    • Constructor Detail

      • StringConversionNode

        public StringConversionNode​(com.sun.source.tree.Tree tree,
                                    Node operand,
                                    javax.lang.model.type.TypeMirror type)
    • Method Detail

      • getOperand

        public Node getOperand()
      • getTree

        public com.sun.source.tree.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(@Nullable java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        @SideEffectFree
        public java.util.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