MsaOwner.java & ModuleInfo.java
authoralfred <alfred@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 29 Sep 2006 08:31:54 +0000 (08:31 +0000)
committeralfred <alfred@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 29 Sep 2006 08:31:54 +0000 (08:31 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1644 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java
Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java
Tools/Source/MigrationTools/org/tianocore/migration/MsaOwner.java
Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java

index 016b153..03ac23f 100644 (file)
@@ -17,6 +17,8 @@ import java.util.*;
 \r
 import javax.swing.JFileChooser;\r
 \r
+import org.tianocore.UsageTypes;\r
+\r
 public class MigrationTool {\r
     public static UI ui = null;\r
     public static Database db = null;\r
@@ -51,7 +53,14 @@ public class MigrationTool {
         }\r
 \r
         new MsaWriter(mi).flush();\r
-\r
+/*\r
+        mi.addGuid("guid", UsageTypes.ALWAYS_CONSUMED);\r
+        mi.addLibraryClass("class", UsageTypes.ALWAYS_CONSUMED);\r
+        mi.addPpi("ppi", UsageTypes.ALWAYS_CONSUMED);\r
+        mi.addProtocol("protocol", UsageTypes.ALWAYS_CONSUMED);\r
+*/\r
+        mi.getMsaOwner().flush(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + mi.modulename + ".___");\r
+     \r
         if (MigrationTool.doCritic) {\r
             Critic.fireAt(ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename);\r
         }\r
index 9624eee..dd106d5 100644 (file)
@@ -30,7 +30,7 @@ public final class ModuleInfo {
     public final String modulepath;\r
     public final String temppath;\r
     \r
-    private MsaOwner msaowner = new MsaOwner();\r
+    private MsaOwner msaowner = MsaOwner.initNewMsaOwner();\r
     \r
     public String modulename = null;\r
     public String guidvalue = null;\r
@@ -59,23 +59,24 @@ public final class ModuleInfo {
     //-----------------------------------------------------------------------------------//\r
 \r
     public final boolean addProtocol (String proname, UsageTypes.Enum usage) {\r
-       protocols.add(proname);\r
-       return msaowner.addProtocol(proname, usage);\r
+        //protocols.add(proname);\r
+        System.out.println("I'm in");\r
+        return msaowner.addProtocol(proname, usage);\r
     }\r
     \r
     public final boolean addPpi (String ppiname, UsageTypes.Enum usage) {\r
-       ppis.add(ppiname);\r
-       return msaowner.addPpi(ppiname, usage);\r
+        //ppis.add(ppiname);\r
+        return msaowner.addPpi(ppiname, usage);\r
     }\r
     \r
     public final boolean addGuid (String guidname, UsageTypes.Enum usage) {\r
-       guids.add(guidname);\r
-       return msaowner.addGuid(guidname, usage);\r
+        //guids.add(guidname);\r
+        return msaowner.addGuid(guidname, usage);\r
     }\r
     \r
     public final boolean addLibraryClass(String name, UsageTypes.Enum usage) {\r
-       hashrequiredr9libs.add(name);\r
-       return msaowner.addLibraryClass(name, usage);\r
+        //hashrequiredr9libs.add(name);\r
+        return msaowner.addLibraryClass(name, usage);\r
     }\r
     \r
     //-----------------------------------------------------------------------------------//\r
@@ -112,4 +113,8 @@ public final class ModuleInfo {
         }\r
         return false;\r
     }\r
+    \r
+    public final MsaOwner getMsaOwner() {\r
+        return msaowner;\r
+    }\r
 }
\ No newline at end of file
index 46cd82a..6483de5 100644 (file)
@@ -1,16 +1,19 @@
 package org.tianocore.migration;\r
 \r
+import java.io.BufferedWriter;\r
+import java.io.FileWriter;\r
 import java.util.*;\r
 \r
+import org.apache.xmlbeans.XmlOptions;\r
 import org.tianocore.*;\r
 import org.tianocore.SupportedArchitectures.Enum;\r
 \r
 public class MsaOwner {\r
-       public static final String COPYRIGHT = "Copyright (c) 2006, Intel Corporation";\r
-       public static final String VERSION = "1.0";\r
-       public static final String ABSTRACT = "Component name for module ";\r
-       public static final String DESCRIPTION = "FIX ME!";\r
-       public static final String LICENSE = "All rights reserved.\n" +\r
+    public static final String COPYRIGHT = "Copyright (c) 2006, Intel Corporation";\r
+    public static final String VERSION = "1.0";\r
+    public static final String ABSTRACT = "Component name for module ";\r
+    public static final String DESCRIPTION = "FIX ME!";\r
+    public static final String LICENSE = "All rights reserved.\n" +\r
     "      This software and associated documentation (if any) is furnished\n" +\r
     "      under a license and may only be used or copied in accordance\n" +\r
     "      with the terms of the license. Except as permitted by such\n" +\r
@@ -18,13 +21,13 @@ public class MsaOwner {
     "      reproduced, stored in a retrieval system, or transmitted in any\n" +\r
     "      form or by any means without the express written consent of\n" +\r
     "      Intel Corporation.";\r
-       public static final String SPECIFICATION = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052";\r
-       \r
-       public static final Enum IA32 = SupportedArchitectures.IA_32;\r
-       public static final Enum X64 = SupportedArchitectures.X_64;\r
-       public static final Enum IPF = SupportedArchitectures.IPF;\r
-       public static final Enum EBC = SupportedArchitectures.EBC;\r
-       \r
+    public static final String SPECIFICATION = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052";\r
+    \r
+    public static final Enum IA32 = SupportedArchitectures.IA_32;\r
+    public static final Enum X64 = SupportedArchitectures.X_64;\r
+    public static final Enum IPF = SupportedArchitectures.IPF;\r
+    public static final Enum EBC = SupportedArchitectures.EBC;\r
+    \r
     private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance();\r
     \r
     private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
@@ -40,346 +43,356 @@ public class MsaOwner {
     private ExternsDocument.Externs externs = null;\r
     \r
     private List<Enum> listarch = new ArrayList<Enum>();\r
-    //private Map<String, Enum> mapfilenames = new HashMap<String, Enum>();    //this need to be installed manually when msa is to be written\r
+    //private Map<String, Enum> mapfilenames = new HashMap<String, Enum>();    //this need to be installed manually when msa is to be written\r
     //private Map<String, UsageTypes.Enum> mapprotocols = new HashMap<String, UsageTypes.Enum>();\r
 \r
     //-----------------------------msaheader-------------------------------------//\r
 \r
     public final boolean addLibraryClass (String name, UsageTypes.Enum usage) {\r
-       Iterator<LibraryClassDocument.LibraryClass> classit = libclassdefs.getLibraryClassList().iterator();\r
-       while (classit.hasNext()) {\r
-               if (classit.next().getKeyword() == name) {\r
-                       MigrationTool.ui.println ("Warning: Duplicate LibraryClass");\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       LibraryClassDocument.LibraryClass classname;\r
-       List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
-       classname = libclassdefs.addNewLibraryClass();\r
-       classname.setKeyword(name);\r
-       arch.add(usage);\r
-       classname.setSupArchList(arch);\r
-       return true;\r
+        Iterator<LibraryClassDocument.LibraryClass> classit = libclassdefs.getLibraryClassList().iterator();\r
+        while (classit.hasNext()) {\r
+            if (classit.next().getKeyword() == name) {\r
+                MigrationTool.ui.println ("Warning: Duplicate LibraryClass");\r
+                return false;\r
+            }\r
+        }\r
+        \r
+        LibraryClassDocument.LibraryClass classname;\r
+        List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
+        classname = libclassdefs.addNewLibraryClass();\r
+        classname.setKeyword(name);\r
+        arch.add(usage);\r
+        classname.setSupArchList(arch);\r
+        return true;\r
     }\r
     \r
     public final boolean addGuid (String guidname, UsageTypes.Enum usage) {\r
-       if (guids == null) {\r
-               guids = msa.addNewGuids();\r
-       }\r
-       \r
-       Iterator<GuidsDocument.Guids.GuidCNames> guidit = guids.getGuidCNamesList().iterator();\r
-       while (guidit.hasNext()) {\r
-               if (guidit.next().getGuidCName() == guidname) {\r
-                       MigrationTool.ui.println ("Warning: Duplicate Guid");\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       GuidsDocument.Guids.GuidCNames guid;\r
-       List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
-       guid = guids.addNewGuidCNames();\r
-       guid.setGuidCName(guidname);\r
-       arch.add(usage);\r
-       guid.setSupArchList(arch);\r
-       return true;\r
+        if (guids == null) {\r
+            guids = msa.addNewGuids();\r
+        }\r
+        \r
+        Iterator<GuidsDocument.Guids.GuidCNames> guidit = guids.getGuidCNamesList().iterator();\r
+        while (guidit.hasNext()) {\r
+            if (guidit.next().getGuidCName() == guidname) {\r
+                MigrationTool.ui.println ("Warning: Duplicate Guid");\r
+                return false;\r
+            }\r
+        }\r
+        \r
+        GuidsDocument.Guids.GuidCNames guid;\r
+        List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
+        guid = guids.addNewGuidCNames();\r
+        guid.setGuidCName(guidname);\r
+        arch.add(usage);\r
+        guid.setSupArchList(arch);\r
+        return true;\r
     }\r
     \r
     \r
     public final boolean addPpi (String ppiname, UsageTypes.Enum usage) {\r
-       if (ppis == null) {\r
-               ppis = msa.addNewPPIs();\r
-       }\r
-       \r
-       Iterator<PPIsDocument.PPIs.Ppi> ppiit = ppis.getPpiList().iterator();\r
-       while (ppiit.hasNext()) {\r
-               if (ppiit.next().getPpiCName() == ppiname) {\r
-                       MigrationTool.ui.println ("Warning: Duplicate Ppi");\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       PPIsDocument.PPIs.Ppi ppi;\r
-       List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
-       ppi = ppis.addNewPpi();\r
-       ppi.setPpiCName(ppiname);\r
-       arch.add(usage);\r
-       ppi.setSupArchList(arch);\r
-       return true;\r
+        if (ppis == null) {\r
+            ppis = msa.addNewPPIs();\r
+        }\r
+        \r
+        Iterator<PPIsDocument.PPIs.Ppi> ppiit = ppis.getPpiList().iterator();\r
+        while (ppiit.hasNext()) {\r
+            if (ppiit.next().getPpiCName() == ppiname) {\r
+                MigrationTool.ui.println ("Warning: Duplicate Ppi");\r
+                return false;\r
+            }\r
+        }\r
+        \r
+        PPIsDocument.PPIs.Ppi ppi;\r
+        List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
+        ppi = ppis.addNewPpi();\r
+        ppi.setPpiCName(ppiname);\r
+        arch.add(usage);\r
+        ppi.setSupArchList(arch);\r
+        return true;\r
     }\r
     \r
     /*\r
     private final boolean installProtocols () {\r
-       if (mapprotocols.isEmpty()) {\r
-               return false;\r
-       }\r
-       Set<String> setprotocols = mapprotocols.keySet();\r
-       ProtocolsDocument.Protocols.Protocol protocol;\r
-       Iterator<String> it = setprotocols.iterator();\r
-       while (it.hasNext()) {\r
-               protocol = protocols.addNewProtocol();\r
-               protocol.setProtocolCName(it.next());\r
-               protocol.setUsage(mapprotocols.get(protocol.getProtocolCName()));\r
-       }\r
-       return true;\r
+        if (mapprotocols.isEmpty()) {\r
+            return false;\r
+        }\r
+        Set<String> setprotocols = mapprotocols.keySet();\r
+        ProtocolsDocument.Protocols.Protocol protocol;\r
+        Iterator<String> it = setprotocols.iterator();\r
+        while (it.hasNext()) {\r
+            protocol = protocols.addNewProtocol();\r
+            protocol.setProtocolCName(it.next());\r
+            protocol.setUsage(mapprotocols.get(protocol.getProtocolCName()));\r
+        }\r
+        return true;\r
     }\r
     \r
     public final boolean addProtocols (String protocol, UsageTypes.Enum usage) {\r
-       if (mapprotocols.containsKey(protocol)) {\r
-               return false;\r
-       } else {\r
-               mapprotocols.put(protocol, usage);\r
-               return true;\r
-       }\r
+        if (mapprotocols.containsKey(protocol)) {\r
+            return false;\r
+        } else {\r
+            mapprotocols.put(protocol, usage);\r
+            return true;\r
+        }\r
     }\r
     */\r
     public final boolean addProtocol (String proname, UsageTypes.Enum usage) {\r
-       if (protocols == null) {\r
-               protocols = msa.addNewProtocols();\r
-       }\r
-       \r
-       Iterator<ProtocolsDocument.Protocols.Protocol> proit = protocols.getProtocolList().iterator();\r
-       while (proit.hasNext()) {\r
-               if (proit.next().getProtocolCName() == proname) {\r
-                       MigrationTool.ui.println ("Warning: Duplicate Protocol");\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       ProtocolsDocument.Protocols.Protocol protocol;\r
-       List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
-       protocol = protocols.addNewProtocol();\r
-       protocol.setProtocolCName(proname);\r
-       arch.add(usage);\r
-       protocol.setSupArchList(arch);\r
-       return true;\r
+        if (protocols == null) {\r
+            protocols = msa.addNewProtocols();\r
+        }\r
+        \r
+        Iterator<ProtocolsDocument.Protocols.Protocol> proit = protocols.getProtocolList().iterator();\r
+        while (proit.hasNext()) {\r
+            if (proit.next().getProtocolCName() == proname) {\r
+                MigrationTool.ui.println ("Warning: Duplicate Protocol");\r
+                return false;\r
+            }\r
+        }\r
+        \r
+        ProtocolsDocument.Protocols.Protocol protocol;\r
+        List<UsageTypes.Enum> arch = new ArrayList<UsageTypes.Enum>();\r
+        protocol = protocols.addNewProtocol();\r
+        protocol.setProtocolCName(proname);\r
+        arch.add(usage);\r
+        protocol.setSupArchList(arch);\r
+        return true;\r
     }\r
     \r
     /*\r
     private final boolean installHashFilename () {\r
-       if (mapfilenames.isEmpty()) {\r
-               return false;\r
-       }\r
-       Set<String> setfilename = mapfilenames.keySet();\r
-       FilenameDocument.Filename filename;\r
-       List<Enum> arch = new ArrayList<Enum>();\r
-       Iterator<String> it = setfilename.iterator();\r
-       while (it.hasNext()) {\r
-               filename = sourcefiles.addNewFilename();\r
-               filename.setStringValue(it.next());\r
-               arch.add(mapfilenames.get(filename.getStringValue()));\r
-               filename.setSupArchList(arch);\r
-       }\r
-       return true;\r
+        if (mapfilenames.isEmpty()) {\r
+            return false;\r
+        }\r
+        Set<String> setfilename = mapfilenames.keySet();\r
+        FilenameDocument.Filename filename;\r
+        List<Enum> arch = new ArrayList<Enum>();\r
+        Iterator<String> it = setfilename.iterator();\r
+        while (it.hasNext()) {\r
+            filename = sourcefiles.addNewFilename();\r
+            filename.setStringValue(it.next());\r
+            arch.add(mapfilenames.get(filename.getStringValue()));\r
+            filename.setSupArchList(arch);\r
+        }\r
+        return true;\r
     }\r
     \r
-    public final boolean addSourceFile (String filename, Enum arch) {          // dummy & null how to imply?\r
-       if (mapfilenames.containsKey(filename)) {\r
-               return false;\r
-       } else {\r
+    public final boolean addSourceFile (String filename, Enum arch) {        // dummy & null how to imply?\r
+        if (mapfilenames.containsKey(filename)) {\r
+            return false;\r
+        } else {\r
             mapfilenames.put(filename, arch);\r
             return true;\r
-       }\r
+        }\r
     }\r
     */\r
     public final boolean addSourceFile (String name, Enum en) {\r
-       Iterator<FilenameDocument.Filename> fileit = sourcefiles.getFilenameList().iterator();\r
-       while (fileit.hasNext()) {\r
-               if (fileit.next().getStringValue() == name) {\r
-                       MigrationTool.ui.println ("Warning: Duplicate SourceFileName");\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       FilenameDocument.Filename filename;\r
-       List<Enum> arch = new ArrayList<Enum>();\r
-       filename = sourcefiles.addNewFilename();\r
-       filename.setStringValue(name);\r
-       arch.add(en);\r
-       filename.setSupArchList(arch);\r
-       return true;\r
+        Iterator<FilenameDocument.Filename> fileit = sourcefiles.getFilenameList().iterator();\r
+        while (fileit.hasNext()) {\r
+            if (fileit.next().getStringValue() == name) {\r
+                MigrationTool.ui.println ("Warning: Duplicate SourceFileName");\r
+                return false;\r
+            }\r
+        }\r
+        \r
+        FilenameDocument.Filename filename;\r
+        List<Enum> arch = new ArrayList<Enum>();\r
+        filename = sourcefiles.addNewFilename();\r
+        filename.setStringValue(name);\r
+        arch.add(en);\r
+        filename.setSupArchList(arch);\r
+        return true;\r
     }\r
     \r
     // entry point todo\r
     \r
     public final boolean setupExternSpecification () {\r
-       addExternSpecification("EFI_SPECIFICATION_VERSION 0x00020000");\r
-       addExternSpecification("EDK_RELEASE_VERSION 0x00020000");\r
-       return true;\r
+        addExternSpecification("EFI_SPECIFICATION_VERSION 0x00020000");\r
+        addExternSpecification("EDK_RELEASE_VERSION 0x00020000");\r
+        return true;\r
     }\r
     \r
     public final boolean addExternSpecification (String specification) {\r
-       if (externs.getSpecificationList().contains(specification)) {\r
-               return false;\r
-       } else {\r
-               externs.addSpecification(specification);\r
-               return true;\r
-       }\r
+        if (externs.getSpecificationList().contains(specification)) {\r
+            return false;\r
+        } else {\r
+            externs.addSpecification(specification);\r
+            return true;\r
+        }\r
     }\r
     \r
     public final boolean setupPackageDependencies() {\r
-       addPackage("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec");\r
-       addPackage("68169ab0-d41b-4009-9060-292c253ac43d");\r
-       return true;\r
+        addPackage("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec");\r
+        addPackage("68169ab0-d41b-4009-9060-292c253ac43d");\r
+        return true;\r
     }\r
     \r
     public final boolean addPackage (String guid) {\r
-       if (packagedependencies.getPackageList().contains(guid)) {\r
-               return false;\r
-       } else {\r
+        if (packagedependencies.getPackageList().contains(guid)) {\r
+            return false;\r
+        } else {\r
             packagedependencies.addNewPackage().setPackageGuid(guid);\r
             return true;\r
-       }\r
+        }\r
     }\r
     \r
-    public final boolean setupModuleDefinitions () {                           //????????? give this job to moduleinfo\r
-       moduledefinitions.setBinaryModule(false);\r
-       moduledefinitions.setOutputFileBasename(msaheader.getModuleName());\r
-       return true;\r
+    public final boolean setupModuleDefinitions () {                //????????? give this job to moduleinfo\r
+        moduledefinitions.setBinaryModule(false);\r
+        moduledefinitions.setOutputFileBasename(msaheader.getModuleName());\r
+        return true;\r
     }\r
     public final boolean addSupportedArchitectures (Enum arch) {\r
-       if (listarch.contains(arch)) {\r
-               return false;\r
-       } else {\r
-               listarch.add(arch);\r
-               return true;\r
-       }\r
+        if (listarch.contains(arch)) {\r
+            return false;\r
+        } else {\r
+            listarch.add(arch);\r
+            return true;\r
+        }\r
     }\r
     \r
     public final boolean addSpecification (String specification) {\r
         if (msaheader.getSpecification() == null) {\r
             if (specification == null) {\r
-               msaheader.setSpecification(SPECIFICATION);\r
+                msaheader.setSpecification(SPECIFICATION);\r
             } else {\r
-               msaheader.setSpecification(specification);\r
+                msaheader.setSpecification(specification);\r
             }\r
             return true;\r
         } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate Specification");\r
-               return false;\r
+            MigrationTool.ui.println ("Warning: Duplicate Specification");\r
+            return false;\r
         }\r
     }\r
     \r
     public final boolean addLicense (String licensecontent) {\r
         if (msaheader.getLicense() == null) {\r
-               license = msaheader.addNewLicense();\r
+            license = msaheader.addNewLicense();\r
             if (licensecontent == null) {\r
-               license.setStringValue(LICENSE);\r
+                license.setStringValue(LICENSE);\r
             } else {\r
-               license.setStringValue(licensecontent);\r
+                license.setStringValue(licensecontent);\r
             }\r
             return true;\r
         } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate License");\r
-               return false;\r
+            MigrationTool.ui.println ("Warning: Duplicate License");\r
+            return false;\r
         }\r
     }\r
     \r
     public final boolean addDescription (String description) {\r
         if (msaheader.getDescription() == null) {\r
             if (description == null) {\r
-               msaheader.setDescription(DESCRIPTION);\r
+                msaheader.setDescription(DESCRIPTION);\r
             } else {\r
-               msaheader.setDescription(description);\r
+                msaheader.setDescription(description);\r
             }\r
             return true;\r
         } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate Description");\r
-               return false;\r
+            MigrationTool.ui.println ("Warning: Duplicate Description");\r
+            return false;\r
         }\r
     }\r
     \r
     public final boolean addAbstract (String abs) {\r
         if (msaheader.getAbstract() == null) {\r
             if (abs == null) {\r
-               msaheader.setAbstract(ABSTRACT + msaheader.getModuleName());\r
+                msaheader.setAbstract(ABSTRACT + msaheader.getModuleName());\r
             } else {\r
-               msaheader.setVersion(abs);\r
+                msaheader.setVersion(abs);\r
             }\r
             return true;\r
         } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate Abstract");\r
-               return false;\r
+            MigrationTool.ui.println ("Warning: Duplicate Abstract");\r
+            return false;\r
         }\r
     }\r
     \r
     public final boolean addVersion (String version) {\r
         if (msaheader.getVersion() == null) {\r
             if (version == null) {\r
-               msaheader.setVersion(VERSION);\r
+                msaheader.setVersion(VERSION);\r
             } else {\r
-               msaheader.setVersion(version);\r
+                msaheader.setVersion(version);\r
             }\r
             return true;\r
         } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate Version");\r
-               return false;\r
+            MigrationTool.ui.println ("Warning: Duplicate Version");\r
+            return false;\r
         }\r
     }\r
     \r
     public final boolean addCopyRight (String copyright) {\r
-       if (msaheader.getCopyright() == null) {\r
-               if (copyright == null) {\r
+        if (msaheader.getCopyright() == null) {\r
+            if (copyright == null) {\r
                 msaheader.setCopyright(COPYRIGHT);\r
-               } else {\r
-                       msaheader.setCopyright(copyright);\r
-               }\r
-               return true;\r
-       } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate CopyRight");\r
-               return false;\r
-       }\r
+            } else {\r
+                msaheader.setCopyright(copyright);\r
+            }\r
+            return true;\r
+        } else {\r
+            MigrationTool.ui.println ("Warning: Duplicate CopyRight");\r
+            return false;\r
+        }\r
     }\r
     \r
     public final boolean addModuleType (String moduletype) {\r
-       if (msaheader.getModuleType() == null) {\r
-               msaheader.setModuleType(ModuleTypeDef.Enum.forString(moduletype));\r
-               return true;\r
-       } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate ModuleType");\r
-               return false;\r
-       }\r
+        if (msaheader.getModuleType() == null) {\r
+            msaheader.setModuleType(ModuleTypeDef.Enum.forString(moduletype));\r
+            return true;\r
+        } else {\r
+            MigrationTool.ui.println ("Warning: Duplicate ModuleType");\r
+            return false;\r
+        }\r
     }\r
     \r
     public final boolean addGuidValue (String guidvalue) {\r
-       if (msaheader.getGuidValue() == null) {\r
-               msaheader.setGuidValue(guidvalue);\r
-               return true;\r
-       } else  {\r
-               MigrationTool.ui.println ("Warning: Duplicate GuidValue");\r
-               return false;\r
-       }\r
+        if (msaheader.getGuidValue() == null) {\r
+            msaheader.setGuidValue(guidvalue);\r
+            return true;\r
+        } else  {\r
+            MigrationTool.ui.println ("Warning: Duplicate GuidValue");\r
+            return false;\r
+        }\r
     }\r
     \r
     public final boolean addModuleName (String modulename) {\r
-       if (msaheader.getModuleName() == null) {\r
-               msaheader.setModuleName(modulename);\r
-               return true;\r
-       } else {\r
-               MigrationTool.ui.println ("Warning: Duplicate ModuleName");\r
-               return false;\r
-       }\r
+        if (msaheader.getModuleName() == null) {\r
+            msaheader.setModuleName(modulename);\r
+            return true;\r
+        } else {\r
+            MigrationTool.ui.println ("Warning: Duplicate ModuleName");\r
+            return false;\r
+        }\r
     }\r
     //-----------------------------msaheader-------------------------------------//\r
     \r
-    public final void addSourceFiles (String filename, int arch) {\r
-       \r
+    public final void flush(String outputpath) 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(outputpath));\r
+        msadoc.save(bw, options);\r
+        bw.flush();\r
+        bw.close();\r
     }\r
     \r
     private final MsaOwner init () {\r
-       msa = msadoc.addNewModuleSurfaceArea();\r
-       msaheader = msa.addNewMsaHeader();\r
-       moduledefinitions = msa.addNewModuleDefinitions();\r
-       moduledefinitions.setSupportedArchitectures(listarch);\r
-       \r
-       sourcefiles = msa.addNewSourceFiles();\r
-       packagedependencies = msa.addNewPackageDependencies();\r
-       libclassdefs = msa.addNewLibraryClassDefinitions();\r
-       externs = msa.addNewExterns();\r
-       return this;\r
+        msa = msadoc.addNewModuleSurfaceArea();\r
+        msaheader = msa.addNewMsaHeader();\r
+        moduledefinitions = msa.addNewModuleDefinitions();\r
+        moduledefinitions.setSupportedArchitectures(listarch);\r
+        \r
+        sourcefiles = msa.addNewSourceFiles();\r
+        packagedependencies = msa.addNewPackageDependencies();\r
+        libclassdefs = msa.addNewLibraryClassDefinitions();\r
+        externs = msa.addNewExterns();\r
+        return this;\r
     }\r
     \r
     public static final MsaOwner initNewMsaOwner() {\r
-       return new MsaOwner().init();\r
+        return new MsaOwner().init();\r
     }\r
 }
\ No newline at end of file
index 589fb56..3db2507 100644 (file)
@@ -20,10 +20,10 @@ import org.tianocore.SupportedArchitectures.Enum;
 import org.apache.xmlbeans.*;\r
 \r
 public class MsaWriter {\r
-       MsaWriter(ModuleInfo moduleinfo) {\r
-               mi = moduleinfo;\r
-       }\r
-       \r
+    MsaWriter(ModuleInfo moduleinfo) {\r
+        mi = moduleinfo;\r
+    }\r
+    \r
     private ModuleInfo mi;\r
     private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance();\r
     \r