com.kenshoo.pl.simulation.internal.InitialStateRecorder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of persistence-layer Show documentation
Show all versions of persistence-layer Show documentation
A Java persistence layer based on JOOQ for high performance and business flow support.
package com.kenshoo.pl.simulation.internal;
import com.google.common.collect.Maps;
import com.kenshoo.pl.entity.*;
import com.kenshoo.pl.entity.spi.OutputGenerator;
import java.util.Collection;
import java.util.Map;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toMap;
public class InitialStateRecorder> implements OutputGenerator {
private final Collection> fields;
private Map, CurrentEntityState> entities = Maps.newHashMap();
public InitialStateRecorder(Collection> fields) {
this.fields = fields;
}
@Override
public void generate(Collection extends EntityChange> commands, ChangeOperation op, ChangeContext ctx) {
this.entities = commands.stream().collect(toMap(EntityChange::getIdentifier, ctx::getEntity));
}
@Override
public Stream extends EntityField, ?>> requiredFields(Collection extends EntityField> fieldsToUpdate, ChangeOperation changeOperation) {
return requiredFields();
}
public Entity get(Identifier id) {
return entities.get(id);
}
private Stream extends EntityField, ?>> requiredFields() {
return fields.stream();
}
}