Spring Framework

org.springframework.transaction.interceptor
Class NameMatchTransactionAttributeSource

java.lang.Object
  extended by org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource
All Implemented Interfaces:
java.io.Serializable, TransactionAttributeSource

public class NameMatchTransactionAttributeSource
extends java.lang.Object
implements TransactionAttributeSource, java.io.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
protected static org.apache.commons.logging.Log logger
          Logger available to subclasses.
 
Constructor Summary
NameMatchTransactionAttributeSource()
           
 
Method Summary
 void addTransactionalMethod(java.lang.String methodName, TransactionAttribute attr)
          Add an attribute for a transactional method.
 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  boolean isMatch(java.lang.String methodName, java.lang.String mappedName)
          Return if the given method name matches the mapped name.
 void setNameMap(java.util.Map<java.lang.String,TransactionAttribute> nameMap)
          Set a name/attribute map, consisting of method names (e.g.
 void setProperties(java.util.Properties transactionAttributes)
          Parses the given properties into a name/attribute map.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

protected static final org.apache.commons.logging.Log logger
Logger available to subclasses.

Static for optimal serialization.

Constructor Detail

NameMatchTransactionAttributeSource

public NameMatchTransactionAttributeSource()
Method Detail

setNameMap

public void setNameMap(java.util.Map<java.lang.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(java.util.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), TransactionAttributeEditor

addTransactionalMethod

public void addTransactionalMethod(java.lang.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(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

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. 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(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

Spring Framework