|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A process object representing enhancements to a component class. The operation is passed to
EnhancementWorker
objects that perform enhancements.
Method Summary | |
void |
addField(java.lang.String name,
java.lang.Class type)
Adds a field to the enhanced class; the field will be private and use the provided name and type. |
java.lang.String |
addInjectedField(java.lang.String fieldName,
java.lang.Object value)
Adds a field containing an initial value, which is injected into the class via its fabricated constructor. |
void |
addMethod(int modifier,
org.apache.hivemind.service.MethodSignature sig,
java.lang.String methodBody)
Adds a method to the enhanced class. |
void |
claimProperty(java.lang.String propertyName)
Claims a property. |
java.lang.Class |
convertTypeName(java.lang.String type)
Converts a type name (an object class name, a primtive name, or an array) into the corresponding Class object. |
void |
extendMethodImplementation(java.lang.Class interfaceClass,
org.apache.hivemind.service.MethodSignature methodSignature,
java.lang.String code)
Allows for a kind of distributed construction of a particular method, within a particular interface. |
java.util.List |
findUnclaimedAbstractProperties()
Returns a list of the names of existing properties that are not claimed and which have abstract accessor methods. |
java.lang.String |
getAccessorMethodName(java.lang.String propertyName)
Returns the name of the accessor method for the given property (if it exists in the component base class), or fabricates a new name if it does not. |
java.lang.Class |
getBaseClass()
Returns the base component class, as defined in the specification (or defaulted). |
java.lang.String |
getClassReference(java.lang.Class clazz)
Returns a reference to a particular class. |
java.lang.Class |
getPropertyType(java.lang.String name)
Returns the type of an existing property of the base component class. |
boolean |
implementsInterface(java.lang.Class interfaceClass)
Returns true if the class implements the specified interface. |
void |
validateProperty(java.lang.String name,
java.lang.Class expectedType)
Confirms that the named property either doesn't exist (in the component base class), or that the type of the property exactly matches the indicated type. |
Method Detail |
public void claimProperty(java.lang.String propertyName)
org.apache.hivemind.ApplicationRuntimeException
- if the property was previously claimedpublic java.util.List findUnclaimedAbstractProperties()
public void addField(java.lang.String name, java.lang.Class type)
public java.lang.String addInjectedField(java.lang.String fieldName, java.lang.Object value)
fieldName
- The default name for the field, used if a new field (and contructor argument) is
being created. Only used if a field for the value doesn't exist.value
- the value to be referenced, which may not be null
public java.lang.Class convertTypeName(java.lang.String type)
public void validateProperty(java.lang.String name, java.lang.Class expectedType)
public java.lang.String getAccessorMethodName(java.lang.String propertyName)
public void addMethod(int modifier, org.apache.hivemind.service.MethodSignature sig, java.lang.String methodBody)
modifier
- as defined by Modifier
, typically
Modifier.PUBLIC
sig
- the method signature (defining name, return type, etc.)methodBody
- a Javassist code snippet for the method bodypublic java.lang.Class getBaseClass()
public java.lang.String getClassReference(java.lang.Class clazz)
public java.lang.Class getPropertyType(java.lang.String name)
public void extendMethodImplementation(java.lang.Class interfaceClass, org.apache.hivemind.service.MethodSignature methodSignature, java.lang.String code)
At this time, this works best for void methods (since there isn't an easy way to ensure code would be inserted before a final return statement).
interfaceClass
- the interface containing the method. If the base class does not implement the
interface, then the enhanced class will have the interface added.methodSignature
- the signature of the method to be added.code
- the Javassist markup to be added to the body of the method.public boolean implementsInterface(java.lang.Class interfaceClass)
extendMethodImplementation(Class, MethodSignature, String)
.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |