All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bonitasoft.engine.cache.CacheConfiguration Maven / Gradle / Ivy

/**
 * Copyright (C) 2012 BonitaSoft S.A.
 * BonitaSoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.cache;

/**
 * @author Emmanuel Duchastenier
 */
public class CacheConfiguration {

    protected long timeToLiveSeconds = 60 * 60;

    protected int maxElementsInMemory = 10000;

    protected int maxElementsOnDisk = 20000;

    protected boolean inMemoryOnly = false;

    protected boolean eternal = false;

    /**
     * true if the elements are never evicted automatically
     * 
     * @return the eternal
     */
    public boolean isEternal() {
        return eternal;
    }

    /**
     * @param eternal
     *            the eternal to set
     */
    public void setEternal(final boolean eternal) {
        this.eternal = eternal;
    }

    /**
     * The time to live is the time elements from this cache will be kept.
     * After this time the element can be evicted
     * 
     * @return the timeToLiveSeconds
     */
    public long getTimeToLiveSeconds() {
        return timeToLiveSeconds;
    }

    /**
     * the maximum number of element the cache will keep in memory
     * 
     * @return the maxElementsInMemory
     */
    public int getMaxElementsInMemory() {
        return maxElementsInMemory;
    }

    /**
     * the maximum number of element the cache will keep on disk after the limite of element in memory is reached
     * 
     * @return the maxElementsOnDisk
     */
    public int getMaxElementsOnDisk() {
        return maxElementsOnDisk;
    }

    /**
     * if true nothing is stored on disk
     * 
     * @return the inMemoryOnly
     */
    public boolean isInMemoryOnly() {
        return inMemoryOnly;
    }

    /**
     * @param timeToLiveSeconds
     *            the timeToLiveSeconds to set
     */
    public void setTimeToLiveSeconds(final long timeToLiveSeconds) {
        this.timeToLiveSeconds = timeToLiveSeconds;
    }

    /**
     * @param maxElementsInMemory
     *            the maxElementsInMemory to set
     */
    public void setMaxElementsInMemory(final int maxElementsInMemory) {
        this.maxElementsInMemory = maxElementsInMemory;
    }

    /**
     * @param maxElementsOnDisk
     *            the maxElementsOnDisk to set
     */
    public void setMaxElementsOnDisk(final int maxElementsOnDisk) {
        this.maxElementsOnDisk = maxElementsOnDisk;
    }

    /**
     * @param inMemoryOnly
     *            the inMemoryOnly to set
     */
    public void setInMemoryOnly(final boolean inMemoryOnly) {
        this.inMemoryOnly = inMemoryOnly;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy