Class Cache<Data extends Cacheable>
java.lang.Object
br.ufsc.labsec.commons.utils.cache.Cache<Data>
- Type Parameters:
Data- O tipo de objeto a ser armazenado
- All Implemented Interfaces:
Iterable<CacheEntry<Data>>
- Direct Known Subclasses:
AIACertsCache, AIAIntermediaryCache, PKCS12CertificateCollectionImpl, RevocationCache, SignaturePolicyCache
public abstract class Cache<Data extends Cacheable>
extends Object
implements Iterable<CacheEntry<Data>>
Esta classe é responsável por administrar objetos em cache,
armazenando-os em disco e em memória, e permitindo a sua recuperação através
da implementação do metodo
decodeEntry(byte[]).
A classe implementa a interface Iterable para permitir a iteração por todos os itens da cache.
Para evitar leituras desnecessárias em disco, é iterado sobre CacheEntry ao invés de Data, realizando
a leitura apenas quando o metodo CacheEntry.read(CacheSource.CacheDecoder) ()} é chamado.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancheckExpired(String cacheKey) Verifica se o objeto armazenado no cache deve ser removido (mais de 7 dias sem acesso)protected abstract DatadecodeEntry(byte[] encoded) Decodifica um objeto em cache a partir de seus bytesObtém um objeto da cache a partir de sua chavegetLastAccess(String key) booleanVerifica se um objeto está na cachebooleanVerifica se um objeto está na cache@NotNull Iterator<CacheEntry<Data>> iterator()voidvoidArmazena um objeto na cacheMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Field Details
-
source
-
-
Constructor Details
-
Cache
Construtor- Parameters:
source- A fonte de onde os objetos em cache serão carregados
-
-
Method Details
-
decodeEntry
Decodifica um objeto em cache a partir de seus bytes- Parameters:
encoded- Os bytes do objeto- Returns:
- O objeto decodificado
- Throws:
EncodingException- Exceção em caso de erro na decodificação
-
store
-
get
-
remove
-
getLastAccess
-
getSource
-
has
Verifica se um objeto está na cache- Parameters:
key- A chave de um objeto- Returns:
- Indica se o objeto está na cache
-
has
Verifica se um objeto está na cache- Parameters:
obj- O objeto a ser verificado- Returns:
- Indica se o objeto está na cache
-
checkExpired
Verifica se o objeto armazenado no cache deve ser removido (mais de 7 dias sem acesso)- Parameters:
cacheKey- A chave do objeto- Returns:
- Indica se o objeto deve ser removido
-
iterator
-