org.springframework.transaction.interceptor
Class RuleBasedTransactionAttribute

java.lang.Object
  extended by org.springframework.transaction.support.DefaultTransactionDefinition
      extended by org.springframework.transaction.interceptor.DefaultTransactionAttribute
          extended by org.springframework.transaction.interceptor.RuleBasedTransactionAttribute
All Implemented Interfaces:
Serializable, TransactionAttribute, TransactionDefinition

public class RuleBasedTransactionAttribute
extends DefaultTransactionAttribute

TransactionAttribute implementation that works out whether a given exception should cause transaction rollback by applying a number of rollback rules, both positive and negative. If no rules are relevant to the exception, it behaves like DefaultTransactionAttribute (rolling back on runtime exceptions).

The TransactionAttributeEditor property editor creates objects of this class.

Since:
09.04.2003
Author:
Rod Johnson
See Also:
Serialized Form

Field Summary
protected static Log logger
          Static for optimal serializability
 
Fields inherited from class org.springframework.transaction.interceptor.DefaultTransactionAttribute
COMMIT_RULE_PREFIX, ROLLBACK_RULE_PREFIX
 
Fields inherited from class org.springframework.transaction.support.DefaultTransactionDefinition
READ_ONLY_MARKER, TIMEOUT_PREFIX
 
Fields inherited from interface org.springframework.transaction.TransactionDefinition
ISOLATION_CONSTANT_PREFIX, ISOLATION_DEFAULT, ISOLATION_READ_COMMITTED, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, PROPAGATION_CONSTANT_PREFIX, PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER, PROPAGATION_NOT_SUPPORTED, PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_SUPPORTS, TIMEOUT_DEFAULT
 
Constructor Summary
RuleBasedTransactionAttribute()
          Create a new RuleBasedTransactionAttribute, with default settings.
RuleBasedTransactionAttribute(int propagationBehavior, List rollbackRules)
          Create a new DefaultTransactionAttribute with the the given propagation behavior.
RuleBasedTransactionAttribute(RuleBasedTransactionAttribute other)
          Copy constructor.
 
Method Summary
 List getRollbackRules()
          Return the list of RollbackRuleAttribute objects.
 boolean rollbackOn(Throwable ex)
          Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception).
 void setRollbackRules(List rollbackRules)
          Set the list of RollbackRuleAttribute objects (and/or NoRollbackRuleAttribute objects) to apply.
 String toString()
          Return a description of this transaction attribute.
 
Methods inherited from class org.springframework.transaction.support.DefaultTransactionDefinition
equals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.transaction.TransactionDefinition
getIsolationLevel, getName, getPropagationBehavior, getTimeout, isReadOnly
 

Field Detail

logger

protected static final Log logger
Static for optimal serializability

Constructor Detail

RuleBasedTransactionAttribute

public RuleBasedTransactionAttribute()
Create a new RuleBasedTransactionAttribute, with default settings. Can be modified through bean property setters.

See Also:
DefaultTransactionDefinition.setPropagationBehavior(int), DefaultTransactionDefinition.setIsolationLevel(int), DefaultTransactionDefinition.setTimeout(int), DefaultTransactionDefinition.setReadOnly(boolean), DefaultTransactionDefinition.setName(java.lang.String), setRollbackRules(java.util.List)

RuleBasedTransactionAttribute

public RuleBasedTransactionAttribute(RuleBasedTransactionAttribute other)
Copy constructor. Definition can be modified through bean property setters.

See Also:
DefaultTransactionDefinition.setPropagationBehavior(int), DefaultTransactionDefinition.setIsolationLevel(int), DefaultTransactionDefinition.setTimeout(int), DefaultTransactionDefinition.setReadOnly(boolean), DefaultTransactionDefinition.setName(java.lang.String), setRollbackRules(java.util.List)

RuleBasedTransactionAttribute

public RuleBasedTransactionAttribute(int propagationBehavior,
                                     List rollbackRules)
Create a new DefaultTransactionAttribute with the the given propagation behavior. Can be modified through bean property setters.

Parameters:
propagationBehavior - one of the propagation constants in the TransactionDefinition interface
rollbackRules - the list of RollbackRuleAttributes to apply
See Also:
DefaultTransactionDefinition.setIsolationLevel(int), DefaultTransactionDefinition.setTimeout(int), DefaultTransactionDefinition.setReadOnly(boolean)
Method Detail

setRollbackRules

public void setRollbackRules(List rollbackRules)
Set the list of RollbackRuleAttribute objects (and/or NoRollbackRuleAttribute objects) to apply.

See Also:
RollbackRuleAttribute, NoRollbackRuleAttribute

getRollbackRules

public List getRollbackRules()
Return the list of RollbackRuleAttribute objects.


rollbackOn

public boolean rollbackOn(Throwable ex)
Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception). If no rule applies (-1), return false.

Specified by:
rollbackOn in interface TransactionAttribute
Overrides:
rollbackOn in class DefaultTransactionAttribute
Parameters:
ex - the exception to evaluate
Returns:
whether to perform a rollback or not
See Also:
TransactionAttribute.rollbackOn(java.lang.Throwable)

toString

public String toString()
Description copied from class: DefaultTransactionAttribute
Return a description of this transaction attribute. The format matches the one used by TransactionAttributeEditor, to be able to feed toString results into TransactionAttribute properties.

Overrides:
toString in class DefaultTransactionAttribute
See Also:
TransactionAttributeEditor


Copyright (c) 2002-2007 The Spring Framework Project.