IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Transformer & typage


Sujet :

Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 129
    Points : 128
    Points
    128
    Par défaut Transformer & typage
    Bonjour,

    Je me casse les dents sur la création d'un transformer générique.

    Mon but est d'avoir une classe unique, qui transforme tout type d'objet.

    La partie mapping se fait via dozer , dans l'exemple via l'objet "dozerMapper", et fait de la recopie de bean de l'objet source vers l'objet cible, tout marche bien sur ce point la.

    Pour l'instant j'arrive à transformer un objet unique:

    exemple de récupération d'un dto via web service et appel du transformer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                 MonDTO   monDTO = monWebService.findObjetById(x); 
    	     MonObjet  monObjet = (MonObjet) MonTransformer.transform(
    				monDTO ,new MonObjet());
    méthode de transformation d'un objet dans le transformer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public static Object transform(Object objetSource,Object objetCible) {
    		dozerMapper.map(objetSource, objetCible);
    		return objetCible;
     
    	}
    Par contre j'ai du mal sur la transformation d'une liste d'objets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<MonDTO > liste =  monWebService.lister();
    List<MonObjet> liste2 = (List<MonObjet>) MonTransformer
    				.transformList(liste, new MonObjet());
    et le transformer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public static List transformList(List listeSource,
    			Object objetCible) {
     
    		List<Object> liste = new ArrayList<Object>();
    		for (Object objetSource : listeSource) {			
    			liste.add(transform(objetSource, objetCible));
    		}
    		return liste;
    	}
    Bien sur ça ne marche pas , la même instance est ajoutée à chaque fois dans la liste.
    J'aimerai spécifier un type dans les paramètres de la méthode, pour pouvoir instancier un nouvel objet du type désiré à chaque passage dans la boucle, mais je ne vois pas comment faire

    merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 129
    Points : 128
    Points
    128
    Par défaut
    c'était en fait tout bête , passage de la classe en paramètre, et un .newInstance() pour récupérer un nouvel objet ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment eviter le changement de & en &amps lors d'une transformation?
    Par hutuchong dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 10/12/2009, 18h17
  2. [PERL] transformation de fichier
    Par bob20000 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 11h13
  3. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 08/11/2002, 22h55
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo