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

## org.springframework.transaction.interceptor
Class MethodMapTransactionAttributeSource

    java.lang.Object
      org.springframework.transaction.interceptor.MethodMapTransactionAttributeSource

All Implemented Interfaces:
  Aware, BeanClassLoaderAware, InitializingBean, TransactionAttributeSource

    public class MethodMapTransactionAttributeSource

extends java.lang.Object
implements TransactionAttributeSource, BeanClassLoaderAware, InitializingBean

Simple `TransactionAttributeSource` implementation that allows attributes to be stored per method in a `Map`.

Since:
  24.04.2003
Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `isMatch(java.lang.String, java.lang.String)`, `NameMatchTransactionAttributeSource`

Field Summary
`protected org.apache.commons.logging.Log` | `logger` Logger available to subclasses

Constructor Summary
`MethodMapTransactionAttributeSource()`

Method Summary
`void` | `addTransactionalMethod(java.lang.Class<?> clazz, java.lang.String mappedName, TransactionAttribute attr)` Add an attribute for a transactional method.
`void` | `addTransactionalMethod(java.lang.reflect.Method method, TransactionAttribute attr)` Add an attribute for a transactional method.
`void` | `addTransactionalMethod(java.lang.String name, TransactionAttribute attr)` Add an attribute for a transactional method.
`void` | `afterPropertiesSet()` Eagerly initializes the specified `"methodMap"`, if any.
`boolean` | `equals(java.lang.Object other)`
`TransactionAttribute` | `getTransactionAttribute(java.lang.reflect.Method method, java.lang.Class<?> targetClass)` Return the transaction attribute for this method.
`int` | `hashCode()`
`protected void` | `initMethodMap(java.util.Map<java.lang.String,TransactionAttribute> methodMap)` Initialize the specified `"methodMap"`, if any.
`protected boolean` | `isMatch(java.lang.String methodName, java.lang.String mappedName)` Return if the given method name matches the mapped name.
`void` | `setBeanClassLoader(java.lang.ClassLoader beanClassLoader)` Callback that supplies the bean `class loader` to a bean instance.
`void` | `setMethodMap(java.util.Map<java.lang.String,TransactionAttribute> methodMap)` Set a name/attribute map, consisting of "FQCN.method" method names (e.g.
`java.lang.String` | `toString()`

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

Field Detail

### logger

    protected final org.apache.commons.logging.Log logger

  Logger available to subclasses

Constructor Detail

### MethodMapTransactionAttributeSource

    public MethodMapTransactionAttributeSource()

Method Detail

### setMethodMap

    public void setMethodMap(java.util.Map<java.lang.String,TransactionAttribute> methodMap)

  Set a name/attribute map, consisting of "FQCN.method" method names (e.g. "com.mycompany.mycode.MyClass.myMethod") and `TransactionAttribute` instances (or Strings to be converted to `TransactionAttribute` instances).

  Intended for configuration via setter injection, typically within a Spring bean factory. Relies on `afterPropertiesSet()` being called afterwards.

  Parameters:
    `methodMap` - said `Map` from method name to attribute value
  See Also:
    `TransactionAttribute`, `TransactionAttributeEditor`

### setBeanClassLoader

    public void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)

  Description copied from interface: `BeanClassLoaderAware`
  Callback that supplies the bean `class loader` to a bean instance.

  Invoked after the population of normal bean properties but before an initialization callback such as `InitializingBean's` `InitializingBean.afterPropertiesSet()` method or a custom init-method.

  Specified by:
    `setBeanClassLoader` in interface `BeanClassLoaderAware`
  Parameters:
    `beanClassLoader` - the owning class loader; may be `null` in which case a default `ClassLoader` must be used, for example the `ClassLoader` obtained via `ClassUtils.getDefaultClassLoader()`

### afterPropertiesSet

    public void afterPropertiesSet()

  Eagerly initializes the specified `"methodMap"`, if any.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  See Also:
    `initMethodMap(java.util.Map)`

### initMethodMap

    protected void initMethodMap(java.util.Map<java.lang.String,TransactionAttribute> methodMap)

  Initialize the specified `"methodMap"`, if any.

  Parameters:
    `methodMap` - Map from method names to `TransactionAttribute` instances
  See Also:
    `setMethodMap(java.util.Map)`

### addTransactionalMethod

    public void addTransactionalMethod(java.lang.String name,
                                       TransactionAttribute attr)

  Add an attribute for a transactional method.

  Method names can end or start with "*" for matching multiple methods.

  Parameters:
    `name` - class and method name, separated by a dot
    `attr` - attribute associated with the method
  Throws:
    `java.lang.IllegalArgumentException` - in case of an invalid name

### addTransactionalMethod

    public void addTransactionalMethod(java.lang.Class<?> clazz,
                                       java.lang.String mappedName,
                                       TransactionAttribute attr)

  Add an attribute for a transactional method. Method names can end or start with "*" for matching multiple methods.

  Parameters:
    `clazz` - target interface or class
    `mappedName` - mapped method name
    `attr` - attribute associated with the method

### addTransactionalMethod

    public void addTransactionalMethod(java.lang.reflect.Method method,
                                       TransactionAttribute attr)

  Add an attribute for a transactional method.

  Parameters:
    `method` - the method
    `attr` - attribute associated with the method

### isMatch

    protected boolean isMatch(java.lang.String methodName,
                              java.lang.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.

  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)`

### getTransactionAttribute

    public TransactionAttribute getTransactionAttribute(java.lang.reflect.Method method,
                                                        java.lang.Class<?> targetClass)

  Description copied from interface: `TransactionAttributeSource`
  Return the transaction attribute for this method. Return null if the method is non-transactional.

  Specified by:
    `getTransactionAttribute` in interface `TransactionAttributeSource`
  Parameters:
    `method` - method
    `targetClass` - 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

### equals

    public boolean equals(java.lang.Object other)

  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

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