Package soot.JastAddJ

Class ArrayDecl

    • Field Detail

      • accessibleFrom_TypeDecl_values

        protected Map accessibleFrom_TypeDecl_values
      • dimension_computed

        protected boolean dimension_computed
      • dimension_value

        protected int dimension_value
      • elementType_computed

        protected boolean elementType_computed
      • elementType_value

        protected TypeDecl elementType_value
      • fullName_computed

        protected boolean fullName_computed
      • fullName_value

        protected String fullName_value
      • typeName_computed

        protected boolean typeName_computed
      • typeName_value

        protected String typeName_value
      • castingConversionTo_TypeDecl_values

        protected Map castingConversionTo_TypeDecl_values
      • instanceOf_TypeDecl_values

        protected Map instanceOf_TypeDecl_values
      • involvesTypeParameters_visited

        protected int involvesTypeParameters_visited
      • involvesTypeParameters_computed

        protected boolean involvesTypeParameters_computed
      • involvesTypeParameters_initialized

        protected boolean involvesTypeParameters_initialized
      • involvesTypeParameters_value

        protected boolean involvesTypeParameters_value
      • erasure_computed

        protected boolean erasure_computed
      • erasure_value

        protected TypeDecl erasure_value
      • usesTypeVariable_visited

        protected int usesTypeVariable_visited
      • usesTypeVariable_computed

        protected boolean usesTypeVariable_computed
      • usesTypeVariable_initialized

        protected boolean usesTypeVariable_initialized
      • usesTypeVariable_value

        protected boolean usesTypeVariable_value
      • subtype_TypeDecl_values

        protected Map subtype_TypeDecl_values
      • jvmName_computed

        protected boolean jvmName_computed
      • jvmName_value

        protected String jvmName_value
      • getSootClassDecl_computed

        protected boolean getSootClassDecl_computed
      • getSootClassDecl_value

        protected SootClass getSootClassDecl_value
      • getSootType_computed

        protected boolean getSootType_computed
      • getSootType_value

        protected Type getSootType_value
    • Method Detail

      • fullCopy

        public ArrayDecl fullCopy()
        Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
        Overrides:
        fullCopy in class ClassDecl
        Returns:
        dangling copy of the subtree at this node
      • init$Children

        public void init$Children()
        Initializes the child array to the correct size. Initializes List and Opt nta children.
        Overrides:
        init$Children in class ClassDecl
      • setModifiers

        public void setModifiers​(Modifiers node)
        Replaces the Modifiers child.
        Overrides:
        setModifiers in class ClassDecl
        Parameters:
        node - The new node to replace the Modifiers child.
      • getModifiers

        public Modifiers getModifiers()
        Retrieves the Modifiers child.
        Overrides:
        getModifiers in class ClassDecl
        Returns:
        The current node used as the Modifiers child.
      • getModifiersNoTransform

        public Modifiers getModifiersNoTransform()
        Retrieves the Modifiers child.

        This method does not invoke AST transformations.

        Overrides:
        getModifiersNoTransform in class ClassDecl
        Returns:
        The current node used as the Modifiers child.
      • setID

        public void setID​(String value)
        Replaces the lexeme ID.
        Overrides:
        setID in class ClassDecl
        Parameters:
        value - The new value for the lexeme ID.
      • setID

        public void setID​(Symbol symbol)
        JastAdd-internal setter for lexeme ID using the Beaver parser.
        Overrides:
        setID in class ClassDecl
      • getID

        public String getID()
        Retrieves the value for the lexeme ID.
        Overrides:
        getID in class ClassDecl
        Returns:
        The value for the lexeme ID.
      • setSuperClassAccessOpt

        public void setSuperClassAccessOpt​(Opt<Access> opt)
        Replaces the optional node for the SuperClassAccess child. This is the Opt node containing the child SuperClassAccess, not the actual child!
        Overrides:
        setSuperClassAccessOpt in class ClassDecl
        Parameters:
        opt - The new node to be used as the optional node for the SuperClassAccess child.
      • hasSuperClassAccess

        public boolean hasSuperClassAccess()
        Check whether the optional SuperClassAccess child exists.
        Overrides:
        hasSuperClassAccess in class ClassDecl
        Returns:
        true if the optional SuperClassAccess child exists, false if it does not.
      • getSuperClassAccess

        public Access getSuperClassAccess()
        Retrieves the (optional) SuperClassAccess child.
        Overrides:
        getSuperClassAccess in class ClassDecl
        Returns:
        The SuperClassAccess child, if it exists. Returns null otherwise.
      • setSuperClassAccess

        public void setSuperClassAccess​(Access node)
        Replaces the (optional) SuperClassAccess child.
        Overrides:
        setSuperClassAccess in class ClassDecl
        Parameters:
        node - The new node to be used as the SuperClassAccess child.
      • getSuperClassAccessOptNoTransform

        public Opt<Access> getSuperClassAccessOptNoTransform()
        Retrieves the optional node for child SuperClassAccess. This is the Opt node containing the child SuperClassAccess, not the actual child!

        This method does not invoke AST transformations.

        Overrides:
        getSuperClassAccessOptNoTransform in class ClassDecl
        Returns:
        The optional node for child SuperClassAccess.
      • setImplementsList

        public void setImplementsList​(List<Access> list)
        Replaces the Implements list.
        Overrides:
        setImplementsList in class ClassDecl
        Parameters:
        list - The new list node to be used as the Implements list.
      • getNumImplements

        public int getNumImplements()
        Retrieves the number of children in the Implements list.
        Overrides:
        getNumImplements in class ClassDecl
        Returns:
        Number of children in the Implements list.
      • getNumImplementsNoTransform

        public int getNumImplementsNoTransform()
        Retrieves the number of children in the Implements list. Calling this method will not trigger rewrites..
        Overrides:
        getNumImplementsNoTransform in class ClassDecl
        Returns:
        Number of children in the Implements list.
      • getImplements

        public Access getImplements​(int i)
        Retrieves the element at index i in the Implements list..
        Overrides:
        getImplements in class ClassDecl
        Parameters:
        i - Index of the element to return.
        Returns:
        The element at position i in the Implements list.
      • addImplements

        public void addImplements​(Access node)
        Append an element to the Implements list.
        Overrides:
        addImplements in class ClassDecl
        Parameters:
        node - The element to append to the Implements list.
      • setImplements

        public void setImplements​(Access node,
                                  int i)
        Replaces the Implements list element at index i with the new node node.
        Overrides:
        setImplements in class ClassDecl
        Parameters:
        node - The new node to replace the old list element.
        i - The list index of the node to be replaced.
      • getImplementss

        public List<Access> getImplementss()
        Retrieves the Implements list.
        Overrides:
        getImplementss in class ClassDecl
        Returns:
        The node representing the Implements list.
      • getImplementssNoTransform

        public List<Access> getImplementssNoTransform()
        Retrieves the Implements list.

        This method does not invoke AST transformations.

        Overrides:
        getImplementssNoTransform in class ClassDecl
        Returns:
        The node representing the Implements list.
      • getImplementsList

        public List<Access> getImplementsList()
        Retrieves the Implements list.
        Overrides:
        getImplementsList in class ClassDecl
        Returns:
        The node representing the Implements list.
      • getImplementsListNoTransform

        public List<Access> getImplementsListNoTransform()
        Retrieves the Implements list.

        This method does not invoke AST transformations.

        Overrides:
        getImplementsListNoTransform in class ClassDecl
        Returns:
        The node representing the Implements list.
      • setBodyDeclList

        public void setBodyDeclList​(List<BodyDecl> list)
        Replaces the BodyDecl list.
        Overrides:
        setBodyDeclList in class ClassDecl
        Parameters:
        list - The new list node to be used as the BodyDecl list.
      • getNumBodyDecl

        public int getNumBodyDecl()
        Retrieves the number of children in the BodyDecl list.
        Overrides:
        getNumBodyDecl in class ClassDecl
        Returns:
        Number of children in the BodyDecl list.
      • getNumBodyDeclNoTransform

        public int getNumBodyDeclNoTransform()
        Retrieves the number of children in the BodyDecl list. Calling this method will not trigger rewrites..
        Overrides:
        getNumBodyDeclNoTransform in class ClassDecl
        Returns:
        Number of children in the BodyDecl list.
      • getBodyDecl

        public BodyDecl getBodyDecl​(int i)
        Retrieves the element at index i in the BodyDecl list..
        Overrides:
        getBodyDecl in class ClassDecl
        Parameters:
        i - Index of the element to return.
        Returns:
        The element at position i in the BodyDecl list.
      • addBodyDecl

        public void addBodyDecl​(BodyDecl node)
        Append an element to the BodyDecl list.
        Overrides:
        addBodyDecl in class ClassDecl
        Parameters:
        node - The element to append to the BodyDecl list.
      • setBodyDecl

        public void setBodyDecl​(BodyDecl node,
                                int i)
        Replaces the BodyDecl list element at index i with the new node node.
        Overrides:
        setBodyDecl in class ClassDecl
        Parameters:
        node - The new node to replace the old list element.
        i - The list index of the node to be replaced.
      • getBodyDecls

        public List<BodyDecl> getBodyDecls()
        Retrieves the BodyDecl list.
        Overrides:
        getBodyDecls in class ClassDecl
        Returns:
        The node representing the BodyDecl list.
      • getBodyDeclsNoTransform

        public List<BodyDecl> getBodyDeclsNoTransform()
        Retrieves the BodyDecl list.

        This method does not invoke AST transformations.

        Overrides:
        getBodyDeclsNoTransform in class ClassDecl
        Returns:
        The node representing the BodyDecl list.
      • getBodyDeclList

        public List<BodyDecl> getBodyDeclList()
        Retrieves the BodyDecl list.
        Overrides:
        getBodyDeclList in class ClassDecl
        Returns:
        The node representing the BodyDecl list.
      • getBodyDeclListNoTransform

        public List<BodyDecl> getBodyDeclListNoTransform()
        Retrieves the BodyDecl list.

        This method does not invoke AST transformations.

        Overrides:
        getBodyDeclListNoTransform in class ClassDecl
        Returns:
        The node representing the BodyDecl list.
      • isReifiable

        public boolean isReifiable()
        A type is reifiable if it either refers to a non-parameterized type, is a raw type, is a parameterized type with only unbound wildcard parameters or is an array type with a reifiable type parameter.
        Overrides:
        isReifiable in class TypeDecl
        See Also:
        "JLSv3 §4.7"