Index: topia-security/src/java/org/codelutin/topia/security/util/TopiaSecurityCaching.java diff -u topia-security/src/java/org/codelutin/topia/security/util/TopiaSecurityCaching.java:1.2 topia-security/src/java/org/codelutin/topia/security/util/TopiaSecurityCaching.java:1.3 --- topia-security/src/java/org/codelutin/topia/security/util/TopiaSecurityCaching.java:1.2 Thu Oct 5 07:49:44 2006 +++ topia-security/src/java/org/codelutin/topia/security/util/TopiaSecurityCaching.java Thu Oct 5 14:21:27 2006 @@ -24,25 +24,46 @@ import org.apache.commons.collections.map.ReferenceMap; +/** + * La classe permet d'avoir un ensemble de clés pour identifier de manière unique une valeur. + * @author ruchaud + */ public class TopiaSecurityCaching { /** - * Le niveau correspond au nombre d'imbrication de ReferenceMap + * Le niveau correspond au nombre d'éléments de la clé + */ + protected int level; + + /** + * Map pour le stockage du première niveau */ - protected int niveau; protected ReferenceMap map; - public TopiaSecurityCaching(int niveau) { - this.niveau = niveau; + /** + * Contruit un TopiaSecurityCaching en précisant le nombre d'élément de la clé + * @param level nombre d'élément de la clé, doit être suppérieur à 0 + */ + public TopiaSecurityCaching(int level) { + this.level = level; map = new ReferenceMap(SOFT, SOFT); } + /** + * Contruit un TopiaSecurityCaching avec un nombre d'élément de la clé par + * défaut à 1 + */ public TopiaSecurityCaching() { this(1); } + /** + * Permet de stocker la valeur pour une clé donnée. + * @param value valeur à stocker + * @param keys clé de la valeur + */ public void put(Object value, Object ... keys) { - if(keys.length != niveau) { + if(keys.length != level) { throw new ArrayIndexOutOfBoundsException(); } @@ -59,6 +80,10 @@ current.put(keys[keys.length - 1], value); } + /** + * Permet de supprimer une valeur pour une clé donnée. + * @param keys clé de la valeur + */ public void clear(Object ... keys) { ReferenceMap current = map; for (int i = 0; i < keys.length -1 ; i++) { @@ -73,8 +98,14 @@ current.clear(); } + /** + * Permet de récupérer une valeur pour une clé donnée. + * @param keys clé de la valeur + * @return valeur stocké pour la clé donnée retourne null si la clé n'est pas + * valide + */ public Object get(Object ... keys) { - if(keys.length != niveau) { + if(keys.length != level) { throw new ArrayIndexOutOfBoundsException(); }