]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / FrameworkTasks / org / tianocore / framework / tasks / GuidChkTask.java
diff --git a/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java b/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java
new file mode 100644 (file)
index 0000000..2f892a7
--- /dev/null
@@ -0,0 +1,368 @@
+/** @file\r
+ GuidChkTask class.\r
+\r
+ GuidChkTask is to call GuidChk.exe to generate Section.\r
\r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution.  The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
+**/\r
+package org.tianocore.framework.tasks;\r
+import java.io.BufferedReader;\r
+import java.io.InputStreamReader;\r
+import java.io.PrintWriter;\r
+import java.io.File;\r
+\r
+import org.apache.tools.ant.BuildException;\r
+import org.apache.tools.ant.Project;\r
+import org.apache.tools.ant.Task;\r
+\r
+import org.tianocore.common.logger.EdkLog;\r
+\r
+/**\r
+  GuidChkTask\r
+  \r
+  GuidChkTask is to call GuidChk.exe to generate Section.\r
+  \r
+**/\r
+public class GuidChkTask extends Task implements EfiDefine{\r
+    /**\r
+     *  GuidChk task class\r
+     *  class member\r
+     *    -exDir   : directory name of exclusion searching  \r
+     *    -exFile  : file name of exclusion searching\r
+     *    -exExt   : extension name of exclusion searching\r
+     *    -exSubDir: extesnion name of sub dir which excluded searching\r
+     *    -outFile : out put file wrote internal GUID+basename list\r
+     *    -chkGui  : check for duplicate guids\r
+     *    -chkSign : check for duplicate signatures\r
+     *    -printGuiDef : if set will print guid+defined symbol name\r
+     *    -printAllGuid: if set will print all GUIDS found\r
+     *    -outPut  : redirection file name\r
+     *    -fos     : out put redirect to this file \r
+     *    \r
+     */\r
+    //\r
+    // Tool name\r
+    // \r
+    private static String toolName = "GuidChk";\r
+    //\r
+    // Directory name of exclusion searching \r
+    //\r
+    private FileArg exDir = new FileArg();\r
+    //\r
+    // File name of exclusion searching.\r
+    //\r
+    private FileArg exFile = new FileArg();\r
+    //\r
+    // Extension name of exclusion searching.\r
+    //\r
+    private FileArg exExt = new FileArg();\r
+    //\r
+    // Extesnion name of sub dir which excluded searching.\r
+    //\r
+    private FileArg exSubDir = new FileArg();\r
+    //\r
+    // Out put file wrote internal GUID+basename list\r
+    //\r
+    private FileArg outFile = new FileArg();\r
+    //\r
+    // Check for duplicate guids.\r
+    //\r
+    private ToolArg chkGui = new ToolArg();\r
+    //\r
+    // Check for duplicate signatures\r
+    //\r
+    private ToolArg chkSign = new ToolArg();\r
+    //\r
+    // If set will print guid+defined symbol name\r
+    //\r
+    private ToolArg printGuiDef = new ToolArg();\r
+    //\r
+    // If set will print all GUIDS found\r
+    //\r
+    private ToolArg printAllGuid = new ToolArg();\r
+    //\r
+    // redirection file name.\r
+    //\r
+    private String outPut = "";\r
+    //\r
+    // out put redirect to this file.\r
+    //\r
+    protected PrintWriter fos = null;\r
+    \r
+    //\r
+    // overload class execute method\r
+    //   \r
+    public void execute() throws BuildException {\r
+        Project project = this.getOwningTarget().getProject();\r
+        String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");\r
+        String command;\r
+        if (path == null) {\r
+            command = toolName;\r
+        } else {\r
+            command = path + File.separatorChar + toolName;\r
+        }\r
+        String argument = "" + exDir +\r
+                               exFile +\r
+                               exExt +\r
+                               exSubDir +\r
+                               outFile +\r
+                               chkGui +\r
+                               chkSign +\r
+                               printGuiDef + \r
+                               printAllGuid;     \r
+        try {\r
+            EdkLog.log(this, EdkLog.EDK_VERBOSE, command + " " + argument);\r
+            //\r
+            // execute command line \r
+            //\r
+            Process proc = Runtime.getRuntime().exec(command + " " + argument);\r
+            //\r
+            // if set output, redirect out put to output file, else print output to screen\r
+            //         \r
+            if ( !this.outPut.equals("")) {\r
+                fos = new PrintWriter(this.outPut);\r
+                BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
+                String line = bin.readLine();\r
+                while (line != null ){                  \r
+                    fos.println(line);\r
+                    line = bin.readLine();\r
+                }\r
+                fos.close();\r
+            }\r
+            else {\r
+                BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
+                String line = bin.readLine();\r
+                while (line != null ){\r
+                    line = bin.readLine();\r
+                }               \r
+            }                      \r
+            EdkLog.log(this, EdkLog.EDK_VERBOSE, toolName + " Succeeded!");\r
+        } catch (Exception e) {\r
+            throw new BuildException(toolName + " failed!");\r
+        }\r
+    }\r
+    /**\r
+      getChkGui\r
+      \r
+      This function is to get the string of flag of ChkGui\r
+      \r
+      @return                     string of flag of ChkGui\r
+    **/\r
+    public String getChkGui() {\r
+        return chkGui.getValue();\r
+    }\r
+    \r
+    /**\r
+      setChkGui\r
+      \r
+      This function is to set chkGui\r
+      \r
+      @param chkGui               set class member of chkGui\r
+    **/\r
+    public void setChkGui(boolean chkGui) {\r
+        if (chkGui) {\r
+            this.chkGui.setArg(" -", "g");\r
+        }        \r
+    }\r
+    \r
+    /**\r
+      getChkSign\r
+      \r
+      This function is to get chkSign\r
+      \r
+      @return                  chkSign\r
+    **/\r
+    public String getChkSign() {\r
+        return chkSign.getValue();\r
+    }\r
+    \r
+    /**\r
+      setChkSign\r
+      \r
+      This function is to set class member of chkSign\r
+     * @param chkSign\r
+     */\r
+    public void setChkSign(boolean chkSign) {\r
+        if (chkSign){\r
+            this.chkSign.setArg(" -", "s");\r
+        }       \r
+    }\r
+    /**\r
+      getExDir\r
+      \r
+      This function is to get class member of exDir\r
+      \r
+      @return                 exDir\r
+    **/\r
+    public String getExDir() {\r
+        return exDir.getValue();\r
+    }\r
+    \r
+    /**\r
+      setExDir\r
+      \r
+      This function is to set class member of exDir\r
+      \r
+      @param                   exDir\r
+    **/\r
+    public void setExDir(String exDir) {\r
+        this.exDir.setArg(" -d ", exDir);\r
+    }\r
+    \r
+    /**\r
+      getExExt\r
+      \r
+      This function is to get class member of exExt\r
+      \r
+      @return                    exExt\r
+    **/\r
+    public String getExExt() {\r
+        return exExt.getValue();\r
+    }\r
+    \r
+    /**\r
+      setExExt\r
+      \r
+      This function is to set class member of exExt\r
+      @param                      exExt\r
+    **/\r
+    public void setExExt(String exExt) {\r
+        this.exExt.setArg(" -e ", exExt);\r
+    }\r
+    \r
+    /**\r
+      getExFile\r
+      \r
+      This function is to get class member of exFile\r
+      @return                    exFile\r
+    **/\r
+    public String getExFile() {\r
+        return exFile.getValue();\r
+    }\r
+    \r
+    /**\r
+      setExFile\r
+      \r
+      This function is to set class member of exFile.\r
+      \r
+     @param                       exFile\r
+    **/\r
+    public void setExFile(String exFile) {\r
+        this.exFile.setArg(" -f ", exFile);\r
+    }\r
+    \r
+    /**\r
+      getExSubDir\r
+      \r
+      This function is to get class member of exSubDir\r
+      \r
+      @return                      exSubDir\r
+    **/\r
+    public String getExSubDir() {\r
+        return exSubDir.getValue();\r
+    }\r
+    \r
+    /**\r
+      setExSubDir\r
+      \r
+      This function is to set class member of exSubDir.\r
+     @param                         exSubDir\r
+    **/\r
+    public void setExSubDir(String exSubDir) {\r
+        this.exSubDir.setArg(" -u ", exSubDir);\r
+    }\r
+    \r
+    /**\r
+      getOutFile\r
+      \r
+      This function is to get outFile\r
+      \r
+     @return                        outFile\r
+    **/\r
+    public String getOutFile() {\r
+        return outFile.getValue();\r
+    }\r
+    /**\r
+     * set class member of outFile\r
+     * @param outFile\r
+     */\r
+    public void setOutFile(String outFile) {\r
+        this.outFile.setArg(" -b ", outFile);\r
+    }\r
+    /**\r
+      getPrintGuidDef\r
+      \r
+      This function is to get printGuidDef\r
+      \r
+      @return     flage of printing (guid+defined symbol name)\r
+    **/\r
+    public String getPrintGuiDef() {\r
+        return printGuiDef.getValue();\r
+    }\r
+    \r
+    \r
+    /**\r
+      setPrintGuidDef\r
+      \r
+      This function is to set class member of printGuiDef.\r
+      @param       printGuiDef\r
+    **/\r
+    public void setPrintGuiDef(boolean printGuiDef) {\r
+        if (printGuiDef){\r
+            this.printGuiDef.setArg(" -", "x");\r
+        }\r
+        \r
+    }\r
+    \r
+    /**\r
+      getOutput\r
+      \r
+      This function is to get output\r
+      \r
+      @return       name of outPut file\r
+    **/\r
+    public String getOutPut() {\r
+        return outPut;\r
+    }\r
+    \r
+    /**\r
+      setOutPut\r
+      \r
+      This function is to set class member of outPut.\r
+      @param outPut\r
+    **/\r
+    public void setOutPut(String outPut) {\r
+        this.outPut = outPut;\r
+    }\r
+    \r
+    /**\r
+      getPrintAllGuid\r
+      \r
+      This function is to get printAllGuid\r
+      @return         printAllGuid\r
+    **/\r
+    public String getPrintAllGuid() {\r
+        return printAllGuid.getValue();\r
+    }\r
+    \r
+    /**\r
+      setPrintAllGuid\r
+      \r
+      This function is to set class member of printAllGuid.\r
+      @param          printAllGuid\r
+    **/\r
+    public void setPrintAllGuid(boolean printAllGuid) {\r
+        if (printAllGuid) {\r
+            this.printAllGuid.setArg(" -", "p");\r
+        }       \r
+    }\r
+}\r
+\r