org.springframework.transaction.interceptor

## Class NameMatchTransactionAttributeSource

- java.lang.Object
- - org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource

- All Implemented Interfaces:
    Serializable, TransactionAttributeSource

      public class NameMatchTransactionAttributeSource
      extends Object
      implements TransactionAttributeSource, Serializable

  Simple `TransactionAttributeSource` implementation that allows attributes to be matched by registered name.
  Since:
    21.08.2003
  Author:
    Juergen Hoeller
  See Also:
    `isMatch(java.lang.String, java.lang.String)`, `MethodMapTransactionAttributeSource`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static Log` | `logger` Logger available to subclasses.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NameMatchTransactionAttributeSource()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTransactionalMethod(String methodName, TransactionAttribute attr)` Add an attribute for a transactional method.
    `boolean` | `equals(Object other)`
    `TransactionAttribute` | `getTransactionAttribute(Method method, Class<?> targetClass)` Return the transaction attribute for the given method, or `null` if the method is non-transactional.
    `int` | `hashCode()`
    `protected boolean` | `isMatch(String methodName, String mappedName)` Return if the given method name matches the mapped name.
    `void` | `setNameMap(Map<String,TransactionAttribute> nameMap)` Set a name/attribute map, consisting of method names (e.g.
    `void` | `setProperties(Properties transactionAttributes)` Parses the given properties into a name/attribute map.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected static final Log logger

      Logger available to subclasses.

      Static for optimal serialization.

  - ### Constructor Detail

    - #### NameMatchTransactionAttributeSource

          public NameMatchTransactionAttributeSource()

  - ### Method Detail

    - #### setNameMap

          public void setNameMap(Map<String,TransactionAttribute> nameMap)

      Set a name/attribute map, consisting of method names (e.g. "myMethod") and TransactionAttribute instances (or Strings to be converted to TransactionAttribute instances).
      See Also:
        `TransactionAttribute`, `TransactionAttributeEditor`

    - #### setProperties

          public void setProperties(Properties transactionAttributes)

      Parses the given properties into a name/attribute map. Expects method names as keys and String attributes definitions as values, parsable into TransactionAttribute instances via TransactionAttributeEditor.
      See Also:
        `setNameMap(java.util.Map<java.lang.String, org.springframework.transaction.interceptor.TransactionAttribute>)`, `TransactionAttributeEditor`

    - #### addTransactionalMethod

          public void addTransactionalMethod(String methodName,
                                    TransactionAttribute attr)

      Add an attribute for a transactional method.

      Method names can be exact matches, or of the pattern "xxx*", "*xxx" or "*xxx*" for matching multiple methods.

      Parameters:
        `methodName` - the name of the method
        `attr` - attribute associated with the method

    - #### getTransactionAttribute

          public TransactionAttribute getTransactionAttribute(Method method,
                                                     Class<?> targetClass)

      Description copied from interface: `TransactionAttributeSource`
      Return the transaction attribute for the given method, or `null` if the method is non-transactional.
      Specified by:
        `getTransactionAttribute` in interface `TransactionAttributeSource`
      Parameters:
        `method` - the method to introspect
        `targetClass` - the target class. May be `null`, in which case the declaring class of the method must be used.
      Returns:
        TransactionAttribute the matching transaction attribute, or `null` if none found

    - #### isMatch

          protected boolean isMatch(String methodName,
                        String mappedName)

      Return if the given method name matches the mapped name.

      The default implementation checks for "xxx*", "*xxx" and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.

      Parameters:
        `methodName` - the method name of the class
        `mappedName` - the name in the descriptor
      Returns:
        if the names match
      See Also:
        `PatternMatchUtils.simpleMatch(String, String)`

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`