Interface INativeClassItem

All Superinterfaces:
ICodeClass, ICodeItem, INativeItem, INativeItemListenable

@Ser public interface INativeClassItem extends INativeItem, ICodeClass
Definition of a native class item, having a class type, methods, fields, and so on.
  • Method Details

    • getClassType

      IClassType getClassType()
      Description copied from interface: ICodeClass
      Get the optional type implemented by this class item.
      Specified by:
      getClassType in interface ICodeClass
      Returns:
      class type, or null
    • getSupertypes

      List<? extends IClassType> getSupertypes()
      Description copied from interface: ICodeClass
      Get the list of super types for this class.
      Specified by:
      getSupertypes in interface ICodeClass
      Returns:
      super types
    • getImplementedInterfaces

      List<? extends IClassType> getImplementedInterfaces()
      Description copied from interface: ICodeClass
      Get the list of implemented interface types for this class.
      Specified by:
      getImplementedInterfaces in interface ICodeClass
      Returns:
      implemented interface types
    • getMethods

      List<? extends INativeMethodItem> getMethods()
      Description copied from interface: ICodeClass
      Get the list of methods that are defined in this class (super methods are not returned).
      Specified by:
      getMethods in interface ICodeClass
      Returns:
      a list of methods, possibly empty if this class has no implementation
    • getFields

      List<? extends INativeFieldItem> getFields()
      Description copied from interface: ICodeClass
      Get the list of fields that are defined in this class (super fields are not returned).
      Specified by:
      getFields in interface ICodeClass
      Returns:
      a list of fields, possibly empty if this class has no implementation
    • getSubtypes

      List<? extends INativeType> getSubtypes()
      Retrieve direct native subtypes.
      Returns:
      native subtypes
    • getVirtualTables

      List<? extends IMethodTable> getVirtualTables()
      Retrieve virtual method tables.
      Returns:
      virtual tables
    • getVirtualMethods

      List<? extends INativeMethodItem> getVirtualMethods(boolean onlyDefinedInThisClass)
      Get the virtual methods of this class, including or not the virtual methods defined in parent classes that were not overridden (and therefore, indirectly belonging to this class as well).
      Parameters:
      onlyDefinedInThisClass - true to return only virtual methods defined in this class
      Returns:
      virtual methods
    • getNonVirtualMethods

      List<? extends INativeMethodItem> getNonVirtualMethods()
      Get the non-virtual, non-static methods of this class.
      Returns:
      non-virtual methods
    • getStaticMethods

      List<? extends INativeMethodItem> getStaticMethods()
      Get the static methods of this class.
      Returns:
      static methods
    • getInstanceMethods

      List<? extends INativeMethodItem> getInstanceMethods()
      Get the instance methods defined in this class. (Virtual methods defined in parent classes are not included.) Not all instance methods may be virtual.
      Returns:
      instance methods
    • getConstructors

      List<? extends INativeMethodItem> getConstructors()
      Retrieve constructors.
      Returns:
      constructors
    • getDestructors

      List<? extends INativeMethodItem> getDestructors()
      Retrieve destructors.
      Returns:
      destructors
    • getInstanceFields

      List<? extends INativeFieldItem> getInstanceFields()
      Retrieve instance fields.
      Returns:
      instance fields
    • getStaticFields

      List<? extends INativeFieldItem> getStaticFields()
      Retrieve static fields.
      Returns:
      static fields
    • getVirtualMethodFromCoordinates

      INativeMethodItem getVirtualMethodFromCoordinates(int tableIndex, int methodIndex)
      Retrieve a virtual method by coordinates.
      Parameters:
      tableIndex - virtual table index
      methodIndex - method index within the virtual table
      Returns:
      virtual method, or null
    • getCoordinatesOfVirtualMethod

      Couple<Integer,Integer> getCoordinatesOfVirtualMethod(INativeMethodItem method)
      Retrieve virtual method coordinates.
      Parameters:
      method - virtual method
      Returns:
      table and method indexes, or null
    • renameVirtualMethod

      boolean renameVirtualMethod(INativeMethodItem method, String name)
      Rename a virtual method.
      Parameters:
      method - virtual method
      name - new name
      Returns:
      true if the method was renamed
    • collectVirtualMethodOverrides

      boolean collectVirtualMethodOverrides(INativeMethodItem method, Collection<INativeMethodItem> overUp, Collection<INativeMethodItem> overDown)
      Collect methods overriding or overridden by a virtual method.
      Parameters:
      method - virtual method
      overUp - output collection for overridden ancestors
      overDown - output collection for overriding descendants
      Returns:
      true if collection completed