palio.modules
Class Cache

java.lang.Object
  extended by palio.modules.core.Module
      extended by palio.modules.Cache
All Implemented Interfaces:
palio.modules.core.CurrentModuleDataKeys

public class Cache
extends palio.modules.core.Module

Moduł pozwala na buforowanie często używanych danych, np.: słowniki pobierane z bazy danych i prezentowane w formularzach.
Po zainicjalizowaniu modułu mamy do dyspozycji bufor (cache) ogólny typu SIMPLE (zestaw funkcji w których nie podaje się nazwy bufora). Do buforowania większej ilości danych możemy tworzyć następne bufory. Dostępne są następujące typy buforów:

Bufory są powiązane z instancją palio - nie ma wymiany informacji pomiędzy instancjami. Dobrą praktyką tworzenia i odświeżania buforów jest użycie zadań z modułu Scheduler.

UWAGA: moduł nie jest przygotowany do pracy w konfiguracji klastrowej!

Moduł jest dostępny w każdej instancji jPalio.

Version:
1.3.2
Author:
Mateusz Gembarzewski

Field Summary
 
Fields inherited from interface palio.modules.core.CurrentModuleDataKeys
DESIGNER_ACTIONS_BUFFER, HTML_FORM_BUILDER, HTML_MAP_BUILDER, HTML_MENU_BUILDER, HTML_TOOLTIPS_BUFFER, ITEXT_DOCUMENT, MAIL_MESSAGE, XLS_DOCUMENT, XML_DOCUMENT
 
Constructor Summary
Cache(palio.Instance instance, java.util.Properties parameters)
           
 
Method Summary
 void clear()
          Wyczyszczenie bufora ogólnego.
 void clear(java.lang.String cacheName)
          Wyczyszczenie bufora o podanej nazwie (bez kasowania tego bufora).
 void clearAll()
          Czyści bufor główny i kasuje bufory użytkownika.
 void clearUserCaches()
          Czyści wszystkie bufory użytkownika (bez kasowania ich).
 java.lang.Boolean containsKey(java.lang.Object key)
          Sprawdza czy w buforze ogólnym jest już przechowywany podany klucz.
 java.lang.Boolean containsKey(java.lang.String cacheName, java.lang.Object key)
          Sprawdza czy w danym buforze jest już przechowywany podany klucz.
 void createCache(java.lang.String cacheName, java.lang.String type, java.lang.Object[] cacheParams)
          Deprecated. metoda zostala zastapiona przez: createFastCache(String), createSimpleCache(String), createVolumeCache(String, Long)
 void createFastCache(java.lang.String cacheName)
          Tworzy nowy bufor typu FAST.
 void createSimpleCache(java.lang.String cacheName)
          Tworzy nowy bufor typu SIMPLE.
 void createVolumeCache(java.lang.String cacheName, java.lang.Long capacity)
          Tworzy nowy bufor typu VOLUME.
 void deleteCache(java.lang.String cacheName)
          Usuwa bufor o podanej nazwie z listy buforów użytkownika.
 java.lang.Object get(java.lang.Object key)
          Podaje wartość trzymaną pod danym kluczem.
 java.lang.Object get(java.lang.String cacheName, java.lang.Object key)
          Pobiera obiekt z bufora o podanej nazwie.
 palio.modules.cache.Cache getCache()
          Zwraca bufor główny.
 palio.modules.cache.Cache getCache(java.lang.String cacheName)
          Zwraca bufor użytkownika.
 java.lang.Object[] getCacheKeys()
          Zwraca listę kluczy przechowywanych w buforze głównym.
 java.lang.Object[] getCacheKeys(java.lang.String cacheName)
          Zwraca listę kluczy przechowywanych w podanym buforze.
 java.lang.Long getElementCount()
          Zwraca ilość elementów aktualnie przechowywanych w buforze ogólnym.
 java.lang.Long getElementCount(java.lang.String cacheName)
          Zwraca ilość elementów aktualnie przechowywanych w podanym buforze.
 java.lang.Long getUserCacheCount()
          Zwraca ilość stworzonych buforów uzytkownika.
 java.lang.Object[] getUserCacheNames()
          Zwraca listę stworzonych buforów uzytkownika.
 java.lang.String getVersion()
          Returns the module version
 java.lang.Boolean isCacheCreated(java.lang.String cacheName)
          Sprawdza, czy bufor o podanej nazwie istnieje.
 void put(java.lang.Object key, java.lang.Object value)
          Dodaje obiekt value do ogólnego bufora.
 void put(java.lang.String cacheName, java.lang.Object key, java.lang.Object value)
          Dodaje obiekt value do bufora o podanej nazwie.
 void putAll(java.util.Map map)
          Dodaje zestaw wartości do ogólnego bufora.
 void putAll(java.lang.String cacheName, java.util.Map<java.lang.Object,java.lang.Object> map)
          Dodaje zestaw wartości do bufora o podanej nazwie.
 void remove(java.lang.Object key)
          Usuwa obiekt z bufora ogólnego.
 void remove(java.lang.String cacheName, java.lang.Object key)
          Usuwa obiekt z bufora o podanej nazwie.
 
Methods inherited from class palio.modules.core.Module
getConfigParam, getDescription, getModuleTranslation
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Cache

public Cache(palio.Instance instance,
             java.util.Properties parameters)
Method Detail

createCache

@Deprecated
public void createCache(java.lang.String cacheName,
                                   java.lang.String type,
                                   java.lang.Object[] cacheParams)
                 throws palio.PalioException
Deprecated. metoda zostala zastapiona przez: createFastCache(String), createSimpleCache(String), createVolumeCache(String, Long)

Tworzy nowy bufor.
Bufor typu FAST nie przyjmuje parametrów - można podać null lub pustą tablicę.
Bufor typu SIMPLE nie przyjmuje parametrów - można podać null lub pustą tablicę.
Bufor typu VOLUME przyjmuje jeden parametr: maksymalna pojemność (ilość przechowywanych elementów).

Parameters:
cacheName - nazwa dla bufora (musi być unikalna w obrębie instancji)
type - typ bufora: SIMPLE, FAST, VOLUME
cacheParams - parametry bufora
Throws:
palio.PalioException - "cache exists" - jeżeli bufor o podanej nazwie już istnieje
See Also:
createFastCache(String), createSimpleCache(String), createVolumeCache(String, Long)

getVersion

public java.lang.String getVersion()
Description copied from class: palio.modules.core.Module
Returns the module version

Specified by:
getVersion in class palio.modules.core.Module

createSimpleCache

public void createSimpleCache(java.lang.String cacheName)
Tworzy nowy bufor typu SIMPLE.
Synchronizacja bufora typu SIMPLE opiera się o klasę ReentrantReadWriteLock i zapewnia pełną synchronizację pomiędzy metodami.
Jeżeli bufor o podanej nazwie już istnieje metoda kończy działanie bez rzucania wyjątku.

Parameters:
cacheName - nazwa dla bufora (musi być unikalna w obrębie instancji)

createFastCache

public void createFastCache(java.lang.String cacheName)
Tworzy nowy bufor typu FAST.
Implementacja bufora typu FAST oparta jest o klasę ConcurrentHashMap i zapewnia poprawne działanie w środowisku wielowątkowym, ale nie daje pełnej synchronizacji.
Jeżeli bufor o podanej nazwie już istnieje metoda kończy działanie bez rzucania wyjątku.

UWAGA: bufor typu FAST nie obsługuje klucza ani wartości null!

Parameters:
cacheName - nazwa dla bufora (musi być unikalna w obrębie instancji)

createVolumeCache

public void createVolumeCache(java.lang.String cacheName,
                              java.lang.Long capacity)
Tworzy nowy bufor typu VOLUME.
Bufor typu VOLUME ma określoną pojemność. Dodanie kolejnego elementu do pełnego bufora powoduje usunięcie najdawniej dodanego/pobranego elementu.
Jeżeli bufor o podanej nazwie już istnieje metoda kończy działanie bez rzucania wyjątku.

Parameters:
cacheName - nazwa dla bufora (musi być unikalna w obrębie instancji)
capacity - maksymalna pojemność bufora

getCache

public palio.modules.cache.Cache getCache()
Zwraca bufor główny.
Pozwala na szybsze operowanie na buforze (z pominięciem metod modułu Cache).

Returns:
bufor główny

getCache

public palio.modules.cache.Cache getCache(java.lang.String cacheName)
Zwraca bufor użytkownika.
Pozwala na dużo szybsze operowanie na buforze (z pominięciem metod modułu Cache).

Parameters:
cacheName - nazwa bufora
Returns:
bufor główny

deleteCache

public void deleteCache(java.lang.String cacheName)
Usuwa bufor o podanej nazwie z listy buforów użytkownika.

Parameters:
cacheName - nazwa bufora

isCacheCreated

public java.lang.Boolean isCacheCreated(java.lang.String cacheName)
Sprawdza, czy bufor o podanej nazwie istnieje.

Parameters:
cacheName - nazwa bufora
Returns:
true - jeżeli bufor istnieje, false - jeżeli nie istnieje

put

public void put(java.lang.Object key,
                java.lang.Object value)
Dodaje obiekt value do ogólnego bufora.

Parameters:
key - klucz obiektu
value - wartość

put

public void put(java.lang.String cacheName,
                java.lang.Object key,
                java.lang.Object value)
Dodaje obiekt value do bufora o podanej nazwie.

UWAGA: bufor typu FAST nie obsługuje klucza ani wartości null!

Parameters:
cacheName - nazwa bufora
key - klucz
value - wartość

putAll

public void putAll(java.util.Map map)
Dodaje zestaw wartości do ogólnego bufora.

Parameters:
map - mapa wartości do dodania

putAll

public void putAll(java.lang.String cacheName,
                   java.util.Map<java.lang.Object,java.lang.Object> map)
Dodaje zestaw wartości do bufora o podanej nazwie.

UWAGA: bufor typu FAST nie obsługuje klucza ani wartości null!

Parameters:
cacheName - nazwa bufora
map - mapa wartości do dodania

get

public java.lang.Object get(java.lang.Object key)
Podaje wartość trzymaną pod danym kluczem.
Dla klucza null zwraca zawsze wartość null.

Parameters:
key - klucz obiektu
Returns:
obiekt z bufora ogólnego

get

public java.lang.Object get(java.lang.String cacheName,
                            java.lang.Object key)
Pobiera obiekt z bufora o podanej nazwie.
Dla klucza null zwraca zawsze wartość null.

Parameters:
cacheName - nazwa bufora
key - klucz obiektu
Returns:
obiekt z podanego bufora

remove

public void remove(java.lang.Object key)
Usuwa obiekt z bufora ogólnego.

Parameters:
key - klucz obiektu

remove

public void remove(java.lang.String cacheName,
                   java.lang.Object key)
Usuwa obiekt z bufora o podanej nazwie.

UWAGA: bufor typu FAST nie obsługuje klucza ani wartości null!

Parameters:
cacheName - nazwa bufora
key - klucz obiektu

clear

public void clear()
Wyczyszczenie bufora ogólnego.


clear

public void clear(java.lang.String cacheName)
Wyczyszczenie bufora o podanej nazwie (bez kasowania tego bufora).

Parameters:
cacheName - nazwa bufora

clearAll

public void clearAll()
Czyści bufor główny i kasuje bufory użytkownika.
UWAGA: Używane bufory (oprócz głównego) trzeba stworzyć ponownie!


clearUserCaches

public void clearUserCaches()
Czyści wszystkie bufory użytkownika (bez kasowania ich).


containsKey

public java.lang.Boolean containsKey(java.lang.Object key)
Sprawdza czy w buforze ogólnym jest już przechowywany podany klucz.

Parameters:
key - klucz obiektu
Returns:
true - jeżeli w buforze ogólnym jest trzymany podany klucz

containsKey

public java.lang.Boolean containsKey(java.lang.String cacheName,
                                     java.lang.Object key)
Sprawdza czy w danym buforze jest już przechowywany podany klucz.

UWAGA: bufor typu FAST nie obsługuje klucza ani wartości null!

Parameters:
cacheName - nazwa bufora
key - klucz obiektu
Returns:
true - jeżeli w podanym buforze jest trzymany podany klucz

getElementCount

public java.lang.Long getElementCount()
Zwraca ilość elementów aktualnie przechowywanych w buforze ogólnym.

Returns:
ilość elementów przechowywanych w buforze

getElementCount

public java.lang.Long getElementCount(java.lang.String cacheName)
Zwraca ilość elementów aktualnie przechowywanych w podanym buforze.

Parameters:
cacheName - nazwa bufora
Returns:
ilość elementów przechowywanych w buforze

getUserCacheCount

public java.lang.Long getUserCacheCount()
Zwraca ilość stworzonych buforów uzytkownika. Nie uwzgldnia bufora głównego.

Returns:
ilość stworzonych buforów uzytkownika

getUserCacheNames

public java.lang.Object[] getUserCacheNames()
Zwraca listę stworzonych buforów uzytkownika. Nie uwzgldnia bufora głównego.

Returns:
lista stworzonych buforów uzytkownika

getCacheKeys

public java.lang.Object[] getCacheKeys()
Zwraca listę kluczy przechowywanych w buforze głównym.

Returns:
lista kluczy bufora głównego
Since:
module 1.3.1, jPALIO 7.2.33

getCacheKeys

public java.lang.Object[] getCacheKeys(java.lang.String cacheName)
Zwraca listę kluczy przechowywanych w podanym buforze.

Parameters:
cacheName - nazwa bufora
Returns:
lista kluczy bufora
Since:
module 1.3.1, jPALIO 7.2.33