Class InstanceOfNode

  • All Implemented Interfaces:
    org.plumelib.util.UniqueId

    public class InstanceOfNode
    extends Node
    A node for the instanceof operator:

    x instanceof Point

    • Field Detail

      • operand

        protected final Node operand
        The value being tested.
      • refType

        protected final javax.lang.model.type.TypeMirror refType
        The reference type being tested against.
      • tree

        protected final com.sun.source.tree.InstanceOfTree tree
        The tree associated with this node.
      • patternNode

        protected final @Nullable Node patternNode
        The node of the pattern if one exists.
      • types

        protected final javax.lang.model.util.Types types
        For Types.isSameType.
    • Constructor Detail

      • InstanceOfNode

        public InstanceOfNode​(com.sun.source.tree.InstanceOfTree tree,
                              Node operand,
                              javax.lang.model.type.TypeMirror refType,
                              javax.lang.model.util.Types types)
        Create an InstanceOfNode.
        Parameters:
        tree - instanceof tree
        operand - the expression in the instanceof tree
        refType - the type in the instanceof
        types - types util
      • InstanceOfNode

        public InstanceOfNode​(com.sun.source.tree.InstanceOfTree tree,
                              Node operand,
                              @Nullable Node patternNode,
                              javax.lang.model.type.TypeMirror refType,
                              javax.lang.model.util.Types types)
        Create an InstanceOfNode.
        Parameters:
        tree - instanceof tree
        operand - the expression in the instanceof tree
        patternNode - the pattern node or null if there is none
        refType - the type in the instanceof
        types - types util
    • Method Detail

      • getOperand

        public Node getOperand()
      • getBindingVariable

        @Deprecated
        public @Nullable LocalVariableNode getBindingVariable()
        Deprecated.
        Returns the binding variable for this instanceof, or null if one does not exist.
        Returns:
        the binding variable for this instanceof, or null if one does not exist
      • getBindingVariables

        public java.util.List<LocalVariableNode> getBindingVariables()
        Return all the binding variables in this instanceof.
        Returns:
        all the binding variables in this instanceof
      • getPatternNode

        public @Nullable Node getPatternNode()
        Returns the pattern for this instanceof, or null if one does not exist.
        Returns:
        the pattern for this instanceof, or null if one does not exist
      • getRefType

        public javax.lang.model.type.TypeMirror getRefType()
        The reference type being tested against.
        Returns:
        the reference type
      • getTree

        public com.sun.source.tree.InstanceOfTree 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