import org.apache.xmlbeans.*;\r
\r
public class MsaWriter {\r
- MsaWriter(String path, ModuleInfo moduleinfo, Database database) {\r
- modulepath = path;\r
+ MsaWriter(ModuleInfo moduleinfo) {\r
mi = moduleinfo;\r
- db = database;\r
}\r
\r
- private String modulepath;\r
private ModuleInfo mi;\r
- private Database db;\r
\r
private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance();\r
\r
return answer;\r
}\r
\r
+ private void addSourceFiles (String name) { // furthur modification needed\r
+ List<Enum> arch = new ArrayList<Enum>();\r
+ FilenameDocument.Filename filename;\r
+ filename = sourcefiles.addNewFilename();\r
+ filename.setStringValue(name);\r
+ \r
+ if (name.contains("x64" + File.separator)) { // filename ???\r
+ arch.add(SupportedArchitectures.X_64);\r
+ System.out.println("x64" + File.separator);\r
+ filename.setSupArchList(arch);\r
+ } else if (name.contains("Ia32" + File.separator)) { // filename ???\r
+ arch.add(SupportedArchitectures.IA_32);\r
+ System.out.println("Ia32" + File.separator);\r
+ filename.setSupArchList(arch);\r
+ } else if (name.contains("Ipf" + File.separator)) { // filename ???\r
+ arch.add(SupportedArchitectures.IPF);\r
+ System.out.println("Ipf" + File.separator);\r
+ filename.setSupArchList(arch);\r
+ } else if (name.contains("Ebc" + File.separator)) { // filename ???\r
+ arch.add(SupportedArchitectures.EBC);\r
+ System.out.println("Ebc" + File.separator);\r
+ filename.setSupArchList(arch);\r
+ }\r
+ }\r
+ \r
private ModuleSurfaceAreaDocument fulfillMsadoc() throws Exception {\r
Iterator<String> it;\r
String temp;\r
externs.addNewSpecification().setStringValue("EDK_RELEASE_VERSION 0x00020000");\r
externs.addNewExtern().setModuleEntryPoint(mi.entrypoint);\r
\r
- FilenameDocument.Filename filename;\r
it = mi.localmodulesources.iterator();\r
- //System.out.println(mi.localmodulesources);\r
while (it.hasNext()) {\r
- temp = it.next();\r
- filename = sourcefiles.addNewFilename();\r
- filename.setStringValue(temp);\r
- //if (temp.contains("x64" + File.separator)) {\r
- //System.out.println("find");\r
- //filename.setSupArchList();\r
- //}\r
+ addSourceFiles(it.next());\r
}\r
if (!mi.protocol.isEmpty()) {\r
protocols = msa.addNewProtocols();\r
options.setSavePrettyPrintIndent(2);\r
options.setUseDefaultNamespace();\r
\r
- BufferedWriter bw = new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + mi.modulename + ".msa"));\r
+ BufferedWriter bw = new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + mi.modulename + ".msa"));\r
fulfillMsadoc().save(bw, options);\r
+ //MsaTreeEditor.init(mi, ui, msadoc);\r
+ bw.flush();\r
+ bw.close();\r
+ }\r
+\r
+ private static void flush(String path, ModuleSurfaceAreaDocument msadoc) throws Exception {\r
+ XmlOptions options = new XmlOptions();\r
+\r
+ options.setCharacterEncoding("UTF-8");\r
+ options.setSavePrettyPrint();\r
+ options.setSavePrettyPrintIndent(2);\r
+ options.setUseDefaultNamespace();\r
+\r
+ BufferedWriter bw = new BufferedWriter(new FileWriter(path));\r
+ msadoc.save(bw, options);\r
bw.flush();\r
bw.close();\r
}\r
+ \r
+ public static final void parse(String msafile) throws Exception {\r
+ ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(msafile);\r
+ flush("c:\\temp.msa", msadoc);\r
+ }\r
}\r