/** * Title: * Description: Class that can sort ListedMember * Copyright: Copyright (c) 2000 * Company: * @author �gir * @version 1.0 */ package is.idega.idegaweb.golf.service; import java.util.*; import java.util.Comparator; public class ComparableMemberList implements Comparator { public static final int NAME = 1; public static final int ADDRESS = 2; public static final int EMAIL = 3; public static final int HANDICAP = 4; public static final int PAYMENT = 5; private int sortBy; public ComparableMemberList() { sortBy = NAME; } public ComparableMemberList(int toSortBy) { sortBy = toSortBy; } public void sortBy(int toSortBy) { sortBy = toSortBy; } public int compare(Object o1, Object o2) { ListedMember p1 = (ListedMember) o1; ListedMember p2 = (ListedMember) o2; int result = 0; if(sortBy == NAME) { result = nameSort(o1, o2); } else if(sortBy == ADDRESS) { result = p1.getAddress().compareTo(p2.getAddress()); if(result == 0) result = nameSort(o1, o2); } else if(sortBy == EMAIL) { result = p1.getEmail().compareTo(p2.getEmail()); if(result == 0) result = nameSort(o1, o2); } else if(sortBy == HANDICAP) { result = p1.getHandicap().compareTo(p2.getHandicap()); if(result == 0) result = nameSort(o1, o2); } else if(sortBy == PAYMENT) { result = p1.getPayment().compareTo(p2.getPayment()); if(result == 0) result = nameSort(o1, o2); } return result; } private int nameSort(Object o1, Object o2) { ListedMember p1 = (ListedMember) o1; ListedMember p2 = (ListedMember) o2; // check on first name first... int result = p1.getFirstName().compareTo(p2.getFirstName()); // if equal, check middle name... if (result == 0) result = p1.getMiddleName().compareTo(p2.getMiddleName()); // if equal, check last name... if (result == 0) result = p1.getLastName().compareTo(p2.getLastName()); return result; } public boolean equals(Object obj) { /**@todo: Implement this java.util.Comparator method*/ throw new java.lang.UnsupportedOperationException("Method equals() not yet implemented."); } public Iterator sort(ListedMember[] members, int toSortBy) { sortBy = toSortBy; List list = new LinkedList(); for(int i = 0; i < members.length; i++) { list.add(members[i]); } Collections.sort(list, this); return list.iterator(); } public Iterator sort(ListedMember[] members) { List list = new LinkedList(); for(int i = 0; i < members.length; i++) { list.add(members[i]); } Collections.sort(list, this); return list.iterator(); } public ListedMember[] sortedArray(ListedMember[] members, int toSortBy) { sortBy = toSortBy; List list = new LinkedList(); for(int i = 0; i < members.length; i++) { list.add(members[i]); } Collections.sort(list, this); Object[] objArr = list.toArray(); for(int i = 0; i < objArr.length; i++) { members[i] = (ListedMember) objArr[i]; } return (members); } public ListedMember[] sortedArray(ListedMember[] members) { List list = new LinkedList(); for(int i = 0; i < members.length; i++) { list.add(members[i]); } Collections.sort(list, this); Object[] objArr = list.toArray(); for(int i = 0; i < objArr.length; i++) { members[i] = (ListedMember) objArr[i]; } return (members); } public ListedMember[] reverseSortedArray(ListedMember[] members, int toSortBy) { sortBy = toSortBy; List list = new LinkedList(); for(int i = 0; i < members.length; i++) { list.add(members[i]); } Collections.sort(list, this); Collections.reverse(list); Object[] objArr = list.toArray(); for(int i = 0; i < objArr.length; i++) { members[i] = (ListedMember) objArr[i]; } return (members); } }