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