]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaParser.java
Fix capitalization
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / global / SurfaceAreaParser.java
CommitLineData
878ddf1f 1/** @file\r
2 SurfaceAreaParser class.\r
3 \r
4 SurfaceAreaParser class is used to parse module surface area include both \r
5 driver and library. \r
6\r
7Copyright (c) 2006, Intel Corporation\r
8All rights reserved. This program and the accompanying materials\r
9are licensed and made available under the terms and conditions of the BSD License\r
10which accompanies this distribution. The full text of the license may be found at\r
11http://opensource.org/licenses/bsd-license.php\r
12\r
13THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
15**/\r
16package org.tianocore.build.global;\r
17\r
18import java.io.File;\r
19import java.util.HashMap;\r
20import java.util.Map;\r
21\r
22import org.apache.tools.ant.BuildException;\r
23import org.apache.xmlbeans.XmlObject;\r
24import org.tianocore.LibraryModuleBuildDescriptionDocument;\r
25import org.tianocore.LibraryModuleSurfaceAreaDocument;\r
26import org.tianocore.ModuleBuildDescriptionDocument;\r
27import org.tianocore.ModuleSurfaceAreaDocument;\r
28\r
29/**\r
30 This class is used to parse module surface area (MSA & MBD) include both \r
31 driver and library. \r
32\r
33 @since GenBuild 1.0\r
34**/\r
35public class SurfaceAreaParser {\r
36\r
37 /**\r
38 Using XmlBeans to parse and valid surface area file. \r
39 \r
40 @param surfaceAreaFile the surface area file to parse\r
41 @return top level elements and its value mapping information\r
42 @throws BuildException\r
43 If surface area is not well-formed or invalid\r
44 **/\r
45 public Map<String, XmlObject> parseFile(File surfaceAreaFile) throws BuildException {\r
46 Map<String, XmlObject> map = new HashMap<String, XmlObject>();\r
47 try {\r
48 XmlObject sadoc = XmlObject.Factory.parse(surfaceAreaFile);\r
49 // Validate File if they obey XML Schema\r
50 \r
51 if ( ! sadoc.validate()){\r
52 throw new BuildException("Surface Area file [" + surfaceAreaFile.getPath() + "] is invalid.");\r
53 }\r
54 if (sadoc instanceof ModuleSurfaceAreaDocument){\r
55 parseFile((ModuleSurfaceAreaDocument) sadoc, map);\r
56 }\r
57 else if(sadoc instanceof ModuleBuildDescriptionDocument){\r
58 parseFile((ModuleBuildDescriptionDocument) sadoc, map);\r
59 }\r
60 else if(sadoc instanceof LibraryModuleSurfaceAreaDocument){\r
61 parseFile((LibraryModuleSurfaceAreaDocument) sadoc, map);\r
62 }\r
63 else if(sadoc instanceof LibraryModuleBuildDescriptionDocument){\r
64 parseFile((LibraryModuleBuildDescriptionDocument) sadoc, map);\r
65 }\r
66 }\r
67 catch (Exception ex){\r
68 throw new BuildException(ex.getMessage());\r
69 }\r
70 return map;\r
71 }\r
72 \r
73 \r
74 /**\r
75 Parse MSA.\r
76 \r
77 @param doc top level surface area XML document\r
78 @param msaMap the map to store the result\r
79 **/\r
80 private void parseFile(ModuleSurfaceAreaDocument doc, Map<String, XmlObject> msaMap) {\r
81 msaMap.put("MsaHeader", doc.getModuleSurfaceArea().getMsaHeader());\r
82 msaMap.put("LibraryClassDefinitions", doc.getModuleSurfaceArea()\r
83 .getLibraryClassDefinitions());\r
84 msaMap.put("SourceFiles", doc.getModuleSurfaceArea().getSourceFiles());\r
85 msaMap.put("Includes", doc.getModuleSurfaceArea().getIncludes());\r
86 msaMap.put("Protocols", doc.getModuleSurfaceArea().getProtocols());\r
87\r
88 msaMap.put("Events", doc.getModuleSurfaceArea().getEvents());\r
89 msaMap.put("Hobs", doc.getModuleSurfaceArea().getHobs());\r
90 msaMap.put("PPIs", doc.getModuleSurfaceArea().getPPIs());\r
91 msaMap.put("Variables", doc.getModuleSurfaceArea().getVariables());\r
92 msaMap.put("BootModes", doc.getModuleSurfaceArea().getBootModes());\r
93\r
94 msaMap\r
95 .put("SystemTables", doc.getModuleSurfaceArea()\r
96 .getSystemTables());\r
97 msaMap.put("DataHubs", doc.getModuleSurfaceArea().getDataHubs());\r
98 msaMap.put("Formsets", doc.getModuleSurfaceArea().getFormsets());\r
99 msaMap.put("Guids", doc.getModuleSurfaceArea().getGuids());\r
100 msaMap.put("Externs", doc.getModuleSurfaceArea().getExterns());\r
101\r
102 msaMap.put("PCDs", doc.getModuleSurfaceArea().getPCDs());\r
103 msaMap\r
104 .put("BuildOptions", doc.getModuleSurfaceArea()\r
105 .getBuildOptions());\r
106 }\r
107\r
108 /**\r
109 Parse MBD.\r
110 \r
111 @param doc top level surface area XML document\r
112 @param msaMap the map to store the result\r
113 **/\r
114 private void parseFile(ModuleBuildDescriptionDocument doc, Map<String, XmlObject> mbdMap) {\r
115 mbdMap.put("MbdHeader", doc.getModuleBuildDescription().getMbdHeader());\r
116 mbdMap.put("Libraries", doc.getModuleBuildDescription().getLibraries());\r
117 mbdMap.put("SourceFiles", doc.getModuleBuildDescription()\r
118 .getSourceFiles());\r
119 mbdMap.put("Includes", doc.getModuleBuildDescription().getIncludes());\r
120 mbdMap.put("Protocols", doc.getModuleBuildDescription().getProtocols());\r
121\r
122 mbdMap.put("Events", doc.getModuleBuildDescription().getEvents());\r
123 mbdMap.put("Hobs", doc.getModuleBuildDescription().getHobs());\r
124 mbdMap.put("PPIs", doc.getModuleBuildDescription().getPPIs());\r
125 mbdMap.put("Variables", doc.getModuleBuildDescription().getVariables());\r
126 mbdMap.put("BootModes", doc.getModuleBuildDescription().getBootModes());\r
127\r
128 mbdMap.put("SystemTables", doc.getModuleBuildDescription()\r
129 .getSystemTables());\r
130 mbdMap.put("DataHubs", doc.getModuleBuildDescription().getDataHubs());\r
131 mbdMap.put("Formsets", doc.getModuleBuildDescription().getFormsets());\r
132 mbdMap.put("Guids", doc.getModuleBuildDescription().getGuids());\r
133 mbdMap.put("Externs", doc.getModuleBuildDescription().getExterns());\r
134\r
135 mbdMap.put("PCDs", doc.getModuleBuildDescription().getPCDs());\r
136 mbdMap.put("BuildOptions", doc.getModuleBuildDescription()\r
137 .getBuildOptions());\r
138 }\r
139 /**\r
140 Parse Library MSA.\r
141\r
142 @param doc top level surface area XML document\r
143 @param msaMap the map to store the result\r
144 **/\r
145 private void parseFile(LibraryModuleSurfaceAreaDocument doc, Map<String, XmlObject> msaMap) {\r
146 msaMap.put("MsaLibHeader", doc.getLibraryModuleSurfaceArea()\r
147 .getMsaLibHeader());\r
148 msaMap.put("LibraryClassDefinitions", doc.getLibraryModuleSurfaceArea()\r
149 .getLibraryClassDefinitions());\r
150 msaMap.put("SourceFiles", doc.getLibraryModuleSurfaceArea()\r
151 .getSourceFiles());\r
152 msaMap.put("Includes", doc.getLibraryModuleSurfaceArea().getIncludes());\r
153 msaMap.put("Protocols", doc.getLibraryModuleSurfaceArea()\r
154 .getProtocols());\r
155\r
156 msaMap.put("Events", doc.getLibraryModuleSurfaceArea().getEvents());\r
157 msaMap.put("Hobs", doc.getLibraryModuleSurfaceArea().getHobs());\r
158 msaMap.put("PPIs", doc.getLibraryModuleSurfaceArea().getPPIs());\r
159 msaMap.put("Variables", doc.getLibraryModuleSurfaceArea()\r
160 .getVariables());\r
161 msaMap.put("BootModes", doc.getLibraryModuleSurfaceArea()\r
162 .getBootModes());\r
163\r
164 msaMap.put("SystemTables", doc.getLibraryModuleSurfaceArea()\r
165 .getSystemTables());\r
166 msaMap.put("DataHubs", doc.getLibraryModuleSurfaceArea().getDataHubs());\r
167 msaMap.put("Formsets", doc.getLibraryModuleSurfaceArea().getFormsets());\r
168 msaMap.put("Guids", doc.getLibraryModuleSurfaceArea().getGuids());\r
169 msaMap.put("Externs", doc.getLibraryModuleSurfaceArea().getExterns());\r
170\r
171 msaMap.put("PCDs", doc.getLibraryModuleSurfaceArea().getPCDs());\r
172 msaMap.put("BuildOptions", doc.getLibraryModuleSurfaceArea()\r
173 .getBuildOptions());\r
174 }\r
175\r
176 /**\r
177 Parse Library MBD.\r
178\r
179 @param doc top level surface area XML document\r
180 @param msaMap the map to store the result\r
181 **/\r
182 private void parseFile(LibraryModuleBuildDescriptionDocument doc, Map<String, XmlObject> mbdMap) {\r
183 mbdMap.put("MbdLibHeader", doc.getLibraryModuleBuildDescription()\r
184 .getMbdLibHeader());\r
185 mbdMap.put("Libraries", doc.getLibraryModuleBuildDescription()\r
186 .getLibraries());\r
187 mbdMap.put("SourceFiles", doc.getLibraryModuleBuildDescription()\r
188 .getSourceFiles());\r
189 mbdMap.put("Includes", doc.getLibraryModuleBuildDescription()\r
190 .getIncludes());\r
191 mbdMap.put("Protocols", doc.getLibraryModuleBuildDescription()\r
192 .getProtocols());\r
193\r
194 mbdMap\r
195 .put("Events", doc.getLibraryModuleBuildDescription()\r
196 .getEvents());\r
197 mbdMap.put("Hobs", doc.getLibraryModuleBuildDescription().getHobs());\r
198 mbdMap.put("PPIs", doc.getLibraryModuleBuildDescription().getPPIs());\r
199 mbdMap.put("Variables", doc.getLibraryModuleBuildDescription()\r
200 .getVariables());\r
201 mbdMap.put("BootModes", doc.getLibraryModuleBuildDescription()\r
202 .getBootModes());\r
203\r
204 mbdMap.put("SystemTables", doc.getLibraryModuleBuildDescription()\r
205 .getSystemTables());\r
206 mbdMap.put("DataHubs", doc.getLibraryModuleBuildDescription()\r
207 .getDataHubs());\r
208 mbdMap.put("Formsets", doc.getLibraryModuleBuildDescription()\r
209 .getFormsets());\r
210 mbdMap.put("Guids", doc.getLibraryModuleBuildDescription().getGuids());\r
211 mbdMap.put("Externs", doc.getLibraryModuleBuildDescription()\r
212 .getExterns());\r
213\r
214 mbdMap.put("PCDs", doc.getLibraryModuleBuildDescription().getPCDs());\r
215 mbdMap.put("BuildOptions", doc.getLibraryModuleBuildDescription()\r
216 .getBuildOptions());\r
217 }\r
218}\r