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.SnapshotSelectionCriteria;
14 * A DataPersistenceProvider implementation that delegates to another implementation.
16 * @author Thomas Pantelis
18 public class DelegatingPersistentDataProvider implements DataPersistenceProvider {
19 private DataPersistenceProvider delegate;
21 public DelegatingPersistentDataProvider(DataPersistenceProvider delegate) {
22 this.delegate = delegate;
25 public void setDelegate(DataPersistenceProvider delegate) {
26 this.delegate = delegate;
29 public DataPersistenceProvider getDelegate() {
34 public boolean isRecoveryApplicable() {
35 return delegate.isRecoveryApplicable();
39 public <T> void persist(T entry, Procedure<T> procedure) {
40 delegate.persist(entry, procedure);
44 public <T> void persistAsync(T entry, Procedure<T> procedure) {
45 delegate.persistAsync(entry, procedure);
49 public void saveSnapshot(Object entry) {
50 delegate.saveSnapshot(entry);
54 public void deleteSnapshots(SnapshotSelectionCriteria criteria) {
55 delegate.deleteSnapshots(criteria);
59 public void deleteMessages(long sequenceNumber) {
60 delegate.deleteMessages(sequenceNumber);
64 public long getLastSequenceNumber() {
65 return delegate.getLastSequenceNumber();