java.lang.Object
pascal.taie.analysis.pta.core.heap.Obj
All Implemented Interfaces:
Indexable
Direct Known Subclasses:
ConstantObj, MergedObj, MockObj, NewObj

public abstract class Obj extends Object implements Indexable
Represents of abstract objects in pointer analysis.
See Also:
  • Constructor Details

    • Obj

      public Obj()
  • Method Details

    • getIndex

      public int getIndex()
      Specified by:
      getIndex in interface Indexable
      Returns:
      index of this object. The index should be a non-negative integer.
    • isFunctional

      public boolean isFunctional()
      An object is functional means that it can hold fields (or array indexes).
      Returns:
      true if this is a function Obj.
    • getType

      public abstract Type getType()
      Returns:
      the type of the object.
    • getAllocation

      public abstract Object getAllocation()
      Returns:
      the allocation of the object.
    • getContainerMethod

      public abstract Optional<JMethod> getContainerMethod()
      Returns:
      the method containing the allocation site of this object. For some special objects, e.g., string constants, which are not allocated in any method, this API returns an empty Optional.
    • getContainerType

      public abstract Type getContainerType()
      This method is useful for type sensitivity.
      Returns:
      the type containing the allocation site of this object. For special objects, the return values of this method are also special.