**/\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
\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
\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
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
\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
}\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