KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > pojos > WeblogEntryWrapperComparator


1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. The ASF licenses this file to You
4 * under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License. For additional information regarding
15 * copyright in this work, please see the NOTICE file in the top level
16 * directory of this distribution.
17 */

18
19 package org.apache.roller.pojos;
20
21 import java.io.Serializable JavaDoc;
22 import java.util.Comparator JavaDoc;
23 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
24
25 /**
26  * Sorts WeblogEntryData objects in reverse chronological order
27  * (most recently published entries first). If they happen to
28  * have the same pubTime, then sort alphabetically by title.
29  *
30  * @author lance.lavandowska
31  */

32 public class WeblogEntryWrapperComparator implements Comparator JavaDoc, Serializable JavaDoc
33 {
34     static final long serialVersionUID = -9067148992322255150L;
35     
36     public int compare(Object JavaDoc val1, Object JavaDoc val2)
37     throws ClassCastException JavaDoc
38     {
39         WeblogEntryDataWrapper entry1 = (WeblogEntryDataWrapper)val1;
40         WeblogEntryDataWrapper entry2 = (WeblogEntryDataWrapper)val2;
41         long pubTime1 = entry1.getPubTime().getTime();
42         long pubTime2 = entry2.getPubTime().getTime();
43
44         if (pubTime1 > pubTime2)
45         {
46             return -1;
47         }
48         else if (pubTime1 < pubTime2)
49         {
50             return 1;
51         }
52
53         // if pubTimes are the same, return
54
// results of String.compareTo() on Title
55
return entry1.getTitle().compareTo(entry2.getTitle());
56     }
57 }
58
Popular Tags