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 :

Ajouter une annotation à un champ au runtime


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut Ajouter une annotation à un champ au runtime
    Bonjour,

    il est possible de récupérer les annotations d'un champ au runtime, mais est-il possible d'en rajouter ?

    Si cela n'est pas possible, comment ajouter un flag à un champ au runtime ?

    Merci.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il n'est pas possible d'ajouter des annotations au runtime.
    Ca veut dire quoi pour toi : "ajouter un flag à un champs au runtime" ?
    Donne un exemple
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Merci de ta réponse.

    Ajouter un flag signifie ajouter une métadonnée propre à l'application à un champ.
    Ce flag est censé indiquer si le champ doit être utilisé dans une recherche multi-critères.

    Mais bon, c'est faisable en wrappant l'objet dans un autre qui se chargera de lister les champs non concernés par la recherche.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Un wrapper peut parfois être lourd à mettre en place...




    Je ne sais pas si cela pourrait te convenir, mais voici une autre solution :

    • Tu utilises une classe qui servira de descritif concernant les champs, éventuellement en s'initialisant avec les métadonnées.
    • Tu associes ces descriptifs avec les objets en utilisant une Map (clef : l'objet / valeur : ton descriptif), et il te suffira donc de faire un get() pour récupérer le descriptif d'une instance.
    • Et en utilisant une WeakHashMap tu laisses le GC libérer proprement la mémoire : lorsque la clef d'une WeakHashMap n'est plus utilisé, le GC va libérer le couple clef/valeur de la map



    a++

  5. #5
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    C'est une bonne idée dans un cadre plus général, mais là le problème est plus basique :

    Tu utilises une classe qui servira de descritif concernant les champs, éventuellement en s'initialisant avec les métadonnées.
    Il n'y a qu'une seule caractéristique, qui de plus est un booléen.

    Tu associes ces descriptifs avec les objets en utilisant une Map (clef : l'objet / valeur : ton descriptif), et il te suffira donc de faire un get() pour récupérer le descriptif d'une instance.
    En fait il n'y a jamais plusieurs instances à traiter en même temps.

    Et en utilisant une WeakHashMap tu laisses le GC libérer proprement la mémoire : lorsque la clef d'une WeakHashMap n'est plus utilisé, le GC va libérer le couple clef/valeur de la map
    Très intéressant.

    Finalement un wrapper avec une "List<String>" qui stocke le nom des champs à ne pas inclure a fait l'affaire.

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

Discussions similaires

  1. Ajouter à une table un champ calculé
    Par Sinakhine dans le forum Requêtes
    Réponses: 10
    Dernier message: 05/12/2012, 17h29
  2. ajouter une annotation a une template dans itext
    Par abdessalem10 dans le forum Documents
    Réponses: 0
    Dernier message: 09/04/2011, 18h25
  3. ajouter une annotation a une template dans itext
    Par abdessalem10 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 09/04/2011, 13h49
  4. Ajouter une référence dans un runtime
    Par rogger dans le forum Runtime
    Réponses: 13
    Dernier message: 07/12/2005, 17h20
  5. Popup ajoutant une valeur a un champ
    Par kalan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/09/2005, 15h39

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