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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| /**
* Fusionne tous les fichiers xml présent dans le répertoire shemasNavigation dans le fichier schemaNavigationGenere.xml.
* Les fichiers xml à fusionnés doivent être de la forme CO*.xml
* @throws IOException
* @throws ValeurNullException
*/
public static void creerSchemaNavigation() throws IOException, ValeurNullException {
File repShemasCarto = new File(Constante.getProjectHome()+"/xml/"+Constante.URL_REPERTOIRE_XML_CARTOGRAPHIE);
File [] lesSchemasNavigation = repShemasCarto.listFiles ();
if (lesSchemasNavigation != null){
PrintWriter printWriter = null;
FileInputStream fileInputStream = null;
BufferedReader buffer = null;
try{
// On supprime le fichier XML qui sera la fusion de tous les fichiers si il existe
File f = new File(Constante.getProjectHome()+"/xml/"+Constante.NOM_FICHIER_XML_SCHEMA_NAVIGATION_GENEREE);
if( f.exists() ) {
f.delete();
}
// On ouvre l'ouvre en écriture
File fichierDest = new File(Constante.getProjectHome()+"/xml/"+Constante.NOM_FICHIER_XML_SCHEMA_NAVIGATION_GENEREE);
printWriter = new PrintWriter(fichierDest.getAbsolutePath(), "UTF-8");
// On ajoute la balise de début
printWriter.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
printWriter.println("<!DOCTYPE schemaNavigation SYSTEM \"./schemaNavigation.dtd\" >");
printWriter.println();
printWriter.println("<!-- Fichier XML auto-généré -->");
printWriter.println("<!-- Ne pas modifier directement : modifier les fichier CO*.xml du répertoire " + Constante.URL_REPERTOIRE_XML_CARTOGRAPHIE + " et regénérer le fichier " + Constante.NOM_FICHIER_XML_SCHEMA_NAVIGATION_GENEREE + " -->");
printWriter.println();
printWriter.println();
printWriter.println("<schemaNavigation>");
for (File unSchemaNavigation:lesSchemasNavigation) {
if (unSchemaNavigation.isFile() && unSchemaNavigation.getName().startsWith("CO") && unSchemaNavigation.getName().endsWith(".xml")) {
Debug.print(" |-> Copie de " + unSchemaNavigation.getName(), nomClasse);
fileInputStream = new FileInputStream(unSchemaNavigation.getAbsolutePath());
buffer = new BufferedReader(new InputStreamReader(fileInputStream, "UTF-8"));
try {
String ligne;
while ((ligne = buffer.readLine()) != null) {
printWriter.println(ligne);
}
}
finally {
buffer.close();
fileInputStream.close();
}
} else {
Debug.print(unSchemaNavigation.getName() + " a été ignoré.", nomClasse);
}
}
// On ajoute la balise de fin
printWriter.println("</schemaNavigation>");
Debug.print(String.valueOf(lesSchemasNavigation.length) + " fichiers ont été copié dans " + Constante.NOM_FICHIER_XML_SCHEMA_NAVIGATION_GENEREE + ".", nomClasse);
}catch(IOException ex){
ex.printStackTrace();
}finally{
if(printWriter != null){
printWriter.flush();
printWriter.close();
}
}
} else {
throw new ValeurNullException("Erreur de lecture du fichier : " + repShemasCarto);
}
} |
Partager