package org.karmaexchange.resources.msg; import java.util.Comparator; import java.util.Date; import java.util.List; import lombok.Data; import lombok.NoArgsConstructor; import org.karmaexchange.dao.Organization; import org.karmaexchange.dao.Waiver; import com.google.common.collect.Lists; @Data @NoArgsConstructor public class WaiverSummaryView { private String orgName; private String key; private String description; private Date lastModificationDate; private WaiverSummaryView(Organization org, Waiver waiver) { orgName = org.getOrgName(); key = waiver.getKey(); description = waiver.getDescription(); lastModificationDate = waiver.getModificationInfo().getLastModificationDate(); } public static List<WaiverSummaryView> create(Organization org, Iterable<Waiver> waivers) { List<WaiverSummaryView> waiverSummaries = Lists.newArrayList(); for (Waiver waiver : waivers) { waiverSummaries.add(new WaiverSummaryView(org, waiver)); } return waiverSummaries; } public static class OrgAndDescriptionComparator implements Comparator<WaiverSummaryView> { public static final OrgAndDescriptionComparator INSTANCE = new OrgAndDescriptionComparator(); @Override public int compare(WaiverSummaryView waiver1, WaiverSummaryView waiver2) { int val = waiver1.description.compareToIgnoreCase(waiver2.description); return (val != 0) ? val : waiver1.orgName.compareToIgnoreCase(waiver2.orgName); } } }