package pl.edu.icm.saos.api.single.judgment.mapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import pl.edu.icm.saos.api.services.links.LinksBuilder; import pl.edu.icm.saos.api.single.judgment.data.representation.CommonCourtJudgmentData; import pl.edu.icm.saos.api.single.judgment.data.representation.CommonCourtJudgmentData.Division; import pl.edu.icm.saos.api.single.judgment.views.CommonCourtJudgmentView; import pl.edu.icm.saos.persistence.model.CommonCourt; import pl.edu.icm.saos.persistence.model.CommonCourtDivision; import pl.edu.icm.saos.persistence.model.CommonCourtJudgment; /** * Converts {@link pl.edu.icm.saos.persistence.model.CommonCourtJudgment CommonCourtJudgmnet} specific fields. * @author pavtel */ @Service public class CommonCourtJudgmentMapper { @Autowired private LinksBuilder linksBuilder; //------------------------ LOGIC -------------------------- /** * Fill {@link pl.edu.icm.saos.persistence.model.CommonCourtJudgment CommonCourtJudgment} specific fields values * into {@link pl.edu.icm.saos.api.single.judgment.views.CommonCourtJudgmentView CommonCourtJudgmentView}. * @param representation in which to add values. * @param judgment to process. */ public void fillJudgmentsFieldToRepresentation(CommonCourtJudgmentView representation, CommonCourtJudgment judgment){ fillData(representation.getData(), judgment); } //------------------------ PRIVATE -------------------------- private void fillData(CommonCourtJudgmentData data, CommonCourtJudgment judgment) { data.setDivision(toDivision(judgment.getCourtDivision())); } private Division toDivision(CommonCourtDivision courtDivision) { Division divisionView = new Division(); divisionView.setHref(linksBuilder.urlToCcDivision(courtDivision.getId())); divisionView.setId(courtDivision.getId()); divisionView.setName(courtDivision.getName()); divisionView.setCode(courtDivision.getCode()); divisionView.setType(courtDivision.getType().getName()); divisionView.setCourt(toCourt(courtDivision.getCourt())); return divisionView; } private CommonCourtJudgmentData.Court toCourt(CommonCourt court) { CommonCourtJudgmentData.Court courtView = new CommonCourtJudgmentData.Court(); courtView.setHref(linksBuilder.urlToCommonCourt(court.getId())); courtView.setId(court.getId()); courtView.setName(court.getName()); courtView.setCode(court.getCode()); courtView.setType(court.getType()); return courtView; } //------------------------ SETTERS -------------------------- public void setLinksBuilder(LinksBuilder linksBuilder) { this.linksBuilder = linksBuilder; } }