org.apache.tapestry5.internal.plastic
Class InheritanceData

java.lang.Object
  extended by 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 Summary
InheritanceData()
           
 
Method Summary
 void addInterface(String name)
           
 void addMethod(String name, String desc)
          Adds a new instance method.
 InheritanceData createChild(String childClassName)
          Returns a new MethodBundle that represents the methods of a child class of this bundle.
 boolean isImplemented(String name, String desc)
          Returns true if a transformed parent class contains the indicated method.
 boolean isInterfaceImplemented(String name)
          Returns true if the class represented by this data, or any parent data, implements the named interface.
 boolean isTransformed()
          Is this bundle for a transformed class, or for a base class (typically Object)?
 Set<String> methodNames()
          Returns the names of any methods in this bundle, or from any parent bundles.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InheritanceData

public InheritanceData()
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(String childClassName)
Returns a new MethodBundle that represents the methods of a child class of this bundle. The returned bundle will always be transformed.

Parameters:
childClassName - name of subclass
Returns:
new method bundle

addMethod

public void addMethod(String name,
                      String desc)
Adds a new instance method. Only non-private, non-abstract 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 - method descriptor

isImplemented

public boolean isImplemented(String name,
                             String desc)
Returns true if a transformed parent class contains the indicated method.

Parameters:
name - method name
desc - method descriptor
Returns:
the internal name of the implementing base class for this method, or null if no base class implements the method

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.



Copyright © 2003-2012 The Apache Software Foundation.