EoyEvaluationCommand.java
package com.tdmconsult.ete.evaluation.commands;
import com.tdmconsult.ete.evaluation.EvaluationPosition;
import com.tdmconsult.ete.evaluation.EvaluationPosition.Rate;
import com.tdmconsult.ete.evaluation.EvaluationState;
import com.tdmconsult.ete.masterdata.Security;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@RequiredArgsConstructor
public class EoyEvaluationCommand implements Command {
private final int fiscalYear;
private final Security security;
private final Rate rate;
@Override
public void execute(final EvaluationState state) {
final var toEvaluate = state.getPositions().stream()
.filter(p -> p.getSecurity().equals(security))
.toList();
toEvaluate.forEach(position -> position.addEvaluation(new EvaluationPosition.Evaluation(
fiscalYear,
rate,
position.getRemainingQuantity())));
}
}