package pl.edu.icm.saos.importer.notapi.constitutionaltribunal.judgment.process; import org.springframework.stereotype.Service; import com.google.common.base.Preconditions; import pl.edu.icm.saos.importer.common.correction.ImportCorrectionList; import pl.edu.icm.saos.importer.common.overwriter.JudgmentOverwriter; import pl.edu.icm.saos.persistence.model.ConstitutionalTribunalJudgment; /** * @author madryk */ @Service("ctSpecificJudgmentOverwriter") public class CtSpecificJudgmentOverwriter implements JudgmentOverwriter<ConstitutionalTribunalJudgment> { //------------------------ LOGIC -------------------------- @Override public void overwriteJudgment(ConstitutionalTribunalJudgment oldJudgment, ConstitutionalTribunalJudgment newJudgment, ImportCorrectionList correctionList) { Preconditions.checkNotNull(oldJudgment); Preconditions.checkNotNull(newJudgment); overwriteDissentingOpinions(oldJudgment, newJudgment); } //------------------------ PRIVATE -------------------------- private void overwriteDissentingOpinions(ConstitutionalTribunalJudgment oldJudgment, ConstitutionalTribunalJudgment newJudgment) { oldJudgment.getDissentingOpinions().stream().filter(opinion -> !newJudgment.containsDissentingOpinion(opinion)) .forEach(opinion -> oldJudgment.removeDissentingOpinion(opinion)); newJudgment.getDissentingOpinions().stream().filter(opinion -> !oldJudgment.containsDissentingOpinion(opinion)) .forEach(opinion -> oldJudgment.addDissentingOpinion(opinion)); } }