Clover Coverage Report - Pebble 2.5-SNAPSHOT
Coverage timestamp: Sat Jun 12 2010 09:39:29 EST
../../../../../img/srcFileCovDistChart0.png 48% of files have more coverage
41   133   12   13,67
8   67   0,29   3
3     4  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  ViewLogSummaryAction       Line # 54 41 0% 12 52 0% 0.0
 
No Tests
 
1    /*
2    * Copyright (c) 2003-2006, Simon Brown
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * - Redistributions of source code must retain the above copyright
9    * notice, this list of conditions and the following disclaimer.
10    *
11    * - Redistributions in binary form must reproduce the above copyright
12    * notice, this list of conditions and the following disclaimer in
13    * the documentation and/or other materials provided with the
14    * distribution.
15    *
16    * - Neither the name of Pebble nor the names of its contributors may
17    * be used to endorse or promote products derived from this software
18    * without specific prior written permission.
19    *
20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23    * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30    * POSSIBILITY OF SUCH DAMAGE.
31    */
32    package net.sourceforge.pebble.web.action;
33   
34    import net.sourceforge.pebble.Constants;
35    import net.sourceforge.pebble.domain.Blog;
36    import net.sourceforge.pebble.domain.Month;
37    import net.sourceforge.pebble.logging.LogSummary;
38    import net.sourceforge.pebble.web.view.View;
39    import net.sourceforge.pebble.web.view.impl.LogSummaryByMonthView;
40    import net.sourceforge.pebble.web.view.impl.LogSummaryByYearView;
41   
42    import javax.servlet.ServletException;
43    import javax.servlet.http.HttpServletRequest;
44    import javax.servlet.http.HttpServletResponse;
45    import java.text.SimpleDateFormat;
46    import java.util.Calendar;
47    import java.util.Locale;
48   
49    /**
50    * Gets the contents of the specified log file.
51    *
52    * @author Simon Brown
53    */
 
54    public class ViewLogSummaryAction extends SecureAction {
55   
56    /**
57    * Peforms the processing associated with this action.
58    *
59    * @param request the HttpServletRequest instance
60    * @param response the HttpServletResponse instance
61    * @return the name of the next view
62    */
 
63  0 toggle public View process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
64  0 Blog blog = (Blog)getModel().get(Constants.BLOG_KEY);
65   
66  0 String yearAsStriing = request.getParameter("year");
67  0 String monthAsString = request.getParameter("month");
68   
69  0 Calendar cal = blog.getCalendar();
70  0 LogSummary logSummary;
71  0 View view;
72   
73  0 if (yearAsStriing != null && yearAsStriing.length() > 0 &&
74    monthAsString != null && monthAsString.length() > 0) {
75  0 int year = Integer.parseInt(yearAsStriing);
76  0 int month = Integer.parseInt(monthAsString)-1;
77  0 cal.set(Calendar.YEAR, year);
78  0 cal.set(Calendar.MONTH, month);
79  0 logSummary = blog.getLogger().getLogSummary(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1);
80  0 view = new LogSummaryByMonthView();
81  0 registerObjectsForNavigation(blog, blog.getBlogForMonth(year, month+1));
82  0 } else if (yearAsStriing != null && yearAsStriing.length() > 0) {
83  0 cal.set(Calendar.YEAR, Integer.parseInt(yearAsStriing));
84  0 logSummary = blog.getLogger().getLogSummary(cal.get(Calendar.YEAR));
85  0 view = new LogSummaryByYearView();
86    } else {
87    // get the log for this monthAsString
88  0 logSummary = blog.getLogger().getLogSummary(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1);
89  0 view = new LogSummaryByMonthView();
90  0 registerObjectsForNavigation(blog, blog.getBlogForThisMonth());
91    }
92   
93  0 SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy", Locale.ENGLISH);
94  0 yearFormatter.setTimeZone(blog.getTimeZone());
95  0 SimpleDateFormat monthFormatter = new SimpleDateFormat("MM", Locale.ENGLISH);
96  0 monthFormatter.setTimeZone(blog.getTimeZone());
97  0 SimpleDateFormat dayFormatter = new SimpleDateFormat("dd", Locale.ENGLISH);
98  0 dayFormatter.setTimeZone(blog.getTimeZone());
99  0 getModel().put("year", yearFormatter.format(logSummary.getDate()));
100  0 getModel().put("month", monthFormatter.format(logSummary.getDate()));
101   
102  0 getModel().put("logAction", "viewLogSummary");
103  0 getModel().put("logSummary", logSummary);
104   
105  0 return view;
106    }
107   
 
108  0 toggle private void registerObjectsForNavigation(Blog blog, Month month) {
109  0 Month firstMonth = blog.getBlogForFirstMonth();
110  0 Month previousMonth = month.getPreviousMonth();
111  0 Month nextMonth = month.getNextMonth();
112   
113  0 if (!previousMonth.before(firstMonth)) {
114  0 getModel().put("previousMonth", previousMonth);
115    }
116   
117  0 if (!nextMonth.getDate().after(blog.getCalendar().getTime()) || nextMonth.before(firstMonth)) {
118  0 getModel().put("nextMonth", nextMonth);
119    }
120  0 getModel().put("displayMode", "logSummaryForMonth");
121    }
122   
123    /**
124    * Gets a list of all roles that are allowed to access this action.
125    *
126    * @return an array of Strings representing role names
127    * @param request
128    */
 
129  0 toggle public String[] getRoles(HttpServletRequest request) {
130  0 return new String[]{Constants.BLOG_ADMIN_ROLE, Constants.BLOG_OWNER_ROLE, Constants.BLOG_PUBLISHER_ROLE, Constants.BLOG_CONTRIBUTOR_ROLE};
131    }
132   
133    }