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

Format d'échange (XML, JSON...) Java Discussion :

Héritage des classes XML


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Par défaut Héritage des classes XML
    Bonjours à tous ,

    Voici le contenu mon fichier exemple XML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <ExtractionConfig>
    	  <Filters> 
    		<Filter type ="userNames">
    			<username>Pierre</username>
    			<username>Henri</username>
    		</Filter>
    	  </Filters>
    </ExtractionConfig>
    Le principe est d'avoir une classe ExtractionConfig contenant une liste de filtres.

    Ces filtres sont définis par un attribut type et une liste de propriétés.
    Jusque là ça va.

    Je souhaite introduire une classe "AbstractDataFilter" pour pouvoir utiliser n'importe quel filtre tant qu'il respecte le fait d'avoir un attribut "type" et une liste de propriétés.

    Je pourrais alors avoir le XML suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <ExtractionConfig>
    	  <Filters> 
    		<Filter type ="userNames">
    			<username>Pierre</username>
    			<username>Henri</username>
    		</Filter>
                    <Filter type = "projectId">
                            <projectid>1</projectid>
                            <otherOptions>
                                      <option1>rule1</option1>
                                                   [...]
                            </otherOptions>
                    </Filter>
    	  </Filters>
    </ExtractionConfig>
    Est-ce que si, dans une classe abstraite, on met des annotations sur des attributs, par exemple :
    @XmlElement
    celles-ci sont valables pour les classes filles.
    Comment je peux faire en sorte que "Filter" puisse représenter une classe "UserNamesFilter" ou encore "ProjectIdFilter" héritant de "AbstractDataFilter".

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Par défaut suite
    Après quelques discussions, mon problème a changé.
    Je vais utiliser un attribut type et name pour permettre à mon manager de différencier les filtres.

    Voici mon nouveau XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ExtractionConfig>
    	  <FilterConfigs> 
    		<FilterConfig type ="userNames">
    			<property name="userNames">
    				<list>
    					<listData>Pierre</listData>
    				</list>
    			</property>
    		</FilterConfig>
    	  </FilterConfigs>
    </ExtractionConfig>
    J'ai déjà fait les classes suivantes :

    ExtractionConfig.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    @XmlRootElement(name="extractionConfig")
    @XmlType(name="ExtractionConfig",
    propOrder = {"filtersConfigs"})
    @XmlAccessorType(XmlAccessType.FIELD)
    public class ExtractionConfig {
     
      @XmlElement(name="filters", nillable=false, required=true)
      private List<FilterConfigs> filterConfigs;
     
      public List<FilterConfigs> getFilterConfigs() {
        return filterConfigs;
      }
     
      public void setFilterConfigs(List<FilterConfigs> filterConfigs) {
        this.filterConfigs = filterConfigs;
      }
     
      public boolean isValid() {
        if ((this.filterConfigs == null) || (this.filterConfigs.size() == 0)) {
          log.info("filters field is empty");
          return true;
        }
        for (FilterConfigs aFilterConfigObjTmp : filterConfigs) {
          if (!aFilterConfigObjTmp.isValid()) {
            return false;
          }
        }
        return true;
      }
    }
    FilterConfigs.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    @XmlType(name="FilterConfigs",
    propOrder = {"filterConfigs"})
    @XmlAccessorType(XmlAccessType.FIELD)
    public class FilterConfigs {
     
      @XmlElement(name="FilterConfig", nillable=false, required=true)
      private List<FilterConfig> filterConfigs;
     
      public FilterConfigs(List<FilterConfig> filterConfigs) {
        this.filterConfigs = filterConfigs;
      }
     
      public List<FilterConfig> getFilterConfigs() {
        return filterConfigs;
      }
     
      public void setFilterConfigs(List<FilterConfig> filterConfigs) {
        this.filterConfigs = filterConfigs;
      }
    }
    Je suis en train de faire la classe FilterConfig qui va contenir une annotation @XMLAttribute son attribut String type et une List de property

    J'aimerai savoir si vous pouviez m'aider pour faire la classe property pour que celle-ci représente bien le XML.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2010, 18h07
  2. Réponses: 5
    Dernier message: 15/07/2009, 01h19
  3. Héritage des classes CSS
    Par Invité dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 30/05/2008, 17h47
  4. [POO] Héritage des classes
    Par mic79 dans le forum Langage
    Réponses: 27
    Dernier message: 09/03/2007, 20h02
  5. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00

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