Class AbstractMethodRule
- Direct Known Subclasses:
SetNextRule,SetRootRule,SetTopRule
- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanShould this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.protected StringThe method name to call on the parent object.protected Class<?> The Java class name of the parameter type expected by the method.protected StringThe Java class name of the parameter type expected by the method.protected booleanShould we use exact matching. -
Constructor Summary
ConstructorsConstructorDescriptionAbstractMethodRule(String methodName) Construct a "set next" rule with the specified method name.AbstractMethodRule(String methodName, Class<?> paramType) Construct a "set next" rule with the specified method name.AbstractMethodRule(String methodName, String paramTypeName) Construct a "set next" rule with the specified method name. -
Method Summary
Modifier and TypeMethodDescriptionvoidbegin(String namespace, String name, Attributes attributes) This method is called when the beginning of a matching XML element is encountered.voidThis method is called when the end of a matching XML element is encountered.protected abstract ObjectgetChild()Returns the argument object of method has to be invoked.protected abstract ObjectReturns the target object of method has to be invoked.booleanIs exact matching being used.booleanReturns the flag this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.voidsetExactMatch(boolean useExactMatch) Set whether exact matching is enabled.voidsetFireOnBegin(boolean fireOnBegin) Sets this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.final StringtoString()Methods inherited from class org.apache.commons.digester3.Rule
body, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI
-
Field Details
-
methodName
The method name to call on the parent object. -
paramTypeName
The Java class name of the parameter type expected by the method. -
paramType
The Java class name of the parameter type expected by the method. -
useExactMatch
Should we use exact matching. Default is no. -
fireOnBegin
Should this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.
-
-
Constructor Details
-
AbstractMethodRule
Construct a "set next" rule with the specified method name. The method's argument type is assumed to be the class of the child object.- Parameters:
methodName- Method name of the parent method to call
-
AbstractMethodRule
Construct a "set next" rule with the specified method name.- Parameters:
methodName- Method name of the parent method to callparamType- Java class of the parent method's argument (if you wish to use a primitive type, specify the corresonding Java wrapper class instead, such asjava.lang.Booleanfor abooleanparameter)
-
AbstractMethodRule
Construct a "set next" rule with the specified method name.- Parameters:
methodName- Method name of the parent method to callparamTypeName- Java class of the parent method's argument (if you wish to use a primitive type, specify the corresonding Java wrapper class instead, such asjava.lang.Booleanfor abooleanparameter)
-
-
Method Details
-
isExactMatch
Is exact matching being used.
This rule uses
org.apache.commons.beanutils.MethodUtilsto introspect the relevent objects so that the right method can be called. Originally,MethodUtils.invokeExactMethodwas used. This matches methods very strictly and so may not find a matching method when one exists. This is still the behaviour when exact matching is enabled.When exact matching is disabled,
MethodUtils.invokeMethodis used. This method finds more methods but is less precise when there are several methods with correct signatures. So, if you want to choose an exact signature you might need to enable this property.The default setting is to disable exact matches.
- Returns:
- true if exact matching is enabled
- Since:
- Digester Release 1.1.1
-
setFireOnBegin
Sets this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.- Parameters:
fireOnBegin- flag to mark this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.
-
isFireOnBegin
Returns the flag this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.- Returns:
- the flag this rule be invoked when
begin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.
-
setExactMatch
Set whether exact matching is enabled.
See
isExactMatch().- Parameters:
useExactMatch- should this rule use exact method matching- Since:
- Digester Release 1.1.1
-
begin
This method is called when the beginning of a matching XML element is encountered.- Overrides:
beginin classRule- Parameters:
namespace- the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespacename- the local name if the parser is namespace aware, or just the element name otherwiseattributes- The attribute list of this element- Throws:
Exception- if any error occurs
-
end
This method is called when the end of a matching XML element is encountered.- Overrides:
endin classRule- Parameters:
namespace- the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespacename- the local name if the parser is namespace aware, or just the element name otherwise- Throws:
Exception- if any error occurs
-
getChild
Returns the argument object of method has to be invoked.- Returns:
- the argument object of method has to be invoked.
-
getParent
Returns the target object of method has to be invoked.- Returns:
- the target object of method has to be invoked.
-
toString
-