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

Langage Java Discussion :

[ Conversion ] VO vers Collection


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut [ Conversion ] VO vers Collection
    Bonjour,

    Je sèche littéralement devant un problème qui doit être pourtant simple.

    J'ai une classe P_nbVO qui définit un 'value object'.

    Lorsque j'instancie un P_nbVO, je peux lire/affecter un nom (String), un code (Long) via getters/setters.

    Le but est de rappatrier d'une BDD un ensemble de couple nom/code dans un type définit par moi-même. Donc j'instancie en fait des tableaux de P_nbVO.


    A côté de ça, j'ai une méthode (qui n'est pas de moi) que je souhaiterais utiliser.

    Le premier argument est une Collection, le second est une 'clé' et le dernier est la valeur correspondant à cette 'clé'.


    Problème : je ne vois pas comment une Collection peut contenir une 'clé' d'un côté et sa valeur de l'autre ... et donc je sèche pour convertir mon P_nbVO[] en Collection

    Le bout de doc qui suis correspond à la méthode à renseigner.

    Merci

    void com.delbardpro.production.web.parametres.article.modifier.ChargerFormForm.setAgeBackingList(Collection items, String valueProperty, String labelProperty)
    Convenient method to quickly set the value and label backinglist for the age property. This method takes a collection of objects, as well as the property names to query on these objects in order to find the corresponding values and labels.

    Let's say you have a set of value objects with the following properties:

    id
    code
    name
    description
    But you need to populate the age backing list with the id properties as the values and the name properties as the labels then you would make a call like this: setAgeBackingList(valueObjects, "id", "name")
    This method knows how to handle primitive property types as it simply delegates to org.apache.commons.beanutils.PropertyUtils.getProperty(Object, String).

    See Also:
    getAge()
    getAgeValueList()
    getAgeLabelList()
    getAgeLabelList()
    Parameters:
    items The items from which to read the properties, if this argument is null this method will simply clear the existing values and labels
    valueProperty the name of the property to query on each object to retrieve the corresponding value, cannot be null
    Throws:
    java.lang.IllegalArgumentException if the valueProperty or labelProperty is null
    java.lang.RuntimeException if one of the items in the collection is null, or if the caller does not have access one of the object's properties, if an exception was thrown while accessing a property or if the property does not exist on at least one of the items
    P.S. L'objectif est de renseigner une listbox

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    Une collection qui associe clé à valeur existe : les Maps.

    Mon tutoriel sur les collections t'en dit un peu plus dessus, sinon il y a la Javadoc .

    Cordialement

    Fred

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par mavina
    Une collection qui associe clé à valeur existe : les Maps.
    A ceci près que Map n'est pas une Collection

    Mais bon, je chipote

  4. #4
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    ca n'est pas une Collection c'est vrai ...
    Sinon une Collection n'est qu'un contenant, et ta classe pourrait être le contenu.
    Il faut voire la compatibilité entre la collection de ta fonction et la collection que tu pourrais éventuellement créer à partir de ton tableau

    Fred

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    Merci pour ces premières réponses

    J'ai lu la FAQ sur map hier soir également et il y a quelque chose que je n'ai pas compris.

    Map permet-il de gérer des couples de type différent ? Je pense que non.

    Dans mon cas, je dois stocker un Long (code) et une String (nom).

    Ma première idée était d'associer un nom de colonne à sa valeur.
    Problème, le second couple n'est pas conforme à ma déclaration de map et ne le sera jamais.

    Map<String,Long> map = new HashMap<String,Long>();
    map.put("Id", 0L);
    map.put("Lnb", "test");
    Donc j'ai pris le problème autrement.
    Mais du coup je n'ai plus d'intitulé de 'colonne' (id,Lnb) ... seulement une suite de valeurs ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Map<String,Long> map = new HashMap<String,Long>();
    map.put("test", 0L);
    Bref, je continue de réfléchir ...

  6. #6
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    Juste un conseil, imagine la tête de la personne qui va passer après toi quand il va vouloir comprendre ce que représente 'P_nbVO', perso moi ça ne me parle pas. Ca n'a rien a voir avec ton probleme, mais essayes de donner des noms de classe plus parlant, parce que même toi si tu reviens dessus dans un an ou deux tu vas te demander ce que tu voulais dire par P_nbVO. C'était juste une apparté d'un type qui vient de reprendre un projet où le developpeur avait les mêmes reflexes que toi pour nommer les classes, et donc pour info, ma tête ressemblait à peu prés à ,

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

Discussions similaires

  1. Conversion Unix vers DOS...
    Par nicosfly dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2008, 17h53
  2. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23
  3. conversion Access vers SQL
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/03/2004, 13h57
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46

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