001    /**
002     * JDBM LICENSE v1.00
003     *
004     * Redistribution and use of this software and associated documentation
005     * ("Software"), with or without modification, are permitted provided
006     * that the following conditions are met:
007     *
008     * 1. Redistributions of source code must retain copyright
009     *    statements and notices.  Redistributions must also contain a
010     *    copy of this document.
011     *
012     * 2. Redistributions in binary form must reproduce the
013     *    above copyright notice, this list of conditions and the
014     *    following disclaimer in the documentation and/or other
015     *    materials provided with the distribution.
016     *
017     * 3. The name "JDBM" must not be used to endorse or promote
018     *    products derived from this Software without prior written
019     *    permission of Cees de Groot.  For written permission,
020     *    please contact cg@cdegroot.com.
021     *
022     * 4. Products derived from this Software may not be called "JDBM"
023     *    nor may "JDBM" appear in their names without prior written
024     *    permission of Cees de Groot.
025     *
026     * 5. Due credit should be given to the JDBM Project
027     *    (http://jdbm.sourceforge.net/).
028     *
029     * THIS SOFTWARE IS PROVIDED BY THE JDBM PROJECT AND CONTRIBUTORS
030     * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
031     * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
032     * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
033     * CEES DE GROOT OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
034     * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
035     * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
036     * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
037     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
038     * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
039     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
040     * OF THE POSSIBILITY OF SUCH DAMAGE.
041     *
042     * Copyright 2000 (C) Cees de Groot. All Rights Reserved.
043     * Copyright 2000-2001 (C) Alex Boisvert. All Rights Reserved.
044     * Contributions are Copyright (C) 2000 by their associated contributors.
045     *
046     * $Id: RecordManagerOptions.java,v 1.1 2002/05/31 06:33:20 boisvert Exp $
047     */
048    package jdbm;
049    
050    
051    /**
052     * Standard options for RecordManager.
053     *
054     * @author <a href="mailto:boisvert@intalio.com">Alex Boisvert</a>
055     * @author <a href="cg@cdegroot.com">Cees de Groot</a>
056     * @version $Id: RecordManagerOptions.java,v 1.1 2002/05/31 06:33:20 boisvert Exp $
057     */
058    public interface RecordManagerOptions
059    {
060        /** Option to create a thread-safe record manager. */
061        String PROVIDER_FACTORY = "jdbm.provider";
062    
063    
064        /** Option to create a thread-safe record manager. */
065        String THREAD_SAFE = "jdbm.threadSafe";
066    
067    
068        /** Option to automatically commit data after each operation. */
069        String AUTO_COMMIT = "jdbm.autoCommit";
070    
071    
072        /**
073         * Option to disable transaction (to increase performance at the cost of
074         * potential data loss).
075         */
076        String DISABLE_TRANSACTIONS = "jdbm.disableTransactions";
077    
078    
079        /** Cache type. */
080        String CACHE_TYPE = "jdbm.cache.type";
081    
082    
083        /** Cache size (when applicable) */
084        String CACHE_SIZE = "jdbm.cache.size";
085    
086    
087        /** Use normal (strong) object references for the record cache. */
088        String NORMAL_CACHE = "normal";
089    
090    
091        /**
092         * Use soft references {$link java.lang.ref.SoftReference} for the record
093         * cache instead of the default normal object references.
094         * <p>
095         * Soft references are cleared at the discretion of the garbage collector
096         * in response to memory demand.
097         */
098        String SOFT_REF_CACHE = "soft";
099    
100    
101        /**
102         * Use weak references {$link java.lang.ref.WeakReference} for the record
103         * cache instead of the default normal object references.
104         * <p>
105         * Weak references do not prevent their referents from being made
106         * finalizable, finalized, and then reclaimed.
107         */
108        String WEAK_REF_CACHE = "weak";
109    }