+ private void genAprioriFile(Set<FpdModuleIdentification> modules, File file) {\r
+ try {\r
+ FileWriter fw = new FileWriter(file);\r
+ BufferedWriter bw = new BufferedWriter(fw);\r
+ \r
+ Iterator<FpdModuleIdentification> iter = modules.iterator();\r
+ while(iter.hasNext()) {\r
+ bw.write(iter.next().getModule().getGuid());\r
+ bw.newLine();\r
+ }\r
+ \r
+ bw.flush();\r
+ bw.close();\r
+ fw.close();\r
+ } catch (IOException ex) {\r
+ BuildException buildException = new BuildException("Generation of the Apriori file [" + file.getPath() + "] failed!\n" + ex.getMessage());\r
+ buildException.setStackTrace(ex.getStackTrace());\r
+ throw buildException;\r
+ }\r
+ }\r
+ \r
+ private Set<FpdModuleIdentification> getPeiApriori(String fvName) throws EdkException {\r
+ Node node = saq.getPeiApriori(fvName);\r
+ Set<FpdModuleIdentification> result = new LinkedHashSet<FpdModuleIdentification>();\r
+ if (node == null) {\r
+ return null;\r
+ }\r
+ \r
+ NodeList childNodes = node.getChildNodes();\r
+ for (int i = 0; i < childNodes.getLength(); i++) {\r
+ Node childItem = childNodes.item(i);\r
+ if (childItem.getNodeType() == Node.ELEMENT_NODE) {\r
+ //\r
+ // Find child elements "IncludeModules"\r
+ //\r
+ if (childItem.getNodeName().compareTo("IncludeModules") == 0) {\r
+ //\r
+ // result will be updated\r
+ //\r
+ processNodes(childItem, result);\r
+ } else if (childItem.getNodeName().compareTo("FvName") == 0) {\r
+ \r
+ } else if (childItem.getNodeName().compareTo("InfFileName") == 0) {\r
+ \r
+ } else {\r
+ //\r
+ // Report Warning\r
+ //\r
+ EdkLog.log(this, EdkLog.EDK_WARNING, "Unrecognised element " + childItem.getNodeName() + " under FPD.BuildOptions.UserExtensions[UserID='APRIORI' Identifier='0']");\r
+ }\r
+ }\r
+ }\r
+ \r
+ return result;\r
+ }\r
+\r
+ private Set<FpdModuleIdentification> getDxeApriori(String fvName) throws EdkException {\r
+ Node node = saq.getDxeApriori(fvName);\r
+ Set<FpdModuleIdentification> result = new LinkedHashSet<FpdModuleIdentification>();\r
+ if (node == null) {\r
+ return null;\r
+ }\r
+ \r
+ NodeList childNodes = node.getChildNodes();\r
+ for (int i = 0; i < childNodes.getLength(); i++) {\r
+ Node childItem = childNodes.item(i);\r
+ if (childItem.getNodeType() == Node.ELEMENT_NODE) {\r
+ //\r
+ // Find child elements "IncludeModules"\r
+ //\r
+ if (childItem.getNodeName().compareTo("IncludeModules") == 0) {\r
+ //\r
+ // result will be updated\r
+ //\r
+ processNodes(childItem, result);\r
+ } else if (childItem.getNodeName().compareTo("FvName") == 0) {\r
+ \r
+ } else if (childItem.getNodeName().compareTo("InfFileName") == 0) {\r
+ \r
+ } else {\r
+ //\r
+ // Report Warning\r
+ //\r
+ EdkLog.log(this, EdkLog.EDK_WARNING, "Unrecognised element " + childItem.getNodeName() + " under FPD.BuildOptions.UserExtensions[UserID='APRIORI' Identifier='1']");\r
+ }\r
+ }\r
+ }\r
+ \r
+ return result;\r
+ }\r
+ \r