public void execute()

in wiki-export/src/wiki/export/WikiEntries2MediaWiki.java [98:159]


    public void execute() throws BuildException {

        FileFilter XML = (file) -> {
            return file.isFile() && file.getName().endsWith(".xml");
        };

        File[] xmlFiles = srcDir.listFiles(XML);

        try {
            DocumentBuilder db = getDocumentBuilderFactory().newDocumentBuilder();
            Transformer t = getTransformer();
            for (File xmlFile : xmlFiles) {
                File textFile = new File(destDir, xmlFile.getName().replaceAll("\\.xml$", "") + ".mediawiki");
                t.reset();
                Source xmlSource = new StreamSource(xmlFile);
                Result result = new StreamResult(textFile);
                t.transform(xmlSource, result);
                log("Generated " + textFile.getAbsolutePath());
            }
        } catch (Exception ex) {
            throw new BuildException(ex);
        }

        /* Finally generate a proper index.mediawiki from index. properties */
        try {
            FileReader reader = new FileReader(indexProperties);
            Properties index = new Properties();
            index.load(reader);
            reader.close();
            File indexFile = new File(destDir, "index.mediawiki");
            log("Creating " + indexFile.getAbsolutePath() + " from " + indexProperties);
            
            TreeMap<String, TreeSet<String>> sections = new TreeMap<>();
            for (Object okey : index.keySet()) {
                String key = (String) okey;
                if (key.endsWith(".section")) {
                    String [] parts = key.split("\\.");
                    String wikiName = parts[0];
                    String sectionName = index.getProperty(key);
                    TreeSet<String> entries = sections.get(sectionName);
                    if (entries == null) {
                        entries = new TreeSet<>();
                        sections.put(sectionName, entries);
                    }
                    entries.add(wikiName);
                }
            }
            
            PrintWriter indexMediawiki = new PrintWriter(new FileWriter(indexFile));
            indexMediawiki.println("=Index=\n");
            for (String section : sections.keySet()) {
                indexMediawiki.println("\n==" + section + "==");
                for (String entry : sections.get(section)) {
                    indexMediawiki.format("* [[%s|%s]]\n", entry, index.getProperty(entry));
                }
            }
            indexMediawiki.close();
        } catch (Exception ex) {
            throw new BuildException(ex);
        }

    }