01: /*
02: (c) Copyright 2002, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: All rights reserved.
04: See end of file.
05:
06: $Id: CacheManager.java,v 1.9 2008/01/02 12:10:16 andy_seaborne Exp $
07: */
08: package com.hp.hpl.jena.util.cache;
09:
10: /** A factory for creating cache objects
11: *
12: * @author bwm
13: */
14:
15: public class CacheManager {
16:
17: public static final String RAND = "RAND";
18:
19: public static final String ENHNODECACHE = "ENHNODECACHE";
20:
21: /** Creates new Manager */
22: private CacheManager() {
23: }
24:
25: /** Create a new cache
26: * @param type The type of cache to create. This should be one
27: * of the standard cache types defined in this class.
28: * @param name A name for the cache. This should be unique and
29: * may be used to identify the cache in logging and
30: * other operations. To ensure uniqueness it is
31: * suggested that cache's be given names similar to
32: * full java names such as
33: * com.hp.hpl.jena.graph.Node.NodeCache.
34: * @param size Teh size of the cache in terms of the number of
35: * objects it can store.
36: * @return a newly created cache object
37: *
38: */
39: public static Cache createCache(String type, String name, int size) {
40: // for now we just have one type
41: if (type.equals(RAND))
42: return new RandCache(name, size);
43: if (type.equals(ENHNODECACHE))
44: return new EnhancedNodeCache(name, size);
45: throw new Error("Bad cache type: " + type);
46: }
47: }
48: /*
49: (c) Copyright 2002, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
50:
51: All rights reserved.
52:
53:
54: Redistribution and use in source and binary forms, with or without
55: modification, are permitted provided that the following conditions
56: are met:
57: 1. Redistributions of source code must retain the above copyright
58: notice, this list of conditions and the following disclaimer.
59: 2. Redistributions in binary form must reproduce the above copyright
60: notice, this list of conditions and the following disclaimer in the
61: documentation and/or other materials provided with the distribution.
62: 3. The name of the author may not be used to endorse or promote products
63: derived from this software without specific prior written permission.
64:
65: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
66: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
67: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
68: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
69: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
70: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
71: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
72: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
73: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
74: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75:
76: $Id: CacheManager.java,v 1.9 2008/01/02 12:10:16 andy_seaborne Exp $
77: */
|