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   115   5   20,5
6   61   0,12   2
2     2,5  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  LogAsTabDelimitedView       Line # 47 41 0% 5 49 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.view.impl;
33   
34    import net.sourceforge.pebble.web.view.PlainTextView;
35    import net.sourceforge.pebble.logging.Log;
36    import net.sourceforge.pebble.logging.LogEntry;
37    import net.sourceforge.pebble.domain.Blog;
38    import net.sourceforge.pebble.Constants;
39   
40    import java.text.SimpleDateFormat;
41   
42    /**
43    * Represents the log file for today.
44    *
45    * @author Simon Brown
46    */
 
47    public class LogAsTabDelimitedView extends PlainTextView {
48   
49    private static final char SEPARATOR = '\t';
50   
51    /**
52    * Prepares the view for presentation.
53    */
 
54  0 toggle public void prepare() {
55  0 Blog blog = (Blog)getModel().get(Constants.BLOG_KEY);
56  0 Log log = (Log)getModel().get("log");
57  0 StringBuffer buf = new StringBuffer();
58  0 SimpleDateFormat sdf = new SimpleDateFormat("dd-MMMM-yyyy HH:mm:ss Z");
59  0 sdf.setTimeZone(blog.getTimeZone());
60   
61  0 buf.append("Host");
62  0 buf.append(SEPARATOR);
63  0 buf.append("Date/Time");
64  0 buf.append(SEPARATOR);
65  0 buf.append("Method");
66  0 buf.append(SEPARATOR);
67  0 buf.append("Request URI");
68  0 buf.append(SEPARATOR);
69  0 buf.append("Status");
70  0 buf.append(SEPARATOR);
71  0 buf.append("Referer");
72  0 buf.append(SEPARATOR);
73  0 buf.append("User-Agent");
74  0 buf.append("\n");
75   
76  0 if (log != null) {
77  0 for (LogEntry logEntry : log.getLogEntries()) {
78  0 buf.append(logEntry.getHost());
79  0 buf.append(SEPARATOR);
80  0 buf.append(sdf.format(logEntry.getDate()));
81  0 buf.append(SEPARATOR);
82  0 buf.append(logEntry.getRequestMethod());
83  0 buf.append(SEPARATOR);
84  0 buf.append(logEntry.getRequestUri());
85  0 buf.append(SEPARATOR);
86  0 if (logEntry.getStatusCode() != -1) {
87  0 buf.append(logEntry.getStatusCode());
88    } else {
89  0 buf.append("");
90    }
91  0 buf.append(SEPARATOR);
92  0 if (logEntry.getReferer() != null) {
93  0 buf.append(logEntry.getReferer());
94    } else {
95  0 buf.append("");
96    }
97  0 buf.append(SEPARATOR);
98  0 buf.append(logEntry.getAgent());
99  0 buf.append("\n");
100    }
101    }
102   
103  0 getModel().put("text", buf.toString());
104    }
105   
106    /**
107    * Gets the content type of this view.
108    *
109    * @return the content type as a String
110    */
 
111  0 toggle public String getContentType() {
112  0 return "application/vnd.ms-excel";
113    }
114   
115    }