View Javadoc

1   package net.sourceforge.blogentis.utils.tools;
2   
3   //-----------------------------------------------------------------------
4   //Blogentis - a blog publishing platform.
5   //Copyright (C) 2004 Tassos Bassoukos <abassouk@gmail.com>
6   //
7   //This library is free software; you can redistribute it and/or
8   //modify it under the terms of the GNU Lesser General Public
9   //License as published by the Free Software Foundation; either
10  //version 2.1 of the License, or (at your option) any later version.
11  //
12  //This library is distributed in the hope that it will be useful,
13  //but WITHOUT ANY WARRANTY; without even the implied warranty of
14  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  //Lesser General Public License for more details.
16  //
17  //You should have received a copy of the GNU Lesser General Public
18  //License along with this library; if not, write to the Free Software
19  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  //-----------------------------------------------------------------------
21  //
22  //$Id: DateFormatterTool.java,v 1.1 2004/10/22 17:34:15 tassos Exp $
23  //
24  
25  import java.text.DateFormat;
26  import java.text.SimpleDateFormat;
27  import java.util.ArrayList;
28  import java.util.Calendar;
29  import java.util.Iterator;
30  import java.util.List;
31  
32  import net.sourceforge.blogentis.rss.RSSItem;
33  
34  import org.apache.turbine.services.pull.ApplicationTool;
35  
36  public class DateFormatterTool implements ApplicationTool {
37      protected static DateFormat mfTime = new SimpleDateFormat("HH:mm");
38  
39      protected static DateFormat mfDate = new SimpleDateFormat(
40          "EEEE, dd MMMM yyyy");
41  
42      protected static DateFormat mfFull = new SimpleDateFormat(
43          "EEEE, dd MMMM yyyy, HH:mm");
44  
45      public void init(Object data) {}
46  
47      public void refresh() {}
48  
49      public String formatTime(Object o) {
50          return mfTime.format(o);
51      }
52  
53      public String formatDate(Object o) {
54          return mfDate.format(o);
55      }
56  
57      public String formatDateTime(Object o) {
58          return mfFull.format(o);
59      }
60  
61      public String format(String format, Object o) {
62          // TODO: cache, localize by blog, localize by blog's timezone.
63          return new SimpleDateFormat(format).format(o);
64      }
65  
66      public List sortByDate(List l) {
67          ArrayList ret = new ArrayList(2);
68          ArrayList todayItems = null;
69          int oldDay = -2;
70          Calendar oldCal = Calendar.getInstance();
71          for(Iterator i = l.iterator(); i.hasNext();) {
72              RSSItem pi = (RSSItem)i.next();
73              oldCal.setTime(pi.getPostedTime());
74              if (oldCal.get(Calendar.DAY_OF_YEAR) != oldDay) {
75                  todayItems = new ArrayList(1);
76                  ret.add(todayItems);
77                  oldDay = oldCal.get(Calendar.DAY_OF_YEAR);
78              }
79              todayItems.add(pi);
80          }
81          return ret;
82      }
83  }