]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/StrGatherTask.java
Modify FV attribute editor and generate FvImage Attributes in FPD file.
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / StrGatherTask.java
index 8368caa4bd9854383e39a037dcf8684e61be9347..b84adf2525d25de9ebfbb769dd7f2d0c12312dca 100644 (file)
@@ -13,10 +13,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 package org.tianocore.framework.tasks;\r
 \r
+import java.io.File;\r
 import java.util.*;\r
+\r
+import org.apache.tools.ant.BuildException;\r
 import org.apache.tools.ant.Project;\r
 import org.apache.tools.ant.Task;\r
-import org.apache.tools.ant.BuildException;\r
 import org.apache.tools.ant.taskdefs.Execute;\r
 import org.apache.tools.ant.taskdefs.LogStreamHandler;\r
 import org.apache.tools.ant.types.Commandline;\r
@@ -57,9 +59,9 @@ public class StrGatherTask extends Task implements EfiDefine {
 \r
     private String outputDatabase = "";\r
 \r
-    private List<Object> databaseList = new ArrayList<Object>();\r
+    private List<Database> databaseList = new ArrayList<Database>();\r
 \r
-    private List<Object> inputFileList = new ArrayList<Object>();\r
+    private List<InputFile> inputFileList = new ArrayList<InputFile>();\r
 \r
     ///\r
     /// parse options newDatabase -- "ture/false" unquoteString -- "ture/false"\r
@@ -68,14 +70,14 @@ public class StrGatherTask extends Task implements EfiDefine {
 \r
     private String unquotedString = "";\r
 \r
-    private List<Object> includePathList = new ArrayList<Object>();\r
+    private List<IncludePath> includePathList = new ArrayList<IncludePath>();\r
 \r
     ///\r
     /// scan options ignoreNotFound -- "ture/false"\r
     ///\r
     private String ignoreNotFound = "";\r
 \r
-    private List<Object> skipExtList = new ArrayList<Object>();\r
+    private List<SkipExt> skipExtList = new ArrayList<SkipExt>();\r
 \r
     ///\r
     /// dump options\r
@@ -111,18 +113,18 @@ public class StrGatherTask extends Task implements EfiDefine {
         String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH"); \r
         String command;\r
         if (path == null) {\r
-            command = "strgather";\r
+            command = "StrGather";\r
         } else {\r
-            command = path + "/" + "strgather";\r
+            command = path + File.separator + "StrGather";\r
         }\r
 \r
         ///\r
         /// transfer nested elements into string\r
         ///\r
-        String databases = list2Str(databaseList, "-db");\r
-        String skipExts = list2Str(skipExtList, "-skipext");\r
-        String includePaths = list2Str(includePathList, "-I");\r
-        String inputFiles = list2Str(inputFileList, "");\r
+        String databases = list2Str(databaseList);\r
+        String skipExts = list2Str(skipExtList);\r
+        String includePaths = list2Str(includePathList);\r
+        String inputFiles = list2Str(inputFileList);\r
 \r
         ///\r
         /// assemble argument\r
@@ -148,22 +150,18 @@ public class StrGatherTask extends Task implements EfiDefine {
 \r
             runner.setAntRun(project);\r
             runner.setCommandline(cmdline.getCommandline());\r
-            System.out.println(Commandline.toString(cmdline.getCommandline()));\r
 \r
+            log(Commandline.toString(cmdline.getCommandline()), Project.MSG_VERBOSE);\r
+            log(this.commandType.substring(2));\r
             revl = runner.execute();\r
             if (EFI_SUCCESS == revl) {\r
-                ///\r
-                /// command execution success\r
-                ///\r
-                System.out.println("strgather succeeded!");\r
+                log("StrGather succeeded!", Project.MSG_VERBOSE);\r
             } else {\r
                 ///\r
                 /// command execution fail\r
                 ///\r
-                System.out.println("strgather failed. (error="\r
-                        + Integer.toHexString(revl) + ")");\r
-                throw new BuildException("strgather failed. (error="\r
-                        + Integer.toHexString(revl) + ")");\r
+                log("ERROR = " + Integer.toHexString(revl));\r
+                throw new BuildException("StrGather failed!");\r
             }\r
         } catch (Exception e) {\r
             throw new BuildException(e.getMessage());\r
@@ -465,63 +463,20 @@ public class StrGatherTask extends Task implements EfiDefine {
     }\r
 \r
     /**\r
-     transfer List to String\r
-     \r
-     @param     list    nested element list\r
-     @param     tag     interval tag of parameter\r
+       Compose the content in each NestElement into a single string.\r
 \r
-     @returns string line of parameters\r
+       @param list  The NestElement list\r
+       \r
+       @return String\r
      **/\r
-    private String list2Str(List list, String tag) {\r
-        ///\r
-        /// string line for return\r
-        ///\r
-        String paraStr = "";\r
-        ///\r
-        /// nested element in list\r
-        ///\r
-        NestElement element;\r
-        ///\r
-        /// iterator of nested element list\r
-        ///\r
-        Iterator elementIter = list.iterator();\r
-        ///\r
-        /// string parameter list\r
-        ///\r
-        List<Object> strList = new ArrayList<Object>();\r
-\r
-        while (elementIter.hasNext()) {\r
-            element = (NestElement) elementIter.next();\r
-            if (null != element.getFile()) {\r
-                ///\r
-                /// nested element include file\r
-                ///\r
-                FileParser.loadFile(project, strList, element.getFile(), tag);\r
-            } \r
-\r
-            if (element.getName().length() > 0) {\r
-                ///\r
-                /// nested element include name \r
-                ///\r
-                paraStr = paraStr + " " + element.getName();\r
-            }\r
-\r
-            List<String> nameList = element.getList();\r
-            if (nameList.size() > 0) {\r
-                Iterator nameIter = nameList.iterator();\r
-                while (nameIter.hasNext()) {\r
-                    paraStr = paraStr + " " + tag + " " + (String)nameIter.next();\r
-                }\r
-            }\r
+    private String list2Str(List list) {\r
+        int listLength = list.size();\r
+        String str = "";\r
+        for (int i = 0; i < listLength; ++i) {\r
+            NestElement e = (NestElement)list.get(i);\r
+            str += e.toString();\r
         }\r
-        ///\r
-        /// iterator of string parameter list\r
-        ///\r
-        Iterator strIter = strList.iterator();\r
-        while (strIter.hasNext()) {\r
-            paraStr = paraStr + " " + strIter.next();\r
-        }\r
-        return paraStr;\r
-    }\r
 \r
+        return str;\r
+    }\r
 }\r