3 The file provides interface to save xml file.
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 package org
.tianocore
.frameworkwizard
.common
;
19 import org
.apache
.xmlbeans
.XmlCursor
;
20 import org
.apache
.xmlbeans
.XmlObject
;
21 import org
.apache
.xmlbeans
.XmlOptions
;
22 import org
.tianocore
.FrameworkDatabaseDocument
;
23 import org
.tianocore
.ModuleSurfaceAreaDocument
;
24 import org
.tianocore
.PackageSurfaceAreaDocument
;
25 import org
.tianocore
.PlatformSurfaceAreaDocument
;
26 import org
.tianocore
.FrameworkDatabaseDocument
.FrameworkDatabase
;
27 import org
.tianocore
.ModuleSurfaceAreaDocument
.ModuleSurfaceArea
;
28 import org
.tianocore
.PackageSurfaceAreaDocument
.PackageSurfaceArea
;
29 import org
.tianocore
.PlatformSurfaceAreaDocument
.PlatformSurfaceArea
;
31 public class SaveFile
{
38 public static void main(String
[] args
) {
39 // TODO Auto-generated method stub
47 public static void saveMsaFile(String path
, ModuleSurfaceArea msa
) throws Exception
{
49 // Remove all empty top level elements
51 XmlObject o
= msa
.getLibraryClassDefinitions();
53 if (msa
.getLibraryClassDefinitions().getLibraryClassList().size() <= 0) {
54 XmlCursor xmlCursor
= o
.newCursor();
55 xmlCursor
.removeXml();
60 o
= msa
.getSourceFiles();
62 if (msa
.getSourceFiles().getFilenameList().size() <= 0) {
63 XmlCursor xmlCursor
= o
.newCursor();
64 xmlCursor
.removeXml();
69 o
= msa
.getPackageDependencies();
71 if (msa
.getPackageDependencies().getPackageList().size() <= 0) {
72 XmlCursor xmlCursor
= o
.newCursor();
73 xmlCursor
.removeXml();
78 o
= msa
.getProtocols();
80 if (msa
.getProtocols().getProtocolList().size() <= 0
81 && msa
.getProtocols().getProtocolNotifyList().size() <= 0) {
82 XmlCursor xmlCursor
= o
.newCursor();
83 xmlCursor
.removeXml();
90 if (msa
.getEvents().getCreateEvents() != null || msa
.getEvents().getSignalEvents() != null) {
91 if (msa
.getEvents().getCreateEvents() != null && msa
.getEvents().getCreateEvents().getEventTypesList().size() <= 0) {
92 XmlCursor xmlCursor
= o
.newCursor();
93 xmlCursor
.removeXml();
96 if (msa
.getEvents().getSignalEvents() != null && msa
.getEvents().getSignalEvents().getEventTypesList().size() <= 0) {
97 XmlCursor xmlCursor
= o
.newCursor();
98 xmlCursor
.removeXml();
102 XmlCursor xmlCursor
= o
.newCursor();
103 xmlCursor
.removeXml();
110 if (msa
.getHobs().getHobTypesList().size() <= 0) {
111 XmlCursor xmlCursor
= o
.newCursor();
112 xmlCursor
.removeXml();
119 if (msa
.getPPIs().getPpiList().size() <= 0 && msa
.getPPIs().getPpiNotifyList().size() <= 0) {
120 XmlCursor xmlCursor
= o
.newCursor();
121 xmlCursor
.removeXml();
126 o
= msa
.getVariables();
128 if (msa
.getVariables().getVariableList().size() <= 0) {
129 XmlCursor xmlCursor
= o
.newCursor();
130 xmlCursor
.removeXml();
135 o
= msa
.getBootModes();
137 if (msa
.getBootModes().getBootModeList().size() <= 0) {
138 XmlCursor xmlCursor
= o
.newCursor();
139 xmlCursor
.removeXml();
144 o
= msa
.getSystemTables();
146 if (msa
.getSystemTables().getSystemTableCNamesList().size() <= 0) {
147 XmlCursor xmlCursor
= o
.newCursor();
148 xmlCursor
.removeXml();
153 o
= msa
.getDataHubs();
155 if (msa
.getDataHubs().getDataHubRecordList().size() <= 0) {
156 XmlCursor xmlCursor
= o
.newCursor();
157 xmlCursor
.removeXml();
162 o
= msa
.getHiiPackages();
164 if (msa
.getHiiPackages().getHiiPackageList().size() <= 0) {
165 XmlCursor xmlCursor
= o
.newCursor();
166 xmlCursor
.removeXml();
173 if (msa
.getGuids().getGuidCNamesList().size() <= 0) {
174 XmlCursor xmlCursor
= o
.newCursor();
175 xmlCursor
.removeXml();
180 o
= msa
.getExterns();
182 if (msa
.getExterns().getExternList().size() <= 0 && msa
.getExterns().getSpecificationList().size() <= 0
183 && msa
.getExterns().getPcdIsDriver() == null) {
184 XmlCursor xmlCursor
= o
.newCursor();
185 xmlCursor
.removeXml();
190 o
= msa
.getPcdCoded();
192 if (msa
.getPcdCoded().getPcdEntryList().size() <= 0) {
193 XmlCursor xmlCursor
= o
.newCursor();
194 xmlCursor
.removeXml();
199 ModuleSurfaceAreaDocument msaDoc
= ModuleSurfaceAreaDocument
.Factory
.newInstance();
200 File f
= new File(path
);
205 XmlCursor cursor
= XmlConfig
.setupXmlCursor(msa
.newCursor());
210 XmlOptions options
= XmlConfig
.setupXmlOptions();
215 msaDoc
.addNewModuleSurfaceArea();
216 msaDoc
.setModuleSurfaceArea((ModuleSurfaceArea
) cursor
.getObject());
220 msaDoc
.save(f
, options
);
227 public static void saveSpdFile(String path
, PackageSurfaceArea spd
) throws Exception
{
228 PackageSurfaceAreaDocument spdDoc
= PackageSurfaceAreaDocument
.Factory
.newInstance();
229 File f
= new File(path
);
234 XmlCursor cursor
= XmlConfig
.setupXmlCursor(spd
.newCursor());
239 XmlOptions options
= XmlConfig
.setupXmlOptions();
244 spdDoc
.addNewPackageSurfaceArea();
245 spdDoc
.setPackageSurfaceArea((PackageSurfaceArea
) cursor
.getObject());
249 spdDoc
.save(f
, options
);
256 public static void saveFpdFile(String path
, PlatformSurfaceArea fpd
) throws Exception
{
257 PlatformSurfaceAreaDocument fpdDoc
= PlatformSurfaceAreaDocument
.Factory
.newInstance();
258 File f
= new File(path
);
263 XmlCursor cursor
= XmlConfig
.setupXmlCursor(fpd
.newCursor());
268 XmlOptions options
= XmlConfig
.setupXmlOptions();
273 fpdDoc
.addNewPlatformSurfaceArea();
274 fpdDoc
.setPlatformSurfaceArea((PlatformSurfaceArea
) cursor
.getObject());
278 fpdDoc
.save(f
, options
);
282 Save file as framework db
285 public static void saveDbFile(String path
, FrameworkDatabase db
) throws Exception
{
286 FrameworkDatabaseDocument dbDoc
= FrameworkDatabaseDocument
.Factory
.newInstance();
287 File f
= new File(path
);
292 XmlCursor cursor
= XmlConfig
.setupXmlCursor(db
.newCursor());
297 XmlOptions options
= XmlConfig
.setupXmlOptions();
302 dbDoc
.addNewFrameworkDatabase();
303 dbDoc
.setFrameworkDatabase((FrameworkDatabase
) cursor
.getObject());
308 dbDoc
.save(f
, options
);