org.nuiton.util
Class FormatMap

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<FormatMap.Format,Object>
          extended by org.nuiton.util.FormatMap
All Implemented Interfaces:
Serializable, Cloneable, Map<FormatMap.Format,Object>

public class FormatMap
extends HashMap<FormatMap.Format,Object>

Classe servant de conteneur pour les différentes representation d'un objet Les representations doivents être des instances de FormatMap.Format. Le mieux est lors de l'ecriture des convertisseurs pour un nouveau format est de créer une instance final static de FormatMap.Format Format pour representer ce format

Utilisation

 FormatMap values = new FormatMap(MonObject.class);
 values.put(FormatConverter.FORMAT_JAVA, monInstance);
 Element xml = (Element)values.convert(XMLConverter.FORMAT_XML);
 Object sql = values.convert(SQLConverter.FORMAT_SQL);
 
 FormatMap values = new FormatMap(MonObject.class);
 values.put(FormatConverter.FORMAT_XML, monInstanceEnXML);
 Object sql = values.convert(SQLConverter.FORMAT_SQL);
 
Dans ce second cas, la demande de la version SQL, transforme automatiquement la representation XML qui est la seul presente en Java, puis a partir de cette representation Java, on recupere la representation SQL. Bien sur Si le convertisseur SQL, peut directement convertir le XML en SQL, alors la conversion Java ne sera pas faite.

Il est souvent plus simple de faire une petite classe avec les methodes getSQL() et getXML(), qui retourne les valeurs directement dans le bon type et qui n'ont pas besoin d'argument.

See Also:
Serialized Form

Nested Class Summary
static class FormatMap.Format
           
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Field Summary
protected  Class<?> clazz
           
 
Constructor Summary
FormatMap(Class<?> clazz)
           
 
Method Summary
 Object convert(FormatConverterFactory factory, FormatMap.Format format, Object... args)
          Recupere la valeur dans le format demandé
 Object convert(FormatMap.Format format, Object... args)
          Utilise le FormatConverterFactory par defaut pour la conversion
 Class<?> getType()
           
 void setValue(FormatMap.Format format, Object value)
          Met a jour la valeur de l'objet.
 Object unconvert(FormatConverterFactory factory, FormatMap.Format format, Object... args)
          Donne la representation Java de l'objet en essayant de partir de la representation passé en parametre.
 Object unconvert(FormatMap.Format format, Object... args)
          Utilise le FormatConverterFactory par defaut pour la conversion
 
Methods inherited from class java.util.HashMap
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

clazz

protected Class<?> clazz
Constructor Detail

FormatMap

public FormatMap(Class<?> clazz)
Method Detail

getType

public Class<?> getType()

setValue

public void setValue(FormatMap.Format format,
                     Object value)
Met a jour la valeur de l'objet. Toutes les autres valeurs calculées sont oubliées et seront recalculé en fonction de cette nouvelle valeur

Parameters:
format - le format a utiliser
value -

convert

public Object convert(FormatMap.Format format,
                      Object... args)
Utilise le FormatConverterFactory par defaut pour la conversion

Parameters:
format - le format a utiliser
args - les arguments
Returns:
l'objet converti

convert

public Object convert(FormatConverterFactory factory,
                      FormatMap.Format format,
                      Object... args)
Recupere la valeur dans le format demandé

Parameters:
factory - la FormatConverterFactory a utiliser
format - le format souhaité
args - des arguments facultatifs en fonction du context d'utilisation
Returns:
l'objet converti

unconvert

public Object unconvert(FormatMap.Format format,
                        Object... args)
Utilise le FormatConverterFactory par defaut pour la conversion

Parameters:
format - le format utilise
args -
Returns:
l'objet java

unconvert

public Object unconvert(FormatConverterFactory factory,
                        FormatMap.Format format,
                        Object... args)
Donne la representation Java de l'objet en essayant de partir de la representation passé en parametre.

Parameters:
factory - la factory a utiliser
format - le format de départ souhaité
args - des arguments facultatifs en fonction du context d'utilisation
Returns:
l'objet java


Copyright © 2004-2010 CodeLutin. All Rights Reserved.