Class InheritanceData
- java.lang.Object
-
- org.apache.tapestry5.internal.plastic.InheritanceData
-
public class InheritanceData extends java.lang.Object
Used to track which methods are implemented by a base class, which is often needed when transforming a subclass.
-
-
Constructor Summary
Constructors Constructor Description InheritanceData(java.lang.String packageName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddInterface(java.lang.String name)voidaddMethod(java.lang.String name, java.lang.String desc, boolean samePackageOnly)Adds a new instance method.InheritanceDatacreateChild(java.lang.String packageName)Returns a new MethodBundle that represents the methods of a child class of this bundle.booleanisImplemented(java.lang.String name, java.lang.String desc)Returns true if this class or a transformed parent class contains an implementation of, or abstract placeholder for, the method.booleanisInterfaceImplemented(java.lang.String name)Returns true if the class represented by this data, or any parent data, implements the named interface.booleanisOverride(java.lang.String name, java.lang.String desc)Returns true if the method is an override of a base class methodbooleanisTransformed()Is this bundle for a transformed class, or for a base class (typically Object)?java.util.Set<java.lang.String>methodNames()Returns the names of any methods in this bundle, or from any parent bundles.
-
-
-
Constructor Detail
-
InheritanceData
public InheritanceData(java.lang.String packageName)
-
-
Method Detail
-
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(java.lang.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(java.lang.String name, java.lang.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 methoddesc- describes the parameters and return value of the methodsamePackageOnly- whether the method can only be overridden in classes that are in the same package
-
isImplemented
public boolean isImplemented(java.lang.String name, java.lang.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 namedesc- method descriptor- Returns:
- true if this class or a base class implements the method (including abstract methods)
-
isOverride
public boolean isOverride(java.lang.String name, java.lang.String desc)
Returns true if the method is an override of a base class method- Parameters:
name- method namedesc- method descriptor- Returns:
- true if a base class implements the method (including abstract methods)
-
isInterfaceImplemented
public boolean isInterfaceImplemented(java.lang.String name)
Returns true if the class represented by this data, or any parent data, implements the named interface.
-
addInterface
public void addInterface(java.lang.String name)
-
methodNames
public java.util.Set<java.lang.String> methodNames()
Returns the names of any methods in this bundle, or from any parent bundles.
-
-