]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ToolArg.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / FrameworkTasks / org / tianocore / framework / tasks / ToolArg.java
diff --git a/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ToolArg.java b/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ToolArg.java
new file mode 100644 (file)
index 0000000..ade6817
--- /dev/null
@@ -0,0 +1,151 @@
+/** @file\r
+This file is used to nest elements which is meant for tool's argument\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
+/**\r
+ ToolArg class is defined to represent the argument of a tool. The argument \r
+ includes the prefix (e.g. -I, -o) and the value.\r
+ **/\r
+public class ToolArg extends NestElement {\r
+    ///\r
+    /// A constant which is used to represent an empty argument\r
+    /// \r
+    public final static ToolArg EMPTY_ARG = new ToolArg();\r
+\r
+    //\r
+    // Keep track the prefix of this argument\r
+    // \r
+    private String prefix = "";\r
+\r
+    /**\r
+       Default constructor\r
+     **/\r
+    public ToolArg() {\r
+    }\r
+\r
+    /**\r
+       Constructor which will initialize the prefix of this argument\r
+\r
+       @param prefix    The string of prefix\r
+     */\r
+    public ToolArg(String prefix) {\r
+        this.prefix = prefix;\r
+    }\r
+\r
+    /**\r
+       Constructor which will initialize both the prefix and value of this argument\r
+       \r
+       @param prefix    The prefix of this argument\r
+       @param value     The value of this argument\r
+     */\r
+    public ToolArg(String prefix, String value) {\r
+        setArg(prefix, value);\r
+    }\r
+\r
+    /**\r
+       Set the prefix and value of this argument\r
+\r
+       @param prefix    The prefix of this argument\r
+       @param value     The value of this argument \r
+     */\r
+    public void setArg(String prefix, String value) {\r
+        this.prefix = prefix;\r
+        super.setName(value);\r
+    }\r
+\r
+    /**\r
+       Set the prefix of this argument\r
+\r
+       @param prefix    The prefix of this argument\r
+     */\r
+    public void setPrefix(String prefix) {\r
+        this.prefix = prefix;\r
+    }\r
+\r
+    /**\r
+       Get the prefix of this argument\r
+\r
+       @return String   The prefix of this argument\r
+     */\r
+    public String getPrefix() {\r
+        return this.prefix.trim();\r
+    }\r
+\r
+    /**\r
+       Set the value of this argument\r
+\r
+       @param value     The value of this argument\r
+     */\r
+    public void setValue(String value) {\r
+        super.setName(value);\r
+    }\r
+\r
+    /**\r
+       Add a value for this argument\r
+\r
+       @param value     The value of this argument\r
+     */\r
+    public void insValue(String value) {\r
+        super.insName(value);\r
+    }\r
+\r
+    /**\r
+       Get the value list of this argument, separated by space\r
+\r
+       @return String   The value list\r
+     */\r
+    public String getValue() {\r
+        return super.toString(" ").trim();\r
+    }\r
+\r
+    /**\r
+       Set the argument as a whole\r
+\r
+       @param line      The argument string line\r
+     */\r
+    public void setLine(String line) {\r
+        //\r
+        // Since the prefix is in the "line", we don't need another prefix.\r
+        // \r
+        this.prefix = " ";\r
+        super.setName(line);\r
+    }\r
+\r
+    /**\r
+       Get the argument line\r
+\r
+       @return String   The argument string line\r
+     */\r
+    public String getLine() {\r
+        return this.toString();\r
+    }\r
+\r
+    /**\r
+       Compose a complete argument string.\r
+\r
+       @return String   The complete argument\r
+     */\r
+    public String toString() {\r
+        return super.toString(prefix);\r
+    }\r
+\r
+    /**\r
+       Check if the argument is empty or not\r
+\r
+       @return boolean\r
+     **/\r
+    public boolean isEmpty() {\r
+        return (prefix.length() == 0) && (nameList.isEmpty());\r
+    }\r
+}\r