File Source: PreviewPageModel.java
/*
P/P * Method: org.apache.roller.weblogger.ui.rendering.model.PreviewPageModel__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.Map;
22 import org.apache.roller.weblogger.WebloggerException;
23 import org.apache.roller.weblogger.business.URLStrategy;
24 import org.apache.roller.weblogger.business.WebloggerFactory;
25 import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
26 import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesLatestPager;
27 import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesPager;
28 import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesPreviewPager;
29 import org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest;
30 import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
31
32
33 /**
34 * An extension of the PageModel to make some adjustments for previewing.
35 */
/*
P/P * Method: void org.apache.roller.weblogger.ui.rendering.model.PreviewPageModel()
*
* Postconditions:
* this.commentForm == null
* this.pageRequest == null
* this.previewRequest == null
* this.requestParameters == null
* this.urlStrategy == null
* this.weblog == null
*/
36 public class PreviewPageModel extends PageModel {
37
38 private WeblogPreviewRequest previewRequest = null;
39 private URLStrategy urlStrategy = null;
40
41
42 /**
43 * Init model.
44 */
45 public void init(Map initData) throws WebloggerException {
46
47 // we expect the init data to contain a weblogRequest object
/*
P/P * Method: void init(Map)
*
* Preconditions:
* initData != null
*
* Presumptions:
* java.util.Map:get(...)@48 != null
* java.util.Map:get(...)@81 != null
* org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@65 != null
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:instanceof(...)@55 == 1
*
* Postconditions:
* init'ed(this.commentForm)
* this.pageRequest != null
* (soft) this.previewRequest != null
* init'ed(this.requestParameters)
* init'ed(this.urlStrategy)
* init'ed(this.weblog)
*
* Test Vectors:
* java.util.Map:get(...)@63: Inverse{null}, Addr_Set{null}
*/
48 WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
49 if(weblogRequest == null) {
50 throw new WebloggerException("expected weblogRequest from init data");
51 }
52
53 // PreviewPageModel only works on preview requests, so cast weblogRequest
54 // into a WeblogPreviewRequest and if it fails then throw exception
55 if(weblogRequest instanceof WeblogPreviewRequest) {
56 this.previewRequest = (WeblogPreviewRequest) weblogRequest;
57 } else {
58 throw new WebloggerException("weblogRequest is not a WeblogPreviewRequest."+
59 " PreviewPageModel only supports preview requests.");
60 }
61
62 // look for url strategy
63 urlStrategy = (URLStrategy) initData.get("urlStrategy");
64 if(urlStrategy == null) {
65 urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
66 }
67
68 super.init(initData);
69 }
70
71
72 public boolean isPermalink() {
/*
P/P * Method: bool isPermalink()
*
* Preconditions:
* this.previewRequest != null
*
* Postconditions:
* init'ed(return_value)
*/
73 return (previewRequest.getPreviewEntry() != null ||
74 previewRequest.getWeblogAnchor() != null);
75 }
76
77
78 public WeblogEntryWrapper getWeblogEntry() {
79
/*
P/P * Method: WeblogEntryWrapper getWeblogEntry()
*
* Preconditions:
* this.previewRequest != null
*
* Postconditions:
* return_value in Addr_Set{null,&new WeblogEntryWrapper(wrap#1)}
* new WeblogEntryWrapper(wrap#1) num objects <= 1
* new WeblogEntryWrapper(wrap#1).pojo != null
* new WeblogEntryWrapper(wrap#1).urlStrategy == this.urlStrategy
* init'ed(new WeblogEntryWrapper(wrap#1).urlStrategy)
*
* Test Vectors:
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getPreviewEntry(...)@80: Inverse{null}, Addr_Set{null}
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getWeblogAnchor(...)@80: Addr_Set{null}, Inverse{null}
*/
80 if(previewRequest.getPreviewEntry() != null ||
81 previewRequest.getWeblogAnchor() != null) {
82 return WeblogEntryWrapper.wrap(previewRequest.getWeblogEntry(), urlStrategy);
83 }
84 return null;
85 }
86
87
88 /**
89 * Override method that returns pager so that we can introduce a custom
90 * pager for preview pages which can display things that we don't want
91 * available on the "live" weblog, like DRAFT entries.
92 */
93 public WeblogEntriesPager getWeblogEntriesPager(String catArgument) {
94
/*
P/P * Method: WeblogEntriesPager getWeblogEntriesPager(String)
*
* Preconditions:
* org/apache/roller/weblogger/util/I18nMessages.messagesMap != null
* this.previewRequest != null
* init'ed(this.urlStrategy)
* (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesLatestPager.log != null
*
* Presumptions:
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getLocale(...)@101 == null
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getLocale(...)@112 == null
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getWeblog(...)@101 != null
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getWeblog(...)@112 != null
*
* Postconditions:
* return_value in Addr_Set{&new WeblogEntriesLatestPager(getWeblogEntriesPager#2),&new WeblogEntriesPreviewPager(getWeblogEntriesPager#1)}
* new ArrayList(AbstractWeblogEntriesPager#1) num objects == 1
* new I18nMessages(getMessages#2) num objects <= 1
* possibly_updated(new I18nMessages(getMessages#2).bundle)
* possibly_updated(new I18nMessages(getMessages#2).locale)
* new Locale(AbstractWeblogEntriesPager#2) num objects == 0
* new Locale(AbstractWeblogEntriesPager#2)._tainted == 0
* new Locale(AbstractWeblogEntriesPager#3) num objects == 0
* new Locale(AbstractWeblogEntriesPager#3)._tainted == 0
* new TreeMap(getEntries#1) num objects <= 1
* ...
*
* Test Vectors:
* org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewRequest:getPreviewEntry(...)@95: Inverse{null}, Addr_Set{null}
*/
95 String anchor = previewRequest.getPreviewEntry();
96 if(anchor == null) {
97 anchor = previewRequest.getWeblogAnchor();
98 }
99
100 if (anchor != null) {
101 return new WeblogEntriesPreviewPager(
102 urlStrategy,
103 previewRequest.getWeblog(),
104 previewRequest.getLocale(),
105 previewRequest.getWeblogPageName(),
106 anchor,
107 previewRequest.getWeblogDate(),
108 null,
109 previewRequest.getTags(),
110 previewRequest.getPageNum());
111 } else {
112 return new WeblogEntriesLatestPager(
113 urlStrategy,
114 previewRequest.getWeblog(),
115 previewRequest.getLocale(),
116 previewRequest.getWeblogPageName(),
117 previewRequest.getWeblogAnchor(),
118 previewRequest.getWeblogDate(),
119 null,
120 previewRequest.getTags(),
121 previewRequest.getPageNum());
122 }
123
124 }
125
126 }
SofCheck Inspector Build Version : 2.18479
| PreviewPageModel.java |
2009-Jan-02 14:25:36 |
| PreviewPageModel.class |
2009-Sep-04 03:12:44 |