]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / Tool.java
diff --git a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java
deleted file mode 100644 (file)
index fbf69e2..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/** @file\r
-This file is to define nested element which is meant for specifying a tool\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
-\r
-import java.io.DataInputStream;\r
-import java.io.DataOutputStream;\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.FileOutputStream;\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Random;\r
-\r
-import org.apache.tools.ant.BuildException;\r
-import org.tianocore.common.logger.EdkLog;\r
-\r
-/**\r
- Class Tool is to define an external tool to be used for genffsfile\r
- **/\r
-public class Tool implements EfiDefine, Section {\r
-\r
-    private String toolName     = "";\r
-    private ToolArg toolArgList = new ToolArg();\r
-    private Input inputFiles = new Input();\r
-    private Input tempInputFile = new Input();\r
-    private String outputPath;\r
-    private String outputFileName ;\r
-    private static Random ran = new Random(9999); \r
-    private List<Section>  gensectList = new ArrayList<Section>();\r
-    /**\r
-     Call extern tool\r
-\r
-     @param     buffer  The buffer to put the result with alignment\r
-     **/\r
-    public void toBuffer (DataOutputStream buffer){\r
-        ///\r
-        /// call extern tool\r
-        ///\r
-        try {\r
-            executeTool ();\r
-        } catch (Exception e) {\r
-            throw new BuildException("Call to executeTool failed!\n" + e.getMessage());\r
-        }\r
-\r
-        ///\r
-        /// check if file exist\r
-        ///\r
-        File outputFile = new File (this.outputFileName);\r
-        if (!outputFile.exists()) {\r
-            throw new BuildException("The file " + outputFile.getPath() + " does not exist!\n");\r
-        }\r
-\r
-        ///\r
-        /// Read output file and write it's cotains to buffer\r
-        ///\r
-        FileInputStream fs = null;\r
-        DataInputStream in = null;\r
-        try {\r
-            fs  = new FileInputStream (outputFile);\r
-            in  = new DataInputStream (fs);\r
-\r
-\r
-            int fileLen = (int)outputFile.length();\r
-            byte[] data  = new byte[fileLen];\r
-            in.read(data);\r
-            buffer.write(data, 0, fileLen);\r
-\r
-            ///\r
-            /// 4 byte alignment\r
-            ///\r
-            while ((fileLen & 0x03) != 0) {\r
-                fileLen++;\r
-                buffer.writeByte(0);\r
-            }\r
-        } catch (Exception e) {\r
-            EdkLog.log(e.getMessage());\r
-            throw new BuildException("Tool call, toBuffer failed!\n");\r
-        } finally {\r
-            try {\r
-                if (in != null) {\r
-                    in.close();\r
-                }\r
-                if (fs != null) {\r
-                    fs.close();\r
-                }\r
-                outputFile.delete(); \r
-            } catch (Exception e) {\r
-                EdkLog.log("WARNING: Cannot close " + outputFile.getPath());\r
-            }\r
-        }\r
-    }\r
-\r
-    ///\r
-    /// execute external tool for genffsfile\r
-    ///\r
-    private void executeTool () {\r
-        String command   = "";\r
-        String argument  = "";\r
-        command          = toolName;\r
-        \r
-        //\r
-        //  Get each section which under the compress {};\r
-        //  And add it is contains to File;\r
-        //\r
-        Section sect;\r
-        try{\r
-            Iterator SectionIter = this.gensectList.iterator();\r
-            while (SectionIter.hasNext()){\r
-                sect = (Section)SectionIter.next();\r
-                //\r
-                // Parse <genSection> element\r
-                //\r
-                File outputFile = File.createTempFile("temp", "sec1", new File(outputPath));\r
-                FileOutputStream bo = new FileOutputStream(outputFile);\r
-                DataOutputStream Do = new DataOutputStream (bo);\r
-                //\r
-                //  Call each section class's toBuffer function.\r
-                //\r
-                try {\r
-                    sect.toBuffer(Do);\r
-                }\r
-                catch (BuildException e) {\r
-                    EdkLog.log(e.getMessage());\r
-                    throw new BuildException ("GenSection failed at Tool!");\r
-                } finally {\r
-                    if (Do != null){\r
-                        Do.close();    \r
-                    }\r
-                    \r
-                } \r
-                this.tempInputFile.insFile(outputFile.getPath());\r
-            }        \r
-        } catch (IOException e){\r
-            throw new BuildException ("Gensection failed at tool!");\r
-        } \r
-\r
-        try {\r
-            this.outputFileName = "Temp" + ran.nextInt();\r
-            argument   = toolArgList + inputFiles.toStringWithSinglepPrefix(" -i ") \r
-                         + tempInputFile.toString(" ")+ " -o " + outputFileName;\r
-            EdkLog.log(this, EdkLog.EDK_VERBOSE, command + " " + argument);\r
-            ///\r
-            /// execute command line\r
-            ///\r
-            Process process = Runtime.getRuntime().exec(command + " " + argument);\r
-            process.waitFor();\r
-            Iterator tempFile = tempInputFile.getNameList().iterator();\r
-            while (tempFile.hasNext()){\r
-                File file = new File((String)tempFile.next());\r
-                if (file.exists()) {\r
-                    file.delete();\r
-                }\r
-            }\r
-        } catch (Exception e) {\r            EdkLog.log(e.getMessage());\r
-            throw new BuildException("Execution of externalTool task failed!\n");\r
-        }\r
-    }\r
-\r
-    /**\r
-     Add method of ANT task/datatype for nested ToolArg type of element\r
-\r
-     @param     toolArg     The ToolArg object containing arguments for the tool\r
-     **/\r
-    public void addConfiguredToolArg (ToolArg toolArg) {\r
-        toolArgList.insert(toolArg);\r
-    }\r
-\r
-    /**\r
-     Get method of ANT task/datatype for attribute "OutputPath"\r
-\r
-     @returns   The name of output path\r
-     **/\r
-    public String getOutputPath() {\r
-        return outputPath;\r
-    }\r
-\r
-    /**\r
-     Set method of ANT task/datatype for attribute "OutputPath"\r
-\r
-     @param     outputPath  The name of output path\r
-     **/\r
-    public void setOutputPath(String outPutPath) {\r
-        this.outputPath = outPutPath;\r
-    }\r
-\r
-    /**\r
-     Get method of ANT task/datatype for attribute "ToolName"\r
-\r
-     @returns   The name of the tool.\r
-     **/\r
-    public String getToolName() {\r
-        return toolName;\r
-    }\r
-\r
-    /**\r
-     Set method of ANT task/datatype for attribute "ToolName"\r
-\r
-     @param     toolName    The name of the tool\r
-     **/\r
-    public void setToolName(String toolName) {\r
-        this.toolName = toolName;\r
-    }\r
-\r
-    /**\r
-     Add method of ANT task/datatype for nested Input type of element\r
-\r
-     @param     file    The Input objec which represents a file\r
-     **/\r
-    public void addConfiguredInput(Input file) {\r
-        inputFiles.insert(file);\r
-    }\r
-    \r
-//    /**\r
-//      addTool\r
-//      \r
-//      This function is to add instance of Tool to list.\r
-//      \r
-//      @param tool             instance of Tool.\r
-//    **/\r
-//    public void addTool(Tool tool){\r
-//        this.toolList.add(tool);\r
-//    }\r
-    \r
-    public void addGenSection(GenSectionTask genSect){\r
-        this.gensectList.add(genSect);\r
-    }    \r
-}\r
-\r
-\r