/*
* Hibernate OGM, Domain model persistence for NoSQL datastores
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.ogm.backendtck.compensation;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.ogm.compensation.ErrorHandler;
import org.hibernate.ogm.compensation.ErrorHandlingStrategy;
/**
* An {@link ErrorHandler} which makes all its invocations available for testing purposes.
*
* @author Gunnar Morling
*/
class InvocationTrackingHandler implements ErrorHandler {
static InvocationTrackingHandler INSTANCE = new InvocationTrackingHandler();
private final List<RollbackContext> onRollbackInvocations = new ArrayList<>();
private final List<FailedGridDialectOperationContext> onFailedOperationInvocations = new ArrayList<>();
private InvocationTrackingHandler() {
}
@Override
public void onRollback(RollbackContext context) {
onRollbackInvocations.add( context );
}
@Override
public ErrorHandlingStrategy onFailedGridDialectOperation(FailedGridDialectOperationContext context) {
onFailedOperationInvocations.add( context );
return ErrorHandlingStrategy.ABORT;
}
public void clear() {
onRollbackInvocations.clear();
onFailedOperationInvocations.clear();
}
public List<RollbackContext> getOnRollbackInvocations() {
return onRollbackInvocations;
}
public List<FailedGridDialectOperationContext> getOnFailedOperationInvocations() {
return onFailedOperationInvocations;
}
}