class Checkpoint extends InternalDatabusEventsListenerAbstract implements Serializable, Cloneable {

  public boolean assertCheckpoint()
  {
    switch (getConsumptionMode())
    {
    case INIT: return true;
    case ONLINE_CONSUMPTION: return assertOnlineCheckpoint();
    case BOOTSTRAP_SNAPSHOT: return assertSnapshotCheckpoint();
    case BOOTSTRAP_CATCHUP: return assertCatchupCheckpoint();
    default:
      throw new InvalidCheckpointException("unknown checkpoint type", this);
    }
  }

  @SuppressWarnings("unchecked") public  Checkpoint(String serializedCheckpoint);
  public  Checkpoint();

}