File Source: ExpiringLRUCacheFactoryImpl.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  package org.apache.roller.weblogger.util.cache;
    20  
    21  import java.util.Map;
    22  import org.apache.commons.logging.Log;
    23  import org.apache.commons.logging.LogFactory;
    24  
    25  
    26  /**
    27   * Roller Expiring LRU cache factory.
    28   */
    29  public class ExpiringLRUCacheFactoryImpl implements CacheFactory {
    30      
             /* 
    P/P       *  Method: org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl__static_init
              * 
              *  Postconditions:
              *    init'ed(log)
              */
    31      private static Log log = LogFactory.getLog(ExpiringLRUCacheFactoryImpl.class);
    32      
    33      
    34      // protected so only the CacheManager can instantiate us
             /* 
    P/P       *  Method: void org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl()
              */
    35      protected ExpiringLRUCacheFactoryImpl() {}
    36      
    37      
    38      /**
    39       * Construct a new instance of a Roller Expiring LRUCache.
    40       */
    41      public Cache constructCache(Map properties) {
    42          
                 /* 
    P/P           *  Method: Cache constructCache(Map)
                  * 
                  *  Preconditions:
                  *    log != null
                  *    properties != null
                  * 
                  *  Presumptions:
                  *    java.lang.Integer:parseInt(...)@48 in -1_610_612_737..3_221_225_471
                  *    java.lang.Long:parseLong(...)@54 <= 18_446_744_073_709_551
                  * 
                  *  Postconditions:
                  *    return_value == &new ExpiringLRUCacheImpl(constructCache#1)
                  *    new Date(LRUCacheImpl#1) num objects == 1
                  *    new ExpiringLRUCacheImpl(constructCache#1) num objects == 1
                  *    init'ed(return_value.cache)
                  *    return_value.hits == +0
                  *    return_value.misses == +0
                  *    return_value.puts == +0
                  *    return_value.removes == +0
                  *    return_value.id != null
                  *    return_value.startTime == &new Date(LRUCacheImpl#1)
                  *    ...
                  * 
                  *  Test Vectors:
                  *    java.util.Map:get(...)@59: Addr_Set{null}, Inverse{null}
                  */
    43          int size = 100;
    44          long timeout = 15 * 60;
    45          String id = "unknown";
    46          
    47          try {
    48              size = Integer.parseInt((String) properties.get("size"));
    49          } catch(Exception e) {
    50              // ignored
    51          }
    52          
    53          try {
    54              timeout = Long.parseLong((String) properties.get("timeout"));
    55          } catch(Exception e) {
    56              // ignored
    57          }
    58          
    59          String cacheId = (String) properties.get("id");
    60          if(cacheId != null) {
    61              id = cacheId;
    62          }
    63          
    64          Cache cache = new ExpiringLRUCacheImpl(id, size, timeout);
    65          
    66          log.debug("new cache constructed. size="+size+", timeout="+timeout);
    67          
    68          return cache;
    69      }
    70      
    71  }








SofCheck Inspector Build Version : 2.18479
ExpiringLRUCacheFactoryImpl.java 2009-Jan-02 14:24:48
ExpiringLRUCacheFactoryImpl.class 2009-Sep-04 03:12:32