Class InheritanceData

java.lang.Object
org.apache.tapestry5.internal.plastic.InheritanceData

public class InheritanceData extends Object
Used to track which methods are implemented by a base class, which is often needed when transforming a subclass.
  • Constructor Details

  • Method Details

    • isTransformed

      public boolean isTransformed()
      Is this bundle for a transformed class, or for a base class (typically Object)?
      Returns:
      true if this bundle is for transformed class, false otherwise
    • createChild

      public InheritanceData createChild(String packageName)
      Returns a new MethodBundle that represents the methods of a child class of this bundle. The returned bundle will always be transformed.
      Parameters:
      packageName - the package that the child class will be created in
      Returns:
      new method bundle
    • addMethod

      public void addMethod(String name, String desc, boolean samePackageOnly)
      Adds a new instance method. Only non-private methods should be added (that is, methods which might be overridden in subclasses). This can later be queried to see if any base class implements the method.
      Parameters:
      name - name of method
      desc - describes the parameters and return value of the method
      samePackageOnly - whether the method can only be overridden in classes that are in the same package
    • isImplemented

      public boolean isImplemented(String name, String desc)
      Returns true if this class or a transformed parent class contains an implementation of, or abstract placeholder for, the method.
      Parameters:
      name - method name
      desc - method descriptor
      Returns:
      true if this class or a base class implements the method (including abstract methods)
    • isOverride

      public boolean isOverride(String name, String desc)
      Returns true if the method is an override of a base class method
      Parameters:
      name - method name
      desc - method descriptor
      Returns:
      true if a base class implements the method (including abstract methods)
    • isInterfaceImplemented

      public boolean isInterfaceImplemented(String name)
      Returns true if the class represented by this data, or any parent data, implements the named interface.
    • addInterface

      public void addInterface(String name)
    • methodNames

      public Set<String> methodNames()
      Returns the names of any methods in this bundle, or from any parent bundles.