All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.rainfall.store.dataset.LogDataset Maven / Gradle / Ivy

The newest version!
package io.rainfall.store.dataset;

import io.rainfall.store.values.Log;
import lombok.NonNull;


abstract class LogDataset<
    V extends Log,
    CR extends LogRecord,
    CS extends ChildRepository,
    PR extends Record,
    PS extends RecordRepository
    > extends ChildDataset {

  @NonNull
  private final PayloadRepository payloadRepository;

  LogDataset(@NonNull CS repository, @NonNull PS parentRepository,
             @NonNull PayloadRepository payloadRepository) {
    super(repository, parentRepository);
    this.payloadRepository = payloadRepository;
  }

  @Override
  CR create(PR parent, V value) {
    PayloadRecord payloadRecord = new PayloadRecord(value.getPayload());
    payloadRepository.save(payloadRecord);
    return create(parent, value, payloadRecord);
  }

  abstract CR create(PR parent, V value, PayloadRecord payloadRecord);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy