# Interface UnifiedConnectionTester

All Superinterfaces:
  `ConnectionTester, FullQueryConnectionTester, QueryConnectionTester, Serializable`

All Known Implementing Classes:
  `AbstractConnectionTester`

public interface UnifiedConnectionTester extends FullQueryConnectionTester

Having expanded the once-simple ConnectionTester interface to support both user-specified queries and return of root cause Exceptions (via an out-param), this interface has grown unnecessarily complex.

If you wish to implement a custom Connection tester, here is the simple way to do it

1. Extend `AbstractConnectionTester`
2. Override only the two abstract methods

- `public int activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`
- `public int statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`

3. Take care to ensure that your methods are defined to allow `preferredTestQuery` and `rootCauseOutParamHolder` to be `null`.

Parameter `rootCauseOutParamHolder` is an optional parameter, which if supplied, will be a Throwable array whose size it at least one. If a Connection test fails because of some Exception, the Connection tester may set this Exception as the zero-th element of the array to provide information about why and how the test failed.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`CONNECTION_IS_INVALID`
`static final int`
`CONNECTION_IS_OKAY`
`static final int`
`DATABASE_IS_INVALID`

## Method Summary

Modifier and Type
Method
Description
`int`
`activeCheckConnection(Connection c)`
`int`
`activeCheckConnection(Connection c, String preferredTestQuery)`
`int`
`activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`
`int`
`activeCheckConnection(Connection c, Throwable[] rootCauseOutParamHolder)`
`boolean`
`equals(Object o)`
Multiple testers that are of the same class and use the same criteria for determining fatality should test as equals().
`int`
`hashCode()`
keep consistent with equals()
`int`
`statusOnException(Connection c, Throwable t)`
`int`
`statusOnException(Connection c, Throwable t, String preferredTestQuery)`
`int`
`statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`
`int`
`statusOnException(Connection c, Throwable t, Throwable[] rootCauseOutParamHolder)`

## Field Details

### CONNECTION_IS_OKAY

static final int CONNECTION_IS_OKAY

See Also:
  - Constant Field Values

### CONNECTION_IS_INVALID

static final int CONNECTION_IS_INVALID

See Also:
  - Constant Field Values

### DATABASE_IS_INVALID

static final int DATABASE_IS_INVALID

See Also:
  - Constant Field Values

## Method Details

### activeCheckConnection

int activeCheckConnection(Connection c)

Specified by:
  `activeCheckConnection` in interface `ConnectionTester`

### activeCheckConnection

int activeCheckConnection(Connection c, Throwable[] rootCauseOutParamHolder)

### activeCheckConnection

int activeCheckConnection(Connection c, String preferredTestQuery)

Specified by:
  `activeCheckConnection` in interface `QueryConnectionTester`

### activeCheckConnection

int activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)

### statusOnException

int statusOnException(Connection c, Throwable t)

Specified by:
  `statusOnException` in interface `ConnectionTester`

### statusOnException

int statusOnException(Connection c, Throwable t, Throwable[] rootCauseOutParamHolder)

### statusOnException

int statusOnException(Connection c, Throwable t, String preferredTestQuery)

Specified by:
  `statusOnException` in interface `FullQueryConnectionTester`

### statusOnException

int statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)

### equals

boolean equals(Object o)
Description copied from interface: `ConnectionTester`
Multiple testers that are of the same class and use the same criteria for determining fatality should test as equals().

Specified by:
  `equals` in interface `ConnectionTester`
Overrides:
  `equals` in class `Object`

### hashCode

int hashCode()
Description copied from interface: `ConnectionTester`
keep consistent with equals()

Specified by:
  `hashCode` in interface `ConnectionTester`
Overrides:
  `hashCode` in class `Object`