Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.digester3
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

Abstract implementation for `SetNextRule`, `SetRootRule` and `SetTopRule` rules.

Since:
  3.0

Field Summary
`protected boolean` | `fireOnBegin` Should this rule be invoked when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.
`protected String` | `methodName` The method name to call on the parent object.
`protected Class<?>` | `paramType` The Java class name of the parameter type expected by the method.
`protected String` | `paramTypeName` The Java class name of the parameter type expected by the method.
`protected boolean` | `useExactMatch` Should we use exact matching.

Constructor Summary
`AbstractMethodRule(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
`void` | `begin(String namespace, String name, Attributes attributes)` This method is called when the beginning of a matching XML element is encountered.
`void` | `end(String namespace, String name)` 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` | `getParent()` Returns the target object of method has to be invoked.
`boolean` | `isExactMatch()` Is exact matching being used.
`boolean` | `isFireOnBegin()` Returns the flag this rule be invoked when `begin(String, String, Attributes)` (true) or `end(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 when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.
`String` | `toString()`

Methods inherited from class org.apache.commons.digester3.Rule
`body, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### methodName

    protected String methodName

  The method name to call on the parent object.

### paramTypeName

    protected String paramTypeName

  The Java class name of the parameter type expected by the method.

### paramType

    protected 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 when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.

Constructor Detail

### AbstractMethodRule

    public AbstractMethodRule(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(String methodName,
                              Class<?> paramType)

  Construct a "set next" rule with the specified method name.

  Parameters:
    `methodName` - Method name of the parent method to call
    `paramType` - Java class of the parent method's argument (if you wish to use a primitive type, specify the corresonding Java wrapper class instead, such as `java.lang.Boolean` for a `boolean` parameter)

### AbstractMethodRule

    public AbstractMethodRule(String methodName,
                              String paramTypeName)

  Construct a "set next" rule with the specified method name.

  Parameters:
    `methodName` - Method name of the parent method to call
    `paramTypeName` - Java class of the parent method's argument (if you wish to use a primitive type, specify the corresonding Java wrapper class instead, such as `java.lang.Boolean` for a `boolean` parameter)

Method Detail

### 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 when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.

  Parameters:
    `fireOnBegin` - flag to mark this rule be invoked when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.

### isFireOnBegin

    public boolean isFireOnBegin()

  Returns the flag this rule be invoked when `begin(String, String, Attributes)` (true) or `end(String, String)` (false) methods are invoked, false by default.

  Returns:
    the flag this rule be invoked when `begin(String, String, Attributes)` (true) or `end(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(String namespace,
                      String name,
                      Attributes attributes)
               throws Exception

  This method is called when the beginning of a matching XML element is encountered.

  Overrides:
    `begin` in class `Rule`
  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 namespace
    `name` - the local name if the parser is namespace aware, or just the element name otherwise
    `attributes` - The attribute list of this element
  Throws:
    `Exception` - if any error occurs

### end

    public void end(String namespace,
                    String name)
             throws Exception

  This method is called when the end of a matching XML element is encountered.

  Overrides:
    `end` in class `Rule`
  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 namespace
    `name` - the local name if the parser is namespace aware, or just the element name otherwise
  Throws:
    `Exception` - if any error occurs

### getChild

    protected abstract 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 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 String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.