File Source: ReferrerProcessingJob.java

     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   * ReferrerProcessingJob.java
    20   *
    21   * Created on December 16, 2005, 6:26 PM
    22   */
    23  
    24  package org.apache.roller.weblogger.business.referrers;
    25  
    26  import java.util.HashMap;
    27  import java.util.Map;
    28  import org.apache.commons.logging.Log;
    29  import org.apache.commons.logging.LogFactory;
    30  import org.apache.roller.weblogger.WebloggerException;
    31  import org.apache.roller.weblogger.business.runnable.Job;
    32  import org.apache.roller.weblogger.business.referrers.RefererManager;
    33  import org.apache.roller.weblogger.business.WebloggerFactory;
    34  
    35  
    36  /**
    37   * A simple Job which processes an IncomingReferrer.
    38   *
    39   * @author Allen Gilliland
    40   */
    41  public class ReferrerProcessingJob implements Job {
    42      
             /* 
    P/P       *  Method: org.apache.roller.weblogger.business.referrers.ReferrerProcessingJob__static_init
              * 
              *  Postconditions:
              *    init'ed(mLogger)
              */
    43      private static Log mLogger = LogFactory.getLog(ReferrerProcessingJob.class);
    44      
    45      Map inputs = null;
    46      IncomingReferrer referrer = null;
    47      
             /* 
    P/P       *  Method: void org.apache.roller.weblogger.business.referrers.ReferrerProcessingJob()
              * 
              *  Postconditions:
              *    this.inputs == null
              *    this.referrer == null
              */
    48      public ReferrerProcessingJob() {}
    49      
    50      
    51      /**
    52       * Execute job.
    53       *
    54       * We simply pass the referrer into the RefererManager to handle the details.
    55       */
    56      public void execute() {
    57          
                 /* 
    P/P           *  Method: void execute()
                  * 
                  *  Preconditions:
                  *    init'ed(this.referrer)
                  *    (soft) mLogger != null
                  *    (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
                  *    (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
                  *    (soft) org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.log != null
                  *    (soft) org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.log != null
                  *    (soft) org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.log != null
                  *    (soft) org/apache/roller/weblogger/config/WebloggerRuntimeConfig.log != null
                  *    (soft) init'ed(this.referrer.referrerUrl)
                  *    (soft) init'ed(this.referrer.requestUrl)
                  *    ...
                  * 
                  *  Presumptions:
                  *    getWeblogger(...).refererManager != null
                  *    getWeblogger(...).strategy != null
                  *    getWeblogger(...).strategy.emf != null
                  *    getWeblogger(...).strategy.threadLocalEntityManager != null
                  *    refMgr.roller != null
                  *    ...
                  * 
                  *  Test Vectors:
                  *    this.referrer: Inverse{null}, Addr_Set{null}
                  */
    58          if(this.referrer == null)
    59              return;
    60          
    61          mLogger.debug("PROCESSING: "+referrer.getRequestUrl());
    62          
    63          // process a referrer
    64          try {
    65              RefererManager refMgr = WebloggerFactory.getWeblogger().getRefererManager();
    66              refMgr.processReferrer(referrer.getRequestUrl(),
    67                                     referrer.getReferrerUrl(),
    68                                     referrer.getWeblogHandle(),
    69                                     referrer.getWeblogAnchor(),
    70                                     referrer.getWeblogDateString());
    71              
    72              WebloggerFactory.getWeblogger().flush();
    73          } catch(WebloggerException re) {
    74              // trouble
    75              mLogger.warn("Trouble processing referrer", re);
    76          }
    77      }
    78      
    79      
    80      /**
    81       * Set input.
    82       */
    83      public void input(Map input) {
                 /* 
    P/P           *  Method: void input(Map)
                  * 
                  *  Preconditions:
                  *    input != null
                  * 
                  *  Postconditions:
                  *    this.inputs == input
                  *    this.inputs != null
                  *    possibly_updated(this.referrer)
                  */
    84          this.inputs = input;
    85          
    86          // we are looking for the "referrer" key
    87          Object ref = input.get("referrer");
    88          
    89          if(ref instanceof IncomingReferrer) {
    90              this.referrer = (IncomingReferrer) ref;
    91          }
    92      }
    93      
    94      
    95      /**
    96       * Get output.
    97       */
    98      public Map output() {
    99          
                 /* 
    P/P           *  Method: Map output()
                  * 
                  *  Postconditions:
                  *    return_value == null
                  */
   100          return null;
   101      }
   102      
   103  }








SofCheck Inspector Build Version : 2.18479
ReferrerProcessingJob.java 2009-Jan-02 14:25:36
ReferrerProcessingJob.class 2009-Sep-04 03:12:31