Class SummaryClassShell

java.lang.Object
com.ibm.wala.classLoader.SyntheticClass
com.ibm.wala.ipa.summaries.SummaryClassShell
All Implemented Interfaces:
IClass, IClassHierarchyDweller

public class SummaryClassShell extends SyntheticClass
A minimal standalone shell IClass for a type modeled only by a summary. Unlike BypassSyntheticClass, which wraps an existing "real" type, a shell stands on its own and is positioned in the hierarchy at an explicitly declared superclass. Its purpose is to occupy a place in the class hierarchy so that source subclasses resolve their base. It carries no fields; it exposes only the methods given to it as summaries (typically the <method> children of the <class> it was materialized from), as SummarizedMethods. See #1957.
  • Constructor Details

    • SummaryClassShell

      public SummaryClassShell(TypeReference type, IClassHierarchy cha, TypeReference superReference)
      Parameters:
      type - the type this shell represents
      cha - the governing class hierarchy
      superReference - the declared superclass, or null for the language root type
    • SummaryClassShell

      public SummaryClassShell(TypeReference type, IClassHierarchy cha, TypeReference superReference, Collection<MethodSummary> methods)
      Parameters:
      type - the type this shell represents
      cha - the governing class hierarchy
      superReference - the declared superclass, or null for the language root type
      methods - summaries for the shell's own declared methods
  • Method Details

    • getSuperclass

      public IClass getSuperclass()
      Returns:
      the superclass, or null if java.lang.Object
    • getDirectInterfaces

      public Collection<IClass> getDirectInterfaces()
      Returns:
      Collection of (IClass) interfaces this class directly implements. If this class is an interface, returns the interfaces it immediately extends.
    • getAllImplementedInterfaces

      public Collection<IClass> getAllImplementedInterfaces()
      Returns:
      Collection of (IClass) interfaces this class implements, including all ancestors of interfaces immediately implemented. If this class is an interface, it returns all super-interfaces.
    • getMethod

      public IMethod getMethod(Selector selector)
      Description copied from interface: IClass
      Finds method matching signature. Delegates to superclass if not found.
      Parameters:
      selector - a method signature
      Returns:
      IMethod from this class matching the signature; null if not found in this class or any superclass.
    • getField

      public IField getField(Atom name)
      Description copied from interface: IClass
      Finds a field.
    • getClassInitializer

      public IMethod getClassInitializer()
      Returns:
      the method that is this class's initializer, or null if none
    • getDeclaredMethods

      public Collection<? extends IMethod> getDeclaredMethods()
      Returns:
      an Iterator of the IMethods declared by this class.
    • getDeclaredInstanceFields

      public Collection<IField> getDeclaredInstanceFields()
      Description copied from interface: IClass
      Compute the instance fields declared by this class.
      Returns:
      Collection of IFields
    • getDeclaredStaticFields

      public Collection<IField> getDeclaredStaticFields()
      Returns:
      Collection of IField
    • getAllInstanceFields

      public Collection<IField> getAllInstanceFields()
      Description copied from interface: IClass
      Compute the instance fields declared by this class or any of its superclasses.
    • getAllStaticFields

      public Collection<IField> getAllStaticFields()
      Description copied from interface: IClass
      Compute the static fields declared by this class or any of its superclasses.
    • getAllFields

      public Collection<IField> getAllFields()
      Description copied from interface: IClass
      Compute the instance and static fields declared by this class or any of its superclasses.
    • getAllMethods

      public Collection<? extends IMethod> getAllMethods()
      Description copied from interface: IClass
      Compute the methods declared by this class or any of its superclasses.
    • isReferenceType

      public boolean isReferenceType()
      Description copied from interface: IClass
      Does 'this' refer to a reference type? If not, then it refers to a primitive type.
    • isPublic

      public boolean isPublic()
      Returns:
      true iff this class is public
    • isPrivate

      public boolean isPrivate()
      Returns:
      true iff this class is private
    • getModifiers

      public int getModifiers()
      Description copied from interface: IClass
      Return the integer that encodes the class's modifiers, as defined by the JVM specification
      Returns:
      the integer that encodes the class's modifiers, as defined by the JVM specification
    • toString

      public String toString()
      Overrides:
      toString in class Object