Class AbstractMethodRule
- Direct Known Subclasses:
SetNextRule
,SetRootRule
,SetTopRule
- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Should this rule be invoked whenbegin(String, String, Attributes)
(true) orend(String, String)
(false) methods are invoked, false by default.protected String
The method name to call on the parent object.protected Class
<?> The Java class name of the parameter type expected by the method.protected String
The Java class name of the parameter type expected by the method.protected boolean
Should 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 TypeMethodDescriptionvoid
begin
(String namespace, String name, Attributes attributes) This method is called when the beginning of a matching XML element is encountered.void
This method is called when the end of a matching XML element is encountered.protected abstract Object
getChild()
Returns the argument object of method has to be invoked.protected abstract Object
Returns the target object of method has to be invoked.private void
invoke()
Just performs the method execution.boolean
Is exact matching being used.boolean
Returns the flag this rule be invoked whenbegin(String, String, Attributes)
(true) orend(String, String)
(false) methods are invoked, false by default.void
setExactMatch
(boolean useExactMatch) Set whether exact matching is enabled.void
setFireOnBegin
(boolean fireOnBegin) Sets this rule be invoked whenbegin(String, String, Attributes)
(true) orend(String, String)
(false) methods are invoked, false by default.final String
toString()
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
protected boolean useExactMatchShould we use exact matching. Default is no. -
fireOnBegin
protected boolean fireOnBeginShould 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.Boolean
for aboolean
parameter)
-
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.Boolean
for aboolean
parameter)
-
-
Method Details
-
isExactMatch
public boolean isExactMatch()Is exact matching being used.
This rule uses
org.apache.commons.beanutils.MethodUtils
to introspect the relevent objects so that the right method can be called. Originally,MethodUtils.invokeExactMethod
was 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.invokeMethod
is 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
public void setFireOnBegin(boolean fireOnBegin) 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
public boolean 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
public void setExactMatch(boolean useExactMatch) 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:
begin
in 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:
end
in 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
-
invoke
Just performs the method execution.- 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
-