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 |