1
22
23 package com.liferay.portal.tools.comparator;
24
25 import java.util.Comparator;
26 import java.util.List;
27
28
33 public class ColumnsComparator implements Comparator<Object> {
34
35 public ColumnsComparator(String columnName) {
36 this(new String[] {columnName});
37 }
38
39 public ColumnsComparator(List<String> columnNames) {
40 this(columnNames.toArray(new String[columnNames.size()]));
41 }
42
43 public ColumnsComparator(String[] columnNames) {
44 _columnNames = columnNames;
45 }
46
47 public int compare(Object obj1, Object obj2) {
48 Object[] column1 = (Object[])obj1;
49 Object[] column2 = (Object[])obj2;
50
51 String columnName1 = (String)column1[0];
52 String columnName2 = (String)column2[0];
53
54 int x = -1;
55
56 for (int i = 0; i < _columnNames.length; i++) {
57 if (_columnNames[i].equals(columnName1)) {
58 x = i;
59
60 break;
61 }
62 }
63
64 int y = -1;
65
66 for (int i = 0; i < _columnNames.length; i++) {
67 if (_columnNames[i].equals(columnName2)) {
68 y = i;
69
70 break;
71 }
72 }
73
74 if ((x == -1) && (y > -1)) {
75 return 1;
76 }
77 else if ((x > -1) && (y == -1)) {
78 return -1;
79 }
80 else if ((x > -1) && (y > -1)) {
81 if (x < y) {
82 return -1;
83 }
84 else if (x > y) {
85 return 1;
86 }
87 }
88
89 return 0;
90 }
91
92 private String[] _columnNames;
93
94 }