package mapper; import api.v1.PositionTag; import exceptions.PoseidonException; import models.PositionTagCount; import models.PositionTagModel; import play.mvc.Http; import java.util.ArrayList; import java.util.List; public class PositionTagMapper { public List<PositionTag> mapToApi(List<PositionTagModel> positionTagModels) { if ( positionTagModels == null) return null; List<PositionTag> tags = new ArrayList<>(); for(PositionTagModel model : positionTagModels){ tags.add(mapToApi(model)); } return tags; } public PositionTag mapToApi(PositionTagModel model) { PositionTag tag = new PositionTag(model.id,model.name,model.positionModels.size()); return tag; } public PositionTagModel mapToModel(PositionTag apiTag) { PositionTagModel model = new PositionTagModel(); if (apiTag == null) { throw new PoseidonException(Http.Status.BAD_REQUEST, "Ingen tag angitt"); } if (apiTag.id != null) { model.id = apiTag.id; } model.name = apiTag.name; return model; } public List<PositionTag> mapToApiWithCount(List<PositionTagCount> tagsWithCount) { if ( tagsWithCount == null) return null; List<PositionTag> tags = new ArrayList<>(); for(PositionTagCount model : tagsWithCount){ tags.add(mapToApi(model)); } return tags; } private PositionTag mapToApi(PositionTagCount model) { PositionTag tag = new PositionTag(model.tag.id,model.tag.name,model.count); return tag; } }