package com.sequenceiq.cloudbreak.cloud.service;
/**
* Interface to be implemented by the persistence provider module.
* (It's intended to be injected as collaborator where persisted data access is
* required)
* <p/>
* Implementers are required to provide the specific conversion logic between
* the generic type and persisted data.
*
* @param <T> the type of the (wrapped) data to be persisted.
*/
public interface Persister<T> {
T persist(T data);
T update(T data);
T retrieve(T data);
T delete(T notification);
}