|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractMap<K,V>
java.util.HashMap<K,V>
net.ranides.assira.collection.map.LazyMap<K,V>
K - V - public abstract class LazyMap<K,V>
Mapa, która nie zwraca null, w przypadku, gdy mapowanie nie istnieje, lecz
tworząca nowe wiązanie na żądanie. Może tworzyć wiązania dopiero podczas odczytu
klucza (np metodą "get") albo natychmiast po wywołaniu metody containsKey.
Domyślnie kolekcja stara się ograniczyć tworzenie i niszczenie obiektów - raz utworzony obiekt jest zapisywany do mapy. Nawet po jego usunięciu jest przez pewien czas nadal przechowywany w pamięci podręcznej, i przywracany w razie potrzeby.
Z tego powodu klasa dobrze sprawdza się jako bufor pośredni pomiędzy zewnętrznymi wolnymi źródłami danych.
Uwaga! Jeśli mapa przechowuje wartości, które mogą zmieniać stan, lepiej wyłączyć pamięć podręczną, ponieważ usunięte elementy w późniejszym czasie mogą zostać przywrócone ze starym stanem.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.util.AbstractMap |
|---|
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V> |
| Constructor Summary | |
|---|---|
LazyMap()
Tworzy nową mapę z argumentami instant=true oraz cachesize = 32 |
|
LazyMap(boolean instant,
int cachesize)
Tworzy nową mapę z określoną strategią tworzenia obiektów oraz określonym rozmiarem pamięci podręcznej. |
|
| Method Summary | ||
|---|---|---|
void |
clear()
|
|
void |
clear(boolean flush)
Czyści zawartość mapy oraz pamięci podręcznej (jeśli argument flush
równy true. |
|
boolean |
containsKey(Object key)
|
|
boolean |
containsValue(Object value)
|
|
V |
get(Object key)
|
|
static
|
makeInstance(boolean instant,
Class<?> value)
Tworzy nową mapę, która w razie potrzeby tworzy nowe obiekty podanej klasy za pomocą konstruktora domyślnego. |
|
static
|
makeInstance(Class<?> value)
Tworzy nową mapę, która w razie potrzeby tworzy nowe obiekty podanej klasy za pomocą konstruktora domyślnego. |
|
V |
remove(Object key)
|
|
| Methods inherited from class java.util.HashMap |
|---|
clone, entrySet, isEmpty, keySet, put, putAll, size, values |
| Methods inherited from class java.util.AbstractMap |
|---|
equals, hashCode, toString |
| Methods inherited from class java.lang.Object |
|---|
getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface net.ranides.assira.generic.Function |
|---|
apply |
| Methods inherited from interface java.util.Map |
|---|
equals, hashCode |
| Constructor Detail |
|---|
public LazyMap()
instant=true oraz cachesize = 32
public LazyMap(boolean instant,
int cachesize)
instant - decyduje o tym, kiedy zostanie wysłane żądanie utworzenia
nowego powiązania.
Jeśli wartość równa true, to funkcja
stara się załadować obiekt i zwrócić true, jeśli tylko otrzymany wynik
będzie różny od null. Jeśli argument jest ustawiony na false
metoda contains zwraca informację na temat aktualnej zawartości
w mapie - jeśli klucz nie instnieje, to nie próbuje doładowywać danych.
Bez względu na wartość argumentu, metoda get zawsze stara się doładować
obiekt, jeśli powiązanie nie znajduje się w mapie.
cachesize - rozmiar pamięci podręcznej na usunięte elementy.
Klasa stara się minimalizować ilość wywołań funkcji łądującej dane. W pamięci podręcznej są przechowywane obiekty, które usunięto z mapy, ale które mogą zostać przywrócone, jeśli nastapi żądanie ich odczytu.
Jeśli argument = 0, to pamięć podręczna jest wyłączona
| Method Detail |
|---|
public boolean containsKey(Object key)
containsKey in interface Map<K,V>containsKey in class HashMap<K,V>public V get(Object key)
get in interface Map<K,V>get in class HashMap<K,V>public boolean containsValue(Object value)
containsValue in interface Map<K,V>containsValue in class HashMap<K,V>public V remove(Object key)
remove in interface Map<K,V>remove in class HashMap<K,V>public void clear()
clear in interface Map<K,V>clear in class HashMap<K,V>public void clear(boolean flush)
flush
równy true. Należy zwrócić uwagę, że zwykła metoda clear()
nie czyści pamięci podręcznej, lecz stara się do niej przenieść tak wiele
ostatnio używanych elementów, jak to możliwe.
flush - czy wyczyścić również pamięć podręcznąpublic static <K,V> LazyMap<K,V> makeInstance(Class<?> value)
instant = true, zaś
pamięć podręczna jest oczywiście wyłączona.
K - V - value -
public static <K,V> LazyMap<K,V> makeInstance(boolean instant,
Class<?> value)
K - V - instant - value -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||