Package org.springframework.transaction.interceptor

# Class CompositeTransactionAttributeSource

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

All Implemented Interfaces:
  `Serializable`, `TransactionAttributeSource`

public class CompositeTransactionAttributeSource extends Object implements TransactionAttributeSource, Serializable
Composite `TransactionAttributeSource` implementation that iterates over a given array of `TransactionAttributeSource` instances.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`CompositeTransactionAttributeSource(TransactionAttributeSource... transactionAttributeSources)`
Create a new CompositeTransactionAttributeSource for the given sources.

## Method Summary

Modifier and Type
Method
Description
`TransactionAttribute`
`getTransactionAttribute(Method method, Class<?> targetClass)`
Return the transaction attribute for the given method, or `null` if the method is non-transactional.
`final TransactionAttributeSource[]`
`getTransactionAttributeSources()`
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.
`boolean`
`hasTransactionAttribute(Method method, Class<?> targetClass)`
Determine whether there is a transaction attribute for the given method.
`boolean`
`isCandidateClass(Class<?> targetClass)`
Determine whether the given class is a candidate for transaction attributes in the metadata format of this `TransactionAttributeSource`.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CompositeTransactionAttributeSource

public CompositeTransactionAttributeSource(TransactionAttributeSource... transactionAttributeSources)
Create a new CompositeTransactionAttributeSource for the given sources.

Parameters:
  `transactionAttributeSources` - the TransactionAttributeSource instances to combine

## Method Details

### getTransactionAttributeSources

public final TransactionAttributeSource[] getTransactionAttributeSources()
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.

### isCandidateClass

public boolean isCandidateClass(Class<?> targetClass)
Description copied from interface: `TransactionAttributeSource`
Determine whether the given class is a candidate for transaction attributes in the metadata format of this `TransactionAttributeSource`.

If this method returns `false`, the methods on the given class will not get traversed for `TransactionAttributeSource.getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>)` introspection. Returning `false` is therefore an optimization for non-affected classes, whereas `true` simply means that the class needs to get fully introspected for each method on the given class individually.

Specified by:
  `isCandidateClass` in interface `TransactionAttributeSource`
Parameters:
  `targetClass` - the class to introspect
Returns:
  `false` if the class is known to have no transaction attributes at class or method level; `true` otherwise. The default implementation returns `true`, leading to regular introspection.
See Also:
  - `TransactionAttributeSource.hasTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>)`

### hasTransactionAttribute

public boolean hasTransactionAttribute(Method method, @Nullable Class<?> targetClass)
Description copied from interface: `TransactionAttributeSource`
Determine whether there is a transaction attribute for the given method.

Specified by:
  `hasTransactionAttribute` in interface `TransactionAttributeSource`
Parameters:
  `method` - the method to introspect
  `targetClass` - the target class (can be `null`, in which case the declaring class of the method must be used)
See Also:
  - `TransactionAttributeSource.getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>)`

### getTransactionAttribute

@Nullable public TransactionAttribute getTransactionAttribute(Method method, @Nullable 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 (can be `null`, in which case the declaring class of the method must be used)
Returns:
  the matching transaction attribute, or `null` if none found