]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/SaveFile.java
Adjusted locations and sizes of boxes for Windows, Linux and iMac GUI, no other funct...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / common / SaveFile.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file provides interface to save xml file.\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard.common;\r
16\r
17import java.io.File;\r
18\r
19import org.apache.xmlbeans.XmlCursor;\r
f9334421 20import org.apache.xmlbeans.XmlObject;\r
a13899c5 21import org.apache.xmlbeans.XmlOptions;\r
22import org.tianocore.FrameworkDatabaseDocument;\r
23import org.tianocore.ModuleSurfaceAreaDocument;\r
24import org.tianocore.PackageSurfaceAreaDocument;\r
25import org.tianocore.PlatformSurfaceAreaDocument;\r
26import org.tianocore.FrameworkDatabaseDocument.FrameworkDatabase;\r
27import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
28import org.tianocore.PackageSurfaceAreaDocument.PackageSurfaceArea;\r
29import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;\r
30\r
31public class SaveFile {\r
32\r
33 /**\r
34 \r
35 @param args\r
36 \r
37 **/\r
38 public static void main(String[] args) {\r
2003a22e 39 \r
40 }\r
41 \r
42 private static void createDirectory(String path) throws Exception {\r
43 File f = new File(path);\r
44 path = f.getParent();\r
45 FileOperation.newFolder(path);\r
a13899c5 46 }\r
47\r
48 /**\r
49 Save file as msa\r
50 \r
51 **/\r
52 public static void saveMsaFile(String path, ModuleSurfaceArea msa) throws Exception {\r
2003a22e 53 //\r
54 // Create the file's directory first\r
55 //\r
56 createDirectory(path);\r
57 \r
f9334421 58 //\r
59 // Remove all empty top level elements\r
60 //\r
61 XmlObject o = msa.getLibraryClassDefinitions();\r
62 if (o != null) {\r
63 if (msa.getLibraryClassDefinitions().getLibraryClassList().size() <= 0) {\r
64 XmlCursor xmlCursor = o.newCursor();\r
65 xmlCursor.removeXml();\r
66 xmlCursor.dispose();\r
67 }\r
68 }\r
69\r
70 o = msa.getSourceFiles();\r
71 if (o != null) {\r
72 if (msa.getSourceFiles().getFilenameList().size() <= 0) {\r
73 XmlCursor xmlCursor = o.newCursor();\r
74 xmlCursor.removeXml();\r
75 xmlCursor.dispose();\r
76 }\r
77 }\r
78\r
79 o = msa.getPackageDependencies();\r
80 if (o != null) {\r
81 if (msa.getPackageDependencies().getPackageList().size() <= 0) {\r
82 XmlCursor xmlCursor = o.newCursor();\r
83 xmlCursor.removeXml();\r
84 xmlCursor.dispose();\r
85 }\r
86 }\r
87\r
88 o = msa.getProtocols();\r
89 if (o != null) {\r
90 if (msa.getProtocols().getProtocolList().size() <= 0\r
91 && msa.getProtocols().getProtocolNotifyList().size() <= 0) {\r
92 XmlCursor xmlCursor = o.newCursor();\r
93 xmlCursor.removeXml();\r
94 xmlCursor.dispose();\r
95 }\r
96 }\r
97\r
98 o = msa.getEvents();\r
99 if (o != null) {\r
100 if (msa.getEvents().getCreateEvents() != null || msa.getEvents().getSignalEvents() != null) {\r
101 if (msa.getEvents().getCreateEvents() != null && msa.getEvents().getCreateEvents().getEventTypesList().size() <= 0) {\r
102 XmlCursor xmlCursor = o.newCursor();\r
103 xmlCursor.removeXml();\r
104 xmlCursor.dispose();\r
105 }\r
106 if (msa.getEvents().getSignalEvents() != null && msa.getEvents().getSignalEvents().getEventTypesList().size() <= 0) {\r
107 XmlCursor xmlCursor = o.newCursor();\r
108 xmlCursor.removeXml();\r
109 xmlCursor.dispose(); \r
110 }\r
111 } else {\r
112 XmlCursor xmlCursor = o.newCursor();\r
113 xmlCursor.removeXml();\r
114 xmlCursor.dispose();\r
115 }\r
116 }\r
117\r
118 o = msa.getHobs();\r
119 if (o != null) {\r
120 if (msa.getHobs().getHobTypesList().size() <= 0) {\r
121 XmlCursor xmlCursor = o.newCursor();\r
122 xmlCursor.removeXml();\r
123 xmlCursor.dispose();\r
124 }\r
125 }\r
126\r
127 o = msa.getPPIs();\r
128 if (o != null) {\r
129 if (msa.getPPIs().getPpiList().size() <= 0 && msa.getPPIs().getPpiNotifyList().size() <= 0) {\r
130 XmlCursor xmlCursor = o.newCursor();\r
131 xmlCursor.removeXml();\r
132 xmlCursor.dispose();\r
133 }\r
134 }\r
135\r
136 o = msa.getVariables();\r
137 if (o != null) {\r
138 if (msa.getVariables().getVariableList().size() <= 0) {\r
139 XmlCursor xmlCursor = o.newCursor();\r
140 xmlCursor.removeXml();\r
141 xmlCursor.dispose();\r
142 }\r
143 }\r
144\r
145 o = msa.getBootModes();\r
146 if (o != null) {\r
147 if (msa.getBootModes().getBootModeList().size() <= 0) {\r
148 XmlCursor xmlCursor = o.newCursor();\r
149 xmlCursor.removeXml();\r
150 xmlCursor.dispose();\r
151 }\r
152 }\r
153\r
154 o = msa.getSystemTables();\r
155 if (o != null) {\r
156 if (msa.getSystemTables().getSystemTableCNamesList().size() <= 0) {\r
157 XmlCursor xmlCursor = o.newCursor();\r
158 xmlCursor.removeXml();\r
159 xmlCursor.dispose();\r
160 }\r
161 }\r
162\r
163 o = msa.getDataHubs();\r
164 if (o != null) {\r
165 if (msa.getDataHubs().getDataHubRecordList().size() <= 0) {\r
166 XmlCursor xmlCursor = o.newCursor();\r
167 xmlCursor.removeXml();\r
168 xmlCursor.dispose();\r
169 }\r
170 }\r
171\r
172 o = msa.getHiiPackages();\r
173 if (o != null) {\r
174 if (msa.getHiiPackages().getHiiPackageList().size() <= 0) {\r
175 XmlCursor xmlCursor = o.newCursor();\r
176 xmlCursor.removeXml();\r
177 xmlCursor.dispose();\r
178 }\r
179 }\r
180\r
181 o = msa.getGuids();\r
182 if (o != null) {\r
183 if (msa.getGuids().getGuidCNamesList().size() <= 0) {\r
184 XmlCursor xmlCursor = o.newCursor();\r
185 xmlCursor.removeXml();\r
186 xmlCursor.dispose();\r
187 }\r
188 }\r
189\r
190 o = msa.getExterns();\r
191 if (o != null) {\r
192 if (msa.getExterns().getExternList().size() <= 0 && msa.getExterns().getSpecificationList().size() <= 0\r
193 && msa.getExterns().getPcdIsDriver() == null) {\r
194 XmlCursor xmlCursor = o.newCursor();\r
195 xmlCursor.removeXml();\r
196 xmlCursor.dispose();\r
197 }\r
198 }\r
199\r
200 o = msa.getPcdCoded();\r
201 if (o != null) {\r
202 if (msa.getPcdCoded().getPcdEntryList().size() <= 0) {\r
203 XmlCursor xmlCursor = o.newCursor();\r
204 xmlCursor.removeXml();\r
205 xmlCursor.dispose();\r
206 }\r
207 }\r
208\r
a13899c5 209 ModuleSurfaceAreaDocument msaDoc = ModuleSurfaceAreaDocument.Factory.newInstance();\r
210 File f = new File(path);\r
211\r
212 //\r
213 //Init namespace\r
214 //\r
215 XmlCursor cursor = XmlConfig.setupXmlCursor(msa.newCursor());\r
216\r
217 //\r
218 //Config file format\r
219 //\r
220 XmlOptions options = XmlConfig.setupXmlOptions();\r
221\r
222 //\r
223 //Create finial doc\r
224 //\r
225 msaDoc.addNewModuleSurfaceArea();\r
226 msaDoc.setModuleSurfaceArea((ModuleSurfaceArea) cursor.getObject());\r
227 //\r
228 //Save the file\r
229 //\r
230 msaDoc.save(f, options);\r
231 }\r
232\r
233 /**\r
234 Save file as spd\r
235 \r
236 **/\r
237 public static void saveSpdFile(String path, PackageSurfaceArea spd) throws Exception {\r
2003a22e 238 //\r
239 // Create the file's directory first\r
240 //\r
241 createDirectory(path);\r
242 \r
a13899c5 243 PackageSurfaceAreaDocument spdDoc = PackageSurfaceAreaDocument.Factory.newInstance();\r
244 File f = new File(path);\r
245\r
246 //\r
247 //Init namespace\r
248 //\r
249 XmlCursor cursor = XmlConfig.setupXmlCursor(spd.newCursor());\r
250\r
251 //\r
252 //Config file format\r
253 //\r
254 XmlOptions options = XmlConfig.setupXmlOptions();\r
255\r
256 //\r
257 //Create finial doc\r
258 //\r
259 spdDoc.addNewPackageSurfaceArea();\r
260 spdDoc.setPackageSurfaceArea((PackageSurfaceArea) cursor.getObject());\r
261 //\r
262 //Save the file\r
263 //\r
264 spdDoc.save(f, options);\r
265 }\r
266\r
267 /**\r
268 Save file as fpd\r
269 \r
270 **/\r
271 public static void saveFpdFile(String path, PlatformSurfaceArea fpd) throws Exception {\r
2003a22e 272 //\r
273 // Create the file's directory first\r
274 //\r
275 createDirectory(path);\r
276 \r
a13899c5 277 PlatformSurfaceAreaDocument fpdDoc = PlatformSurfaceAreaDocument.Factory.newInstance();\r
278 File f = new File(path);\r
279\r
280 //\r
281 //Init namespace\r
282 //\r
283 XmlCursor cursor = XmlConfig.setupXmlCursor(fpd.newCursor());\r
284\r
285 //\r
286 //Config file format\r
287 //\r
288 XmlOptions options = XmlConfig.setupXmlOptions();\r
289\r
290 //\r
291 //Create finial doc\r
292 //\r
293 fpdDoc.addNewPlatformSurfaceArea();\r
294 fpdDoc.setPlatformSurfaceArea((PlatformSurfaceArea) cursor.getObject());\r
295 //\r
296 //Save the file\r
297 //\r
298 fpdDoc.save(f, options);\r
299 }\r
300\r
301 /**\r
302 Save file as framework db\r
303 \r
304 **/\r
305 public static void saveDbFile(String path, FrameworkDatabase db) throws Exception {\r
306 FrameworkDatabaseDocument dbDoc = FrameworkDatabaseDocument.Factory.newInstance();\r
307 File f = new File(path);\r
308\r
309 //\r
310 //Init namespace\r
311 //\r
312 XmlCursor cursor = XmlConfig.setupXmlCursor(db.newCursor());\r
313\r
314 //\r
315 //Config file format\r
316 //\r
317 XmlOptions options = XmlConfig.setupXmlOptions();\r
318\r
319 //\r
320 //Create finial doc\r
321 //\r
322 dbDoc.addNewFrameworkDatabase();\r
323 dbDoc.setFrameworkDatabase((FrameworkDatabase) cursor.getObject());\r
f9334421 324\r
a13899c5 325 //\r
326 //Save the file\r
327 //\r
328 dbDoc.save(f, options);\r
329 }\r
330}\r