File Source: FeedModel.java
/*
P/P * Method: org.apache.roller.weblogger.ui.rendering.model.FeedModel$FeedEntriesPager__static_init
*/
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.weblogger.ui.rendering.model;
20
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26 import org.apache.roller.weblogger.WebloggerException;
27 import org.apache.roller.weblogger.business.URLStrategy;
28 import org.apache.roller.weblogger.business.WebloggerFactory;
29 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
30 import org.apache.roller.weblogger.pojos.Weblog;
31 import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
32 import org.apache.roller.weblogger.ui.rendering.pagers.CommentsPager;
33 import org.apache.roller.weblogger.ui.rendering.pagers.Pager;
34 import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesListPager;
35 import org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest;
36 import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
37 import org.apache.roller.weblogger.util.URLUtilities;
38
39
40 /**
41 * Model which provides information needed to render a feed.
42 */
/*
P/P * Method: int access$100()
*
* Preconditions:
* init'ed(DEFAULT_ENTRIES)
*
* Postconditions:
* return_value == DEFAULT_ENTRIES
* init'ed(return_value)
*/
43 public class FeedModel implements Model {
44
/*
P/P * Method: org.apache.roller.weblogger.ui.rendering.model.FeedModel__static_init
*
* Postconditions:
* init'ed(DEFAULT_ENTRIES)
* init'ed(log)
*/
45 private static Log log = LogFactory.getLog(FeedModel.class);
46
47 private static int DEFAULT_ENTRIES = WebloggerRuntimeConfig.getIntProperty("site.newsfeeds.defaultEntries");
48
49 private WeblogFeedRequest feedRequest = null;
50 private URLStrategy urlStrategy = null;
51 private Weblog weblog = null;
52
53
54 public void init(Map initData) throws WebloggerException {
55
56 // we expect the init data to contain a weblogRequest object
/*
P/P * Method: void init(Map)
*
* Preconditions:
* initData != null
*
* Presumptions:
* java.util.Map:get(...)@57 != null
* org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@74 != null
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:instanceof(...)@64 == 1
*
* Postconditions:
* (soft) this.feedRequest != null
* init'ed(this.urlStrategy)
* init'ed(this.weblog)
*
* Test Vectors:
* java.util.Map:get(...)@72: Inverse{null}, Addr_Set{null}
*/
57 WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
58 if(weblogRequest == null) {
59 throw new WebloggerException("expected weblogRequest from init data");
60 }
61
62 // PageModel only works on page requests, so cast weblogRequest
63 // into a WeblogPageRequest and if it fails then throw exception
64 if(weblogRequest instanceof WeblogFeedRequest) {
65 this.feedRequest = (WeblogFeedRequest) weblogRequest;
66 } else {
67 throw new WebloggerException("weblogRequest is not a WeblogFeedRequest."+
68 " FeedModel only supports feed requests.");
69 }
70
71 // look for url strategy
72 urlStrategy = (URLStrategy) initData.get("urlStrategy");
73 if(urlStrategy == null) {
74 urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
75 }
76
77 // extract weblog object
78 weblog = feedRequest.getWeblog();
79 }
80
81
82 /** Template context name to be used for model */
83 public String getModelName() {
/*
P/P * Method: String getModelName()
*
* Postconditions:
* return_value == &"model"
*/
84 return "model";
85 }
86
87
88 /**
89 * Get the weblog locale used to render this page, null if no locale.
90 */
91 public String getLocale() {
/*
P/P * Method: String getLocale()
*
* Preconditions:
* this.feedRequest != null
*
* Postconditions:
* init'ed(return_value)
*/
92 return feedRequest.getLocale();
93 }
94
95
96 /**
97 * Get weblog being displayed.
98 */
99 public WeblogWrapper getWeblog() {
/*
P/P * Method: WeblogWrapper getWeblog()
*
* Preconditions:
* init'ed(this.urlStrategy)
* this.weblog != null
*
* Postconditions:
* return_value == &new WeblogWrapper(wrap#1)
* new WeblogWrapper(wrap#1) num objects == 1
* new WeblogWrapper(wrap#1).pojo == this.weblog
* new WeblogWrapper(wrap#1).pojo != null
* new WeblogWrapper(wrap#1).urlStrategy == this.urlStrategy
* init'ed(new WeblogWrapper(wrap#1).urlStrategy)
*/
100 return WeblogWrapper.wrap(weblog, urlStrategy);
101 }
102
103
104 /**
105 * Get category path or name specified by request.
106 */
107 public boolean getExcerpts() {
/*
P/P * Method: bool getExcerpts()
*
* Preconditions:
* this.feedRequest != null
*
* Postconditions:
* init'ed(return_value)
*/
108 return feedRequest.isExcerpts();
109 }
110
111
112 /**
113 * Get category path or name specified by request.
114 */
115 public String getCategoryPath() {
/*
P/P * Method: String getCategoryPath()
*
* Preconditions:
* this.feedRequest != null
*
* Postconditions:
* init'ed(return_value)
*/
116 return feedRequest.getWeblogCategoryName();
117 }
118
119 /**
120 * Gets most recent entries limited by: weblog and category specified in
121 * request plus the weblog.entryDisplayCount.
122 */
123 public Pager getWeblogEntriesPager() {
/*
P/P * Method: Pager getWeblogEntriesPager()
*
* Preconditions:
* this.feedRequest != null
* this.urlStrategy != null
* (soft) DEFAULT_ENTRIES <= 232-2
* (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
*
* Postconditions:
* return_value == &new FeedModel$FeedEntriesPager(getWeblogEntriesPager#1)
* new ArrayList(getItems#1) num objects == 1
* new FeedModel$FeedEntriesPager(getWeblogEntriesPager#1) num objects == 1
* return_value.entries == &new ArrayList(getItems#1)
* return_value.feedRequest == this.feedRequest
* return_value.feedRequest != null
* init'ed(return_value.lastUpdated)
* return_value.length == DEFAULT_ENTRIES
* (soft) return_value.length <= 232-2
* init'ed(return_value.locale)
* ...
*/
124 return new FeedEntriesPager(feedRequest);
125 }
126
127
128 /**
129 * Gets most recent comments limited by: weblog specified in request and
130 * the weblog.entryDisplayCount.
131 */
132 public Pager getCommentsPager() {
/*
P/P * Method: Pager getCommentsPager()
*
* Preconditions:
* this.feedRequest != null
* this.urlStrategy != null
* (soft) DEFAULT_ENTRIES <= 232-2
* (soft) org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.log != null
*
* Postconditions:
* return_value == &new FeedModel$FeedCommentsPager(getCommentsPager#1)
* new ArrayList(getItems#1) num objects == 1
* new FeedModel$FeedCommentsPager(getCommentsPager#1) num objects == 1
* return_value.comments == &new ArrayList(getItems#1)
* return_value.feedRequest == this.feedRequest
* return_value.feedRequest != null
* init'ed(return_value.lastUpdated)
* return_value.length == DEFAULT_ENTRIES
* (soft) return_value.length <= 232-2
* init'ed(return_value.locale)
* ...
*/
133 return new FeedCommentsPager(feedRequest);
134 }
135
136 /**
137 * Returns the list of tags specified in the request /?tags=foo+bar
138 * @return
139 */
140 public List getTags() {
/*
P/P * Method: List getTags()
*
* Preconditions:
* this.feedRequest != null
*
* Postconditions:
* init'ed(return_value)
*/
141 return feedRequest.getTags();
142 }
143
144 public class FeedEntriesPager extends WeblogEntriesListPager {
145
146 private WeblogFeedRequest feedRequest;
147
/*
P/P * Method: void org.apache.roller.weblogger.ui.rendering.model.FeedModel$FeedEntriesPager(FeedModel, WeblogFeedRequest)
*
* Preconditions:
* Param_1 != null
* Param_1.urlStrategy != null
* feedRequest != null
* (soft) org/apache/roller/weblogger/ui/rendering/model/FeedModel.DEFAULT_ENTRIES <= 232-2
* (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
*
* Postconditions:
* this.entries == &new ArrayList(getItems#1)
* this.feedRequest == feedRequest
* this.feedRequest != null
* init'ed(this.lastUpdated)
* this.length == org/apache/roller/weblogger/ui/rendering/model/FeedModel.DEFAULT_ENTRIES
* (soft) this.length <= 232-2
* init'ed(this.locale)
* init'ed(this.more)
* this.page >= 0
* init'ed(this.queryCat)
* ...
*/
148 public FeedEntriesPager(WeblogFeedRequest feedRequest) {
149 super(urlStrategy, urlStrategy.getWeblogFeedURL(feedRequest.getWeblog(),
150 feedRequest.getLocale(), feedRequest.getType(),
151 feedRequest.getFormat(), null, null, null, false, true),
152 feedRequest.getWeblog(), null, feedRequest.getWeblogCategoryName(), feedRequest.getTags(),
153 feedRequest.getLocale(), -1, feedRequest.getPage(), DEFAULT_ENTRIES);
154 this.feedRequest = feedRequest;
155 }
156
157 protected String createURL(String url, Map params) {
/*
P/P * Method: String createURL(String, Map)
*
* Preconditions:
* this.feedRequest != null
* (soft) params != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &java.lang.StringBuilder:toString(...)
*
* Test Vectors:
* java.lang.String:length(...)@163: {0}, {1..232-1}
* java.util.List:size(...)@159: {-231..0}, {1..232-1}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags(...)@158: Addr_Set{null}, Inverse{null}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName(...)@162: Addr_Set{null}, Inverse{null}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts(...)@166: {0}, {1}
*/
158 List tags = feedRequest.getTags();
159 if(tags != null && tags.size() > 0) {
160 params.put("tags", URLUtilities.getEncodedTagsString(tags));
161 }
162 String category = feedRequest.getWeblogCategoryName();
163 if(category != null && category.trim().length() > 0) {
164 params.put("cat", URLUtilities.encode(category));
165 }
166 if(feedRequest.isExcerpts()) {
167 params.put("excerpts", "true");
168 }
169 return super.createURL(url, params);
170 }
171
172 public String getUrl() {
/*
P/P * Method: String getUrl()
*
* Preconditions:
* this.feedRequest != null
* init'ed(this.url)
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &java.lang.StringBuilder:toString(...)
*/
173 return createURL(super.getUrl(), new HashMap());
174 }
175 }
176
177 public class FeedCommentsPager extends CommentsPager {
178
179 private WeblogFeedRequest feedRequest;
180
/*
P/P * Method: void org.apache.roller.weblogger.ui.rendering.model.FeedModel$FeedCommentsPager(FeedModel, WeblogFeedRequest)
*
* Preconditions:
* Param_1 != null
* Param_1.urlStrategy != null
* feedRequest != null
* (soft) org/apache/roller/weblogger/ui/rendering/model/FeedModel.DEFAULT_ENTRIES <= 232-2
* (soft) org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.log != null
*
* Postconditions:
* this.comments == &new ArrayList(getItems#1)
* this.feedRequest == feedRequest
* this.feedRequest != null
* init'ed(this.lastUpdated)
* this.length == org/apache/roller/weblogger/ui/rendering/model/FeedModel.DEFAULT_ENTRIES
* (soft) this.length <= 232-2
* init'ed(this.locale)
* init'ed(this.more)
* this.page >= 0
* this.sinceDays == -1
* ...
*/
181 public FeedCommentsPager(WeblogFeedRequest feedRequest) {
182 super(urlStrategy, urlStrategy.getWeblogFeedURL(feedRequest.getWeblog(),
183 feedRequest.getLocale(), feedRequest.getType(),
184 feedRequest.getFormat(), null, null,
185 null, false, true), feedRequest.getWeblog(), feedRequest.getLocale(), -1, feedRequest.getPage(), DEFAULT_ENTRIES);
186 this.feedRequest = feedRequest;
187 }
188
189 protected String createURL(String url, Map params) {
/*
P/P * Method: String createURL(String, Map)
*
* Preconditions:
* this.feedRequest != null
* (soft) params != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &java.lang.StringBuilder:toString(...)
*
* Test Vectors:
* java.lang.String:length(...)@195: {0}, {1..232-1}
* java.util.List:size(...)@191: {-231..0}, {1..232-1}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags(...)@190: Addr_Set{null}, Inverse{null}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName(...)@194: Addr_Set{null}, Inverse{null}
* org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts(...)@198: {0}, {1}
*/
190 List tags = feedRequest.getTags();
191 if(tags != null && tags.size() > 0) {
192 params.put("tags", URLUtilities.getEncodedTagsString(tags));
193 }
194 String category = feedRequest.getWeblogCategoryName();
195 if(category != null && category.trim().length() > 0) {
196 params.put("cat", URLUtilities.encode(category));
197 }
198 if(feedRequest.isExcerpts()) {
199 params.put("excerpts", "true");
200 }
201 return super.createURL(url, params);
202 }
203
204 public String getUrl() {
/*
P/P * Method: String getUrl()
*
* Preconditions:
* this.feedRequest != null
* init'ed(this.url)
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &java.lang.StringBuilder:toString(...)
*/
205 return createURL(super.getUrl(), new HashMap());
206 }
207 }
208 }
SofCheck Inspector Build Version : 2.18479
| FeedModel.java |
2009-Jan-02 14:25:44 |
| FeedModel.class |
2009-Sep-04 03:12:46 |
| FeedModel$FeedCommentsPager.class |
2009-Sep-04 03:12:46 |
| FeedModel$FeedEntriesPager.class |
2009-Sep-04 03:12:46 |