package net.jangaroo.exml.generator; import net.jangaroo.exml.model.ConfigClass; import net.jangaroo.exml.model.ConfigClassRegistry; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; public class MxmlLibraryManifestGenerator { private final ConfigClassRegistry configClassRegistry; public MxmlLibraryManifestGenerator(ConfigClassRegistry configClassRegistry) { this.configClassRegistry = configClassRegistry; } public File createManifestFile() throws FileNotFoundException, UnsupportedEncodingException { // create catalog.xml component library: File outputFile = new File(configClassRegistry.getConfig().getSourcePath().get(0), "manifest.xml"); System.out.printf("Creating manifest file %s...%n", outputFile.getPath()); PrintStream out = new PrintStream(new FileOutputStream(outputFile), true, net.jangaroo.exml.api.Exmlc.OUTPUT_CHARSET); Collection<ConfigClass> sourceConfigClasses = configClassRegistry.getSourceConfigClasses(); List<String> classes = new ArrayList<String>(sourceConfigClasses.size() * 2); for (ConfigClass configClass : sourceConfigClasses) { classes.add(configClass.getComponentClassName()); } Collections.sort(classes); out.println("<?xml version=\"1.0\"?>"); out.println("<componentPackage>"); for (String aClass : classes) { out.printf(" <component class=\"%s\"/>%n", aClass); } out.println("</componentPackage>"); out.close(); return outputFile; } }