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".