Class AbstractMethodRule
- java.lang.Object
-
- org.apache.commons.digester3.Rule
-
- org.apache.commons.digester3.AbstractMethodRule
-
- Direct Known Subclasses:
SetNextRule,SetRootRule,SetTopRule
public abstract class AbstractMethodRule extends Rule
- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanfireOnBeginShould this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.protected java.lang.StringmethodNameThe method name to call on the parent object.protected java.lang.Class<?>paramTypeThe Java class name of the parameter type expected by the method.protected java.lang.StringparamTypeNameThe Java class name of the parameter type expected by the method.protected booleanuseExactMatchShould we use exact matching.
-
Constructor Summary
Constructors Constructor Description AbstractMethodRule(java.lang.String methodName)Construct a "set next" rule with the specified method name.AbstractMethodRule(java.lang.String methodName, java.lang.Class<?> paramType)Construct a "set next" rule with the specified method name.AbstractMethodRule(java.lang.String methodName, java.lang.String paramTypeName)Construct a "set next" rule with the specified method name.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidbegin(java.lang.String namespace, java.lang.String name, org.xml.sax.Attributes attributes)This method is called when the beginning of a matching XML element is encountered.voidend(java.lang.String namespace, java.lang.String name)This method is called when the end of a matching XML element is encountered.protected abstract java.lang.ObjectgetChild()Returns the argument object of method has to be invoked.protected abstract java.lang.ObjectgetParent()Returns the target object of method has to be invoked.booleanisExactMatch()Is exact matching being used.booleanisFireOnBegin()Returns 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.java.lang.StringtoString()-
Methods inherited from class org.apache.commons.digester3.Rule
body, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI
-
-
-
-
Field Detail
-
methodName
protected java.lang.String methodName
The method name to call on the parent object.
-
paramTypeName
protected java.lang.String paramTypeName
The Java class name of the parameter type expected by the method.
-
paramType
protected java.lang.Class<?> paramType
The Java class name of the parameter type expected by the method.
-
useExactMatch
protected boolean useExactMatch
Should we use exact matching. Default is no.
-
fireOnBegin
protected boolean fireOnBegin
Should this rule be invoked whenbegin(String, String, Attributes)(true) orend(String, String)(false) methods are invoked, false by default.
-
-
Constructor Detail
-
AbstractMethodRule
public AbstractMethodRule(java.lang.String methodName)
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
public AbstractMethodRule(java.lang.String methodName, java.lang.Class<?> paramType)
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
public AbstractMethodRule(java.lang.String methodName, java.lang.String paramTypeName)
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 Detail
-
isExactMatch
public boolean 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
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
public void begin(java.lang.String namespace, java.lang.String name, org.xml.sax.Attributes attributes) throws java.lang.Exception
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:
java.lang.Exception- if any error occurs
-
end
public void end(java.lang.String namespace, java.lang.String name) throws java.lang.Exception
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:
java.lang.Exception- if any error occurs
-
getChild
protected abstract java.lang.Object getChild()
Returns the argument object of method has to be invoked.- Returns:
- the argument object of method has to be invoked.
-
getParent
protected abstract java.lang.Object getParent()
Returns the target object of method has to be invoked.- Returns:
- the target object of method has to be invoked.
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-