jfb.tools.activitymgr.report
Class PropertiesHelper

java.lang.Object
  extended by jfb.tools.activitymgr.report.PropertiesHelper
All Implemented Interfaces:
java.util.Map

public class PropertiesHelper
extends java.lang.Object
implements java.util.Map

Classe offrant des services d'accès aux propriétés de configuration pour la génération de rapports avec Velocity.

Pour Velocity, une variable de type ${a.b} peut vouloir dire au choix :

On exploite la deuxième possibilité pour rendre 'visible' une propriété définie dans le fichier de configuration des rapports dans un template velocity. Une instance de PropertiesHelper est enregistrée dans le contexte velocity sous le nom props. Comme cette classe implémente l'interface java.util.Map, Velocity invoque la méthode get(String) en lui passant en argument la chaine aussitot placée après props.. La fin de la propriété est marquée par l'invocation de la méthode get().

Il est supposé que les propriétés contenues dans le fichier de configuration et accédées depuis les templates Velocity sont préfixées par :
reports.<reportId> ou reportId désigne l'identifiant du rapport.

Exemple : ${props.startYear.get()} pour le rapport dont l'identifiant est myReport va référencer la propriété reports.myReport.startYear dans le fichier de configuration. Si cette propriété n'est pas définie, le moteur regarde ensuite tour à tour les propriétés reports.startYear et startYear. Si toutes ces propriétés sont indéfinies, une exception est levée.

Dans le cas ou le nom de la propriété est composée (ex : start.year), la méthode get retourne l'instance de PropertiesHelper et la première partie du nom de la propriété est déposée sur la pile. Lors de l'invocation suivante, les différentes parties du nom de la propriété sont réassemblées pour former le nom de la propriété dans son ensemble.

Pour cette raison, cette classe n'est pas thread safe.

See Also:
ReportMgr

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry
 
Constructor Summary
PropertiesHelper(java.lang.String reportId, java.util.Properties props)
          Constructeur par défaut.
 
Method Summary
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 java.util.Set entrySet()
           
 java.lang.String get()
          Retourne la valeur de la propriété dont la clé est constitué des chaînes empilées dans la pile.
 java.lang.Object get(java.lang.Object key)
           
 java.lang.String getProperty(java.lang.String postPropertyKey)
          Retourne la valeur de la propriété dont le postfix est spécifié.
 boolean isEmpty()
           
 java.util.Set keySet()
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
           
 void putAll(java.util.Map t)
           
 java.lang.Object remove(java.lang.Object key)
           
 int size()
           
 java.util.Collection values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

PropertiesHelper

public PropertiesHelper(java.lang.String reportId,
                        java.util.Properties props)
Constructeur par défaut.

Parameters:
reportId - identifiant du rapport courant.
props - dictionnaire par défaut.
Method Detail

clear

public void clear()
Specified by:
clear in interface java.util.Map

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map

entrySet

public java.util.Set entrySet()
Specified by:
entrySet in interface java.util.Map

get

public java.lang.String get()
                     throws ReportException
Retourne la valeur de la propriété dont la clé est constitué des chaînes empilées dans la pile.

Returns:
la valeur de la propriété.
Throws:
ReportException - levé dans le cas où la clé n'existe pas.

get

public java.lang.Object get(java.lang.Object key)
Specified by:
get in interface java.util.Map

getProperty

public java.lang.String getProperty(java.lang.String postPropertyKey)
                             throws ReportException
Retourne la valeur de la propriété dont le postfix est spécifié.

Parameters:
postPropertyKey - le postfix de clé de propriété.
Returns:
la valeur de la propriété.
Throws:
ReportException - levé en cas de non conformité de la valeur de la chaîne.

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map

keySet

public java.util.Set keySet()
Specified by:
keySet in interface java.util.Map

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Specified by:
put in interface java.util.Map

putAll

public void putAll(java.util.Map t)
Specified by:
putAll in interface java.util.Map

remove

public java.lang.Object remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map

size

public int size()
Specified by:
size in interface java.util.Map

values

public java.util.Collection values()
Specified by:
values in interface java.util.Map