package persistency.exposed.json; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; import persistency.entities.gamification.PointsCategory; import persistency.entities.gamification.Rank; import persistency.exposed.PointsCategoryExposed; public class RankJson implements Serializable { /** * */ private static final long serialVersionUID = 1L; private int rankPos; private String rankName; private List<String> rankRequirements; public String getRankName() { return rankName; } public void setRankName(String rankName) { this.rankName = rankName; } public int getRankPos() { return rankPos; } public void setRankPos(int rankPos) { this.rankPos = rankPos; } public List<String> getRankRequirements() { return rankRequirements; } public void setRankRequirements(List<String> rankRequirements) { this.rankRequirements = rankRequirements; } public Rank toEntity(){ Rank r = new Rank(); r.setRankName(rankName); r.setRankPos(rankPos); PointsCategoryExposed pce = new PointsCategoryExposed(); List<PointsCategory> reqs = new ArrayList<PointsCategory>(); if(rankRequirements != null){ for (String string : rankRequirements) { PointsCategory findCategoryByShortName = pce.findCategoryByShortName(string); if (findCategoryByShortName == null){ throw new IllegalArgumentException("No such category: "+string); } reqs.add(findCategoryByShortName); } } r.setRankRequirements(reqs); return r; } }