/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.dataprocess.common.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
*
*/
public class UserTreatment {
private TreatmentModel treatmentModel;
private int priority;
public UserTreatment(TreatmentModel treatmentModel) {
this.treatmentModel = treatmentModel;
}
public String getId() {
return treatmentModel.getId();
}
public String getComment() {
return treatmentModel.getComment();
}
public String getTitle() {
return treatmentModel.getTitle();
}
public ResultTable getResultTable() {
return treatmentModel.getResultTable();
}
public void setPriority(int priority) {
this.priority = priority;
}
public int getPriority() {
return priority;
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof UserTreatment)) {
return false;
}
return getId().equals(((UserTreatment)obj).getId());
}
@Override
public String toString() {
String result;
result = "id : " + getId()
+ "\tpriority : " + getPriority()
+ "\tcomment : " + getComment()
+ "\ttitle : " + getTitle();
if (getResultTable() != null) {
result = result + "\tresultTableName : " + getResultTable().getTable()
+ "\tselectAllHandler : " + getResultTable().getSelectAllHandler();
}
return result;
}
public static List<UserTreatment> orderList(List<UserTreatment> list) {
Collections.sort(list, new UserTreatmentPriorityComparator());
return list;
}
public static List<UserTreatment> buildUserTrtListWithPriority(Map<UserTreatment, Integer> userTrtMap) {
List<UserTreatment> list = new ArrayList<UserTreatment>();
for (Entry<UserTreatment, Integer> entry : userTrtMap.entrySet()) {
entry.getKey().setPriority(entry.getValue());
list.add(entry.getKey());
}
return list;
}
private static class UserTreatmentPriorityComparator implements Comparator<UserTreatment> {
public int compare(UserTreatment u1, UserTreatment u2) {
if (u1.getPriority() == u2.getPriority()) {
return 0;
}
else if (u1.getPriority() > u2.getPriority()) {
return 1;
}
else {
return -1;
}
}
}
}