commit | author | age
|
5410ce
|
1 |
package de.uhilger.filecms.pub; |
U |
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.util.Comparator; |
17414d
|
5 |
import java.util.Date; |
U |
6 |
import java.util.logging.Logger; |
5410ce
|
7 |
|
U |
8 |
/** |
|
9 |
* |
|
10 |
* @author ulrich |
|
11 |
*/ |
|
12 |
public class FileDateComparator implements Comparator { |
|
13 |
|
17414d
|
14 |
private static final Logger logger = Logger.getLogger(FileDateComparator.class.getName()); |
U |
15 |
|
5410ce
|
16 |
private String order; |
U |
17 |
|
|
18 |
public FileDateComparator(String order) { |
|
19 |
this.order = order; |
|
20 |
} |
|
21 |
|
|
22 |
@Override |
|
23 |
public int compare(Object obj1, Object obj2) { |
|
24 |
File f1 = null; |
|
25 |
File f2 = null; |
|
26 |
if(obj1 instanceof File) { |
|
27 |
f1 = (File) obj1; |
|
28 |
} |
|
29 |
if(obj2 instanceof File) { |
|
30 |
f2 = (File) obj2; |
|
31 |
} |
|
32 |
if(f1 != null && f2 != null) { |
17414d
|
33 |
Date l1 = new Date(f1.lastModified()); |
U |
34 |
Date l2 = new Date(f2.lastModified()); |
5410ce
|
35 |
if(order != null && order.equalsIgnoreCase("asc")) { |
17414d
|
36 |
if(l1.before(l2)) { |
U |
37 |
logger.fine("asc: " + f1.getName() + " kleiner " + f2.getName()); |
5410ce
|
38 |
return -1; |
17414d
|
39 |
} else if(l1.after(l2)) { |
U |
40 |
logger.fine("asc: " + f1.getName() + " groesser " + f2.getName()); |
5410ce
|
41 |
return 1; |
U |
42 |
} else { |
17414d
|
43 |
logger.fine("asc: " + f1.getName() + " gleich " + f2.getName()); |
5410ce
|
44 |
return 0; |
U |
45 |
} |
|
46 |
} else { |
17414d
|
47 |
if(l1.before(l2)) { |
U |
48 |
logger.fine("desc: " + f1.getName() + " groesser " + f2.getName()); |
5410ce
|
49 |
return 1; |
17414d
|
50 |
} else if(l1.after(l2)) { |
U |
51 |
logger.fine("desc: " + f1.getName() + " kleiner " + f2.getName()); |
5410ce
|
52 |
return -1; |
U |
53 |
} else { |
17414d
|
54 |
logger.fine("desc: " + f1.getName() + " gleich " + f2.getName()); |
5410ce
|
55 |
return 0; |
U |
56 |
} |
|
57 |
} |
|
58 |
} else { |
17414d
|
59 |
logger.fine("f1 oder f2 null"); |
5410ce
|
60 |
return 0; |
U |
61 |
} |
|
62 |
} |
|
63 |
|
|
64 |
} |