*/
package org.opendaylight.controller.cluster;
+import static java.util.Objects.requireNonNull;
+
import akka.japi.Procedure;
+import akka.persistence.AbstractPersistentActor;
+import akka.persistence.DeleteMessagesSuccess;
+import akka.persistence.DeleteSnapshotsSuccess;
+import akka.persistence.JournalProtocol;
+import akka.persistence.SnapshotProtocol;
import akka.persistence.SnapshotSelectionCriteria;
-import akka.persistence.UntypedPersistentActor;
-import com.google.common.base.Preconditions;
/**
* A DataPersistenceProvider implementation with persistence enabled.
*/
public class PersistentDataProvider implements DataPersistenceProvider {
+ private final AbstractPersistentActor persistentActor;
- private final UntypedPersistentActor persistentActor;
-
- public PersistentDataProvider(UntypedPersistentActor persistentActor) {
- this.persistentActor = Preconditions.checkNotNull(persistentActor, "persistentActor can't be null");
+ public PersistentDataProvider(final AbstractPersistentActor persistentActor) {
+ this.persistentActor = requireNonNull(persistentActor, "persistentActor can't be null");
}
@Override
}
@Override
- public <T> void persist(T o, Procedure<T> procedure) {
- persistentActor.persist(o, procedure);
+ public <T> void persist(final T entry, final Procedure<T> procedure) {
+ persistentActor.persist(entry, procedure);
+ }
+
+ @Override
+ public <T> void persistAsync(final T entry, final Procedure<T> procedure) {
+ persistentActor.persistAsync(entry, procedure);
}
@Override
- public void saveSnapshot(Object o) {
- persistentActor.saveSnapshot(o);
+ public void saveSnapshot(final Object snapshot) {
+ persistentActor.saveSnapshot(snapshot);
}
@Override
- public void deleteSnapshots(SnapshotSelectionCriteria criteria) {
+ public void deleteSnapshots(final SnapshotSelectionCriteria criteria) {
persistentActor.deleteSnapshots(criteria);
}
@Override
- public void deleteMessages(long sequenceNumber) {
+ public void deleteMessages(final long sequenceNumber) {
persistentActor.deleteMessages(sequenceNumber);
}
public long getLastSequenceNumber() {
return persistentActor.lastSequenceNr();
}
-}
\ No newline at end of file
+
+ @Override
+ public boolean handleJournalResponse(final JournalProtocol.Response response) {
+ return response instanceof DeleteMessagesSuccess;
+ }
+
+ @Override
+ public boolean handleSnapshotResponse(final SnapshotProtocol.Response response) {
+ return response instanceof DeleteSnapshotsSuccess;
+ }
+}