2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.cluster;
10 import akka.japi.Procedure;
11 import akka.persistence.JournalProtocol;
12 import akka.persistence.SnapshotProtocol;
13 import akka.persistence.SnapshotSelectionCriteria;
16 * A DataPersistenceProvider implementation that delegates to another implementation.
18 * @author Thomas Pantelis
20 public class DelegatingPersistentDataProvider implements DataPersistenceProvider {
21 private DataPersistenceProvider delegate;
23 public DelegatingPersistentDataProvider(final DataPersistenceProvider delegate) {
24 this.delegate = delegate;
27 public void setDelegate(final DataPersistenceProvider delegate) {
28 this.delegate = delegate;
31 public DataPersistenceProvider getDelegate() {
36 public boolean isRecoveryApplicable() {
37 return delegate.isRecoveryApplicable();
41 public <T> void persist(final T entry, final Procedure<T> procedure) {
42 delegate.persist(entry, procedure);
46 public <T> void persistAsync(final T entry, final Procedure<T> procedure) {
47 delegate.persistAsync(entry, procedure);
51 public void saveSnapshot(final Object entry) {
52 delegate.saveSnapshot(entry);
56 public void deleteSnapshots(final SnapshotSelectionCriteria criteria) {
57 delegate.deleteSnapshots(criteria);
61 public void deleteMessages(final long sequenceNumber) {
62 delegate.deleteMessages(sequenceNumber);
66 public long getLastSequenceNumber() {
67 return delegate.getLastSequenceNumber();
71 public boolean handleJournalResponse(final JournalProtocol.Response response) {
72 return delegate.handleJournalResponse(response);
76 public boolean handleSnapshotResponse(final SnapshotProtocol.Response response) {
77 return delegate.handleSnapshotResponse(response);