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

xyz.cofe.cbuffer.page.PageBuffersPropertyHolder Maven / Gradle / Ivy

There is a newer version: 2.0
Show newest version
package xyz.cofe.cbuffer.page;

import xyz.cofe.cbuffer.ContentBuffer;

import java.util.HashMap;
import java.util.Map;
import java.util.WeakHashMap;

/**
 * Хранит ссылки на данные и кэш
 * см {@link PageConf}
 */
public class PageBuffersPropertyHolder {
    private static final Map fastBuff
        = PageConf.fastWeakBufferReference() ? new WeakHashMap<>() : new HashMap<>();

    /**
     * Возвращает данные кэша страниц
     * @param inst Экземпляр {@link ContentBuffer}
     * @return данные кэша страниц
     */
    public static ContentBuffer getFastBuffer(PageBuffers inst){
        if( inst==null ) throw new IllegalArgumentException("inst==null");
        return fastBuff.get(inst);
    }

    /**
     * Устанавливает данные кэша страниц
     * @param inst Экземпляр {@link ContentBuffer}
     * @param buff данные кэша страниц
     */
    public static void setFastBuffer(PageBuffers inst, ContentBuffer buff){
        if( inst==null ) throw new IllegalArgumentException("inst==null");
        fastBuff.put(inst, buff);
    }

    private static final Map slowBuff
        = PageConf.slowWeakBufferReference() ? new WeakHashMap<>() : new HashMap<>();

    /**
     * Возвращает данные страниц
     * @param inst Экземпляр {@link ContentBuffer}
     * @return данные страниц
     */
    public static ContentBuffer getSlowBuffer(PageBuffers inst){
        if( inst==null ) throw new IllegalArgumentException("inst==null");
        return slowBuff.get(inst);
    }

    /**
     * Устанавливает данные страниц
     * @param inst Экземпляр {@link ContentBuffer}
     * @param buff данные страниц
     */
    public static void getSlowBuffer(PageBuffers inst, ContentBuffer buff){
        if( inst==null ) throw new IllegalArgumentException("inst==null");
        slowBuff.put(inst,buff);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy