01: /**
02: * $Id: SalesOrderComparator.java,v 1.1 2005/08/12 07:46:06 nk137934 Exp $
03: * Copyright 2005 Sun Microsystems, Inc. All
04: * rights reserved. Use of this product is subject
05: * to license terms. Federal Acquisitions:
06: * Commercial Software -- Government Users
07: * Subject to Standard License Terms and
08: * Conditions.
09: *
10: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
11: * are trademarks or registered trademarks of Sun Microsystems,
12: * Inc. in the United States and other countries.
13: */package com.sun.portal.sapportlet.salesorder;
14:
15: import java.util.Comparator;
16:
17: public class SalesOrderComparator implements Comparator {
18:
19: /* Possible values for sort order*/
20: public static final int SORT_ORDER_ASCENDING = 1;
21: public static final int SORT_ORDER_DESCENDING = -1;
22:
23: /* Possible values for sort field*/
24: public static final int SORT_PURCHASE_NUMBER = 1000;
25: public static final int SORT_STATUS = 2000;
26:
27: private int sortField;
28: private int sortOrder;
29:
30: private SalesOrderComparator(int sortField, int sortOrder) {
31:
32: this .sortField = sortField;
33: this .sortOrder = sortOrder;
34: }
35:
36: public static SalesOrderComparator getComparator(int sortField,
37: int sortOrder) {
38:
39: SalesOrderComparator comparator = new SalesOrderComparator(
40: sortField, sortOrder);
41: return comparator;
42: }
43:
44: public int compare(Object obj1, Object obj2) {
45: //We assume only sales order objects are compared
46: SalesOrder salesOrder1 = (SalesOrder) obj1;
47: SalesOrder salesOrder2 = (SalesOrder) obj2;
48: int result = 0;
49: switch (sortField) {
50:
51: case SORT_PURCHASE_NUMBER:
52: result = compareSOPurchaseNumbers(salesOrder1, salesOrder2);
53: break;
54: case SORT_STATUS:
55: result = compareSOStatus(salesOrder1, salesOrder2);
56: break;
57: default:
58: break;
59: }
60: return result;
61: }
62:
63: private int compareSOPurchaseNumbers(SalesOrder salesOrder1,
64: SalesOrder salesOrder2) {
65:
66: String purchaseNumber1 = salesOrder1.getPurchaseNumber();
67: String purchaseNumber2 = salesOrder2.getPurchaseNumber();
68: int compareResult = purchaseNumber1.toLowerCase().compareTo(
69: purchaseNumber2.toLowerCase());
70: return compareResult * sortOrder;
71: }
72:
73: private int compareSOStatus(SalesOrder salesOrder1,
74: SalesOrder salesOrder2) {
75:
76: String status1 = salesOrder1.getStatus();
77: String status2 = salesOrder2.getStatus();
78: int compareResult = status1.toLowerCase().compareTo(
79: status2.toLowerCase());
80: return compareResult * sortOrder;
81: }
82:
83: }
|