]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/PackageEditor/src/org/tianocore/packaging/SpdFileContents.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@511 6f19259b...
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / SpdFileContents.java
CommitLineData
878ddf1f 1/** @file\r
2 Java class SpdFileContents is used to parse spd xml file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.packaging;\r
14\r
15import java.io.File;\r
16import java.io.IOException;\r
17import java.util.List;\r
18import java.util.ListIterator;\r
4bf9d815 19import java.math.*;\r
878ddf1f 20import org.apache.xmlbeans.XmlObject;\r
21import org.apache.xmlbeans.XmlOptions;\r
22import org.apache.xmlbeans.XmlCursor;\r
23\r
24import org.tianocore.AbstractDocument;\r
25import org.tianocore.GuidDeclarationsDocument;\r
26import org.tianocore.GuidDocument;\r
27import org.tianocore.IncludeHeaderDocument;\r
28import org.tianocore.LibraryClassDeclarationDocument;\r
29import org.tianocore.LibraryClassDeclarationsDocument;\r
30import org.tianocore.LibraryClassDocument;\r
31import org.tianocore.LibraryUsage;\r
32import org.tianocore.LicenseDocument;\r
33import org.tianocore.ModuleTypeDef;\r
34import org.tianocore.MsaFilesDocument;\r
35import org.tianocore.OutputDirectoryDocument;\r
36import org.tianocore.PackageDependenciesDocument;\r
37import org.tianocore.PackageHeadersDocument;\r
38import org.tianocore.PackageNameDocument;\r
39import org.tianocore.PackageSurfaceAreaDocument;\r
40import org.tianocore.PackageType;\r
41import org.tianocore.PackageUsage;\r
42import org.tianocore.PcdDataTypes;\r
43import org.tianocore.PcdDefinitionsDocument;\r
44import org.tianocore.PcdItemTypes;\r
45import org.tianocore.PpiDeclarationsDocument;\r
46import org.tianocore.ProtocolDeclarationsDocument;\r
47import org.tianocore.SpdHeaderDocument;\r
48import org.tianocore.SpecificationDocument;\r
49import org.tianocore.GuidDeclarationsDocument.GuidDeclarations;\r
50\r
51/**\r
52 This class processes spd file contents such as add remove xml elements.\r
53 \r
54 @since PackageEditor 1.0\r
55**/\r
56public class SpdFileContents {\r
57\r
58 private File file = null;\r
59\r
60 private PackageSurfaceAreaDocument psad = null;\r
61\r
62 private PackageSurfaceAreaDocument.PackageSurfaceArea psaRoot = null;\r
63\r
64 private SpdHeaderDocument.SpdHeader spdHdr = null;\r
65\r
4bf9d815 66 private String spdHdrPkgName = null;\r
878ddf1f 67\r
68 private GuidDocument.Guid spdHdrGuid = null;\r
69\r
70 private AbstractDocument.Abstract spdHdrAbs = null;\r
71\r
72 private LicenseDocument.License spdHdrLicense = null;\r
73\r
74 private SpecificationDocument.Specification spdHdrSpec = null;\r
75\r
76 private OutputDirectoryDocument.OutputDirectory spdHdrOutDir = null;\r
77\r
78 private LibraryClassDeclarationsDocument.LibraryClassDeclarations spdLibClassDeclarations = null;\r
79\r
80 private PackageDependenciesDocument.PackageDependencies spdPkgDeps = null;\r
81\r
82 private MsaFilesDocument.MsaFiles spdMsaFiles = null;\r
83\r
84 private PackageHeadersDocument.PackageHeaders spdModHdrs = null;\r
85\r
86 private GuidDeclarationsDocument.GuidDeclarations spdGuidDeclarations = null;\r
87\r
88 private ProtocolDeclarationsDocument.ProtocolDeclarations spdProtocolDeclarations = null;\r
89\r
90 private PpiDeclarationsDocument.PpiDeclarations spdPpiDeclarations = null;\r
91\r
92 private PcdDefinitionsDocument.PcdDefinitions spdPcdDefinitions = null;\r
93\r
94 /**\r
95 Constructor to create a new spd file\r
96 **/\r
97 public SpdFileContents() {\r
98\r
99 psad = PackageSurfaceAreaDocument.Factory.newInstance();\r
100 psaRoot = psad.addNewPackageSurfaceArea();\r
101\r
102 }\r
103\r
104 /**\r
105 Constructor based on an existing spd file\r
106 \r
107 @param f Existing spd file\r
108 **/\r
109 public SpdFileContents(File f) {\r
110 try {\r
111 psad = PackageSurfaceAreaDocument.Factory.parse(f);\r
112 psaRoot = psad.getPackageSurfaceArea();\r
113 file = f;\r
114 } catch (Exception e) {\r
115 System.out.println(e.toString());\r
116 }\r
117 }\r
118\r
119 /**\r
120 Remove existing pcd definitions elements using XmlCursor\r
121 **/\r
122 public void removeSpdPcdDefinition() {\r
123 XmlObject o = psaRoot.getPcdDefinitions();\r
124 if (o == null)\r
125 return;\r
126 XmlCursor cursor = o.newCursor();\r
127 cursor.removeXml();\r
24dba7f3 128 spdPcdDefinitions = null;\r
878ddf1f 129 }\r
130\r
131 /**\r
132 Remove existing ppi declarations using XmlCursor\r
133 **/\r
134 public void removeSpdPpiDeclaration() {\r
135 XmlObject o = psaRoot.getPpiDeclarations();\r
136 if (o == null)\r
137 return;\r
138 XmlCursor cursor = o.newCursor();\r
139 cursor.removeXml();\r
24dba7f3 140 spdPpiDeclarations = null;\r
878ddf1f 141 }\r
142\r
143 /**\r
144 Remove existing protocols declarations using XmlCursor\r
145 **/\r
146 public void removeSpdProtocolDeclaration() {\r
147 XmlObject o = psaRoot.getProtocolDeclarations();\r
148 if (o == null)\r
149 return;\r
150 XmlCursor cursor = o.newCursor();\r
151 cursor.removeXml();\r
24dba7f3 152 spdProtocolDeclarations = null;\r
878ddf1f 153 }\r
154\r
155 /**\r
156 Remove existing GUID declarations using XmlCursor\r
157 **/\r
158 public void removeSpdGuidDeclaration() {\r
159 XmlObject o = psaRoot.getGuidDeclarations();\r
160 if (o == null)\r
161 return;\r
162 XmlCursor cursor = o.newCursor();\r
163 cursor.removeXml();\r
24dba7f3 164 spdGuidDeclarations = null; \r
878ddf1f 165 }\r
166\r
167 /**\r
24dba7f3 168 Remove existing spd package include files using XmlCursor\r
878ddf1f 169 **/\r
170 public void removeSpdPkgHeader() {\r
171 XmlObject o = psaRoot.getPackageHeaders();\r
172 if (o == null)\r
173 return;\r
174 XmlCursor cursor = o.newCursor();\r
175 cursor.removeXml();\r
24dba7f3 176 spdModHdrs = null;\r
878ddf1f 177 }\r
178\r
179 /**\r
180 Remove existing msa files using XmlCursor\r
181 **/\r
182 public void removeSpdMsaFile() {\r
183 XmlObject o = psaRoot.getMsaFiles();\r
184 if (o == null)\r
185 return;\r
186 XmlCursor cursor = o.newCursor();\r
187 cursor.removeXml();\r
24dba7f3 188 spdMsaFiles = null;\r
878ddf1f 189 }\r
190\r
191 /**\r
192 Remove existing library class declarations using XmlCursor\r
193 **/\r
194 public void removeSpdLibClass() {\r
195 XmlObject o = psaRoot.getLibraryClassDeclarations();\r
196 if (o == null)\r
197 return;\r
198 XmlCursor cursor = o.newCursor();\r
199 cursor.removeXml();\r
24dba7f3 200 spdLibClassDeclarations = null;\r
878ddf1f 201 }\r
202\r
203 /**\r
204 Get spd file header contents into String array\r
205 \r
206 @param s Caller allocated String array\r
207 **/\r
208 public void getSpdHdrDetails(String[] s) {\r
209 if (getSpdHdr() == null) {\r
210 spdHdr = psaRoot.addNewSpdHeader();\r
211 }\r
4bf9d815 212 s[0] = getSpdHdrPkgName();\r
878ddf1f 213 s[1] = getSpdHdrGuid().getStringValue();\r
214 s[2] = getSpdHdrVer();\r
215 s[3] = getSpdHdrAbs().getStringValue();\r
216 s[4] = getSpdHdr().getDescription();\r
217 s[5] = getSpdHdr().getCopyright();\r
218 s[6] = getSpdHdrLicense().getStringValue();\r
219 s[7] = getSpdHdr().getCreated();\r
220 s[8] = getSpdHdr().getURL();\r
221 if (getSpdHdr().getPackageType() != null) {\r
222 s[9] = getSpdHdr().getPackageType().toString();\r
223 }\r
224 //\r
225 // convert boolean to String by adding empty String ""\r
226 //\r
227 s[10] = getSpdHdr().getReadOnly() + "";\r
228 s[11] = getSpdHdr().getReadOnly() + "";\r
229 }\r
230\r
231 /**\r
232 Get the number of library class declarations from the size of List\r
233 \r
234 @return int\r
235 **/\r
236 public int getSpdLibClassDeclarationCount() {\r
237 if (psaRoot.getLibraryClassDeclarations() == null\r
238 || psaRoot.getLibraryClassDeclarations().getLibraryClassDeclarationList() == null) {\r
239 return 0;\r
240 }\r
241 return psaRoot.getLibraryClassDeclarations().getLibraryClassDeclarationList().size();\r
242 }\r
243\r
244 /**\r
245 Get available library class declaration into String array\r
246 @param libClass Caller allocated two-dimentional String array\r
247 **/\r
248 public void getSpdLibClassDeclarations(String[][] libClass) {\r
247e0d75 249 if (psaRoot.getLibraryClassDeclarations() == null){\r
250 return;\r
251 }\r
878ddf1f 252 List<LibraryClassDeclarationDocument.LibraryClassDeclaration> l = psaRoot.getLibraryClassDeclarations()\r
253 .getLibraryClassDeclarationList();\r
254 int i = 0;\r
255 ListIterator li = l.listIterator();\r
256 while (li.hasNext()) {\r
257 LibraryClassDeclarationDocument.LibraryClassDeclaration lcd = (LibraryClassDeclarationDocument.LibraryClassDeclaration) li\r
258 .next();\r
259 if (lcd.getLibraryClass() != null) {\r
260 libClass[i][0] = lcd.getLibraryClass().getStringValue();\r
261 }\r
262 if (lcd.getIncludeHeader() != null) {\r
263 libClass[i][1] = lcd.getIncludeHeader().getStringValue();\r
264 }\r
265\r
266 i++;\r
267 }\r
268\r
269 }\r
270 \r
271 /**\r
272 Get the number of Msa files from the size of List\r
273 \r
274 @return int\r
275 **/\r
276 public int getSpdMsaFileCount() {\r
277 if (psaRoot.getMsaFiles() == null || psaRoot.getMsaFiles().getMsaFileList() == null) {\r
278 return 0;\r
279 }\r
280 return psaRoot.getMsaFiles().getMsaFileList().size();\r
281 }\r
282 \r
283 /**\r
284 Get available Msa file into String array\r
285 \r
286 @param msaFile Caller allocated two-dimentional String array\r
287 **/\r
288 public void getSpdMsaFiles(String[][] msaFile) {\r
247e0d75 289 if (psaRoot.getMsaFiles() == null) {\r
290 return;\r
291 }\r
878ddf1f 292 List<MsaFilesDocument.MsaFiles.MsaFile> l = psaRoot.getMsaFiles().getMsaFileList();\r
293 int i = 0;\r
294 ListIterator li = l.listIterator();\r
295 while (li.hasNext()) {\r
296 MsaFilesDocument.MsaFiles.MsaFile m = (MsaFilesDocument.MsaFiles.MsaFile) li.next();\r
297 if (m.getFilename() != null) {\r
298 msaFile[i][0] = m.getFilename().getStringValue();\r
299 }\r
300\r
301 i++;\r
302 }\r
303 }\r
304\r
305 /**\r
306 Get the number of include header files in PackageHeaders from the size of List\r
307 \r
308 @return int\r
309 **/\r
310 public int getSpdPackageHeaderCount() {\r
311 if (psaRoot.getPackageHeaders() == null || psaRoot.getPackageHeaders().getIncludeHeaderList() == null) {\r
312 return 0;\r
313 }\r
314 return psaRoot.getPackageHeaders().getIncludeHeaderList().size();\r
315 }\r
316\r
317 /**\r
318 Get available package header contents into String array\r
319 \r
320 @param pkgHeader Caller allocated two-dimentional String array\r
321 **/\r
322 public void getSpdPackageHeaders(String[][] pkgHeader) {\r
247e0d75 323 if (psaRoot.getPackageHeaders() == null) {\r
324 return;\r
325 }\r
326\r
878ddf1f 327 List<IncludeHeaderDocument.IncludeHeader> l = psaRoot.getPackageHeaders().getIncludeHeaderList();\r
328 int i = 0;\r
329 ListIterator li = l.listIterator();\r
330 while (li.hasNext()) {\r
331 IncludeHeaderDocument.IncludeHeader ih = (IncludeHeaderDocument.IncludeHeader) li.next();\r
332 if (ih.getModuleType() != null) {\r
333 pkgHeader[i][0] = ih.getModuleType().toString();\r
334 }\r
335\r
336 pkgHeader[i][1] = ih.getStringValue();\r
337 i++;\r
338 }\r
339 }\r
340\r
341 /**\r
342 Get the number of GUID declarations from the size of List\r
343 \r
344 @return int\r
345 **/\r
346 public int getSpdGuidDeclarationCount() {\r
347 if (psaRoot.getGuidDeclarations() == null || psaRoot.getGuidDeclarations().getEntryList() == null) {\r
348 return 0;\r
349 }\r
350 return psaRoot.getGuidDeclarations().getEntryList().size();\r
351 }\r
352\r
353 /**\r
354 Get available Guid declaration contents into String array\r
355 \r
356 @param guid Caller allocated two-dimentional String array\r
357 **/\r
358 public void getSpdGuidDeclarations(String[][] guid) {\r
247e0d75 359 if (psaRoot.getGuidDeclarations() == null) {\r
360 return;\r
361 }\r
362 \r
878ddf1f 363 List<GuidDeclarationsDocument.GuidDeclarations.Entry> l = psaRoot.getGuidDeclarations().getEntryList();\r
364 int i = 0;\r
365 ListIterator li = l.listIterator();\r
366 while (li.hasNext()) {\r
367 GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry) li\r
368 .next();\r
369 guid[i][0] = e.getName();\r
370 guid[i][1] = e.getCName();\r
371 if (e.getGuid() != null) {\r
372 guid[i][2] = e.getGuid().getStringValue();\r
373 }\r
374 i++;\r
375 }\r
376 }\r
377\r
378 /**\r
379 Get the number of protocol declarations from the size of List\r
380 \r
381 @return int\r
382 **/\r
383 public int getSpdProtocolDeclarationCount() {\r
384 if (psaRoot.getProtocolDeclarations() == null || psaRoot.getProtocolDeclarations().getEntryList() == null) {\r
385 return 0;\r
386 }\r
387 return psaRoot.getProtocolDeclarations().getEntryList().size();\r
388 }\r
389\r
390 /**\r
391 Get available protocol declaration contents into String array\r
392 \r
393 @param protocol Caller allocated two-dimentional String array\r
394 **/\r
395 public void getSpdProtocolDeclarations(String[][] protocol) {\r
247e0d75 396 if (psaRoot.getProtocolDeclarations() == null) {\r
397 return;\r
398 }\r
399 \r
878ddf1f 400 List<ProtocolDeclarationsDocument.ProtocolDeclarations.Entry> l = psaRoot.getProtocolDeclarations()\r
401 .getEntryList();\r
402 int i = 0;\r
403 ListIterator li = l.listIterator();\r
404 while (li.hasNext()) {\r
405 ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry) li\r
406 .next();\r
407 protocol[i][0] = e.getName();\r
408 protocol[i][1] = e.getCName();\r
409 if (e.getGuid() != null) {\r
410 protocol[i][2] = e.getGuid().getStringValue();\r
411 }\r
412 i++;\r
413 }\r
414 }\r
415\r
416 /**\r
417 Get the number of Ppi declarations from the size of List\r
418 \r
419 @return int\r
420 **/\r
421 public int getSpdPpiDeclarationCount() {\r
422 if (psaRoot.getPpiDeclarations() == null || psaRoot.getPpiDeclarations().getEntryList() == null) {\r
423 return 0;\r
424 }\r
425 return psaRoot.getPpiDeclarations().getEntryList().size();\r
426 }\r
427\r
428 /**\r
429 Get available Ppi declaration contents into String array\r
430 \r
431 @param ppi Caller allocated two-dimentional String array\r
432 **/\r
433 public void getSpdPpiDeclarations(String[][] ppi) {\r
247e0d75 434 if (psaRoot.getPpiDeclarations() == null) {\r
435 return;\r
436 }\r
437 \r
878ddf1f 438 List<PpiDeclarationsDocument.PpiDeclarations.Entry> l = psaRoot.getPpiDeclarations().getEntryList();\r
439 int i = 0;\r
440 ListIterator li = l.listIterator();\r
441 while (li.hasNext()) {\r
442 PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry) li.next();\r
443 ppi[i][0] = e.getName();\r
444 ppi[i][1] = e.getCName();\r
445 if (e.getGuid() != null) {\r
446 ppi[i][2] = e.getGuid().getStringValue();\r
447 }\r
448\r
449 i++;\r
450 }\r
451 }\r
452\r
453 /**\r
454 Get the number of Pcd definitions from the size of List\r
455 \r
456 @return int\r
457 **/\r
458 public int getSpdPcdDefinitionCount() {\r
459 if (psaRoot.getPcdDefinitions() == null || psaRoot.getPcdDefinitions().getPcdEntryList() == null) {\r
460 return 0;\r
461 }\r
462 return psaRoot.getPcdDefinitions().getPcdEntryList().size();\r
463 }\r
464\r
465 /**\r
466 Get available Pcd definition contents into String array\r
467 \r
468 @param pcd Caller allocated two-dimentional String array\r
469 **/\r
470 public void getSpdPcdDefinitions(String[][] pcd) {\r
247e0d75 471 if (psaRoot.getPcdDefinitions() == null) {\r
472 return;\r
473 }\r
474 \r
878ddf1f 475 List<PcdDefinitionsDocument.PcdDefinitions.PcdEntry> l = psaRoot.getPcdDefinitions().getPcdEntryList();\r
476 int i = 0;\r
477 ListIterator li = l.listIterator();\r
478 while (li.hasNext()) {\r
479 PcdDefinitionsDocument.PcdDefinitions.PcdEntry e = (PcdDefinitionsDocument.PcdDefinitions.PcdEntry) li\r
480 .next();\r
481 if (e.getItemType() != null) {\r
482 pcd[i][0] = e.getItemType().toString();\r
483 }\r
484\r
485 pcd[i][1] = e.getCName();\r
486 pcd[i][2] = e.getToken();\r
487 if (e.getDatumType() != null) {\r
488 pcd[i][3] = e.getDatumType().toString();\r
489 }\r
490\r
491 if (e.getDefaultValue() != null) {\r
492 pcd[i][4] = e.getDefaultValue().toString();\r
493 }\r
494\r
495 i++;\r
496 }\r
497 }\r
498\r
499 /**\r
500 Save the processed xml contents to file\r
501 \r
502 @param spdFile The file to save xml contents\r
503 @throws IOException Exceptions during file operation\r
504 **/\r
505 public void saveAs(File spdFile) throws IOException {\r
506\r
507 XmlOptions options = new XmlOptions();\r
508\r
509 options.setCharacterEncoding("UTF-8");\r
510 options.setSavePrettyPrint();\r
511 options.setSavePrettyPrintIndent(2);\r
512 try {\r
513 psad.save(spdFile, options);\r
514 } catch (IOException e) {\r
515 e.printStackTrace();\r
516 }\r
517\r
518 }\r
519\r
520 /**\r
521 Generate SpdHeader contents using parameters passed in.\r
522 \r
523 @param pkgName PackageName \r
524 @param pkgGuid Guid\r
525 @param pkgVer Version\r
526 @param pkgAbs Abstract\r
527 @param pkgDes Description\r
528 @param pkgCpRight Copyright\r
529 @param pkgLicense License\r
530 @param pkgCreateDate Created\r
531 @param pkgUpdateDate Updated\r
532 @param pkgURL URL\r
533 @param pkgType PackageType\r
534 @param pkgRdOnly ReadOnly\r
535 @param pkgRePkg RePackage\r
536 @param pkgSpec Reserved\r
537 @param pkgOutDir Reserved\r
538 **/\r
539 public void genSpdHeader(String pkgName, String pkgGuid, String pkgVer, String pkgAbs, String pkgDes,\r
540 String pkgCpRight, String pkgLicense, String pkgCreateDate, String pkgUpdateDate,\r
541 String pkgURL, String pkgType, String pkgRdOnly, String pkgRePkg, String pkgSpec,\r
542 String pkgOutDir) {\r
543 if (getSpdHdr() == null) {\r
544 spdHdr = psaRoot.addNewSpdHeader();\r
545 }\r
546\r
547 setSpdHdrPkgName(pkgName);\r
548 setSpdHdrGuid(pkgGuid);\r
549 setSpdHdrVer(pkgVer);\r
550 setSpdHdrAbs(pkgAbs);\r
551 setSpdHdrDes(pkgDes);\r
552 setSpdHdrCpRit(pkgCpRight);\r
553 setSpdHdrLicense(pkgLicense);\r
554 setSpdHdrCreateDate(pkgCreateDate);\r
555 setSpdHdrUpdateDate(pkgUpdateDate);\r
556 setSpdHdrURL(pkgURL);\r
557 setSpdHdrPkgType(pkgType);\r
558 setSpdHdrRdOnly(pkgRdOnly);\r
559 setSpdHdrRePkg(pkgRePkg);\r
560 setSpdHdrSpec(pkgSpec);\r
561 setSpdHdrOutDir(pkgOutDir);\r
562 }\r
563\r
564 /**\r
565 Generate library class declaration element using parameters passed in\r
566 \r
567 @param libClassBaseName LibraryClass element value\r
568 @param libClassUsage Reserved\r
569 @param incHdrFileName IncludeHeader element value\r
570 @param incHdrAttribGuid Reserved\r
571 @param incHdrAttribArch Reserved\r
572 @param incHdrAttribPath Reserved\r
573 @param incHdrAttribClass Reserved\r
574 @param incHdrAttribVer Reserved\r
575 @param incHdrAttribOverrideID Reserved\r
576 @param incHdrAttribModuleType Reserved\r
577 **/\r
578 public void genSpdLibClassDeclarations(String libClassBaseName, String libClassUsage, String incHdrFileName,\r
579 String incHdrAttribGuid, String incHdrAttribArch, String incHdrAttribPath,\r
580 String incHdrAttribClass, String incHdrAttribVer,\r
581 String incHdrAttribOverrideID, String incHdrAttribModuleType) {\r
582 if (getSpdLibClassDeclarations() == null) {\r
583 spdLibClassDeclarations = psaRoot.addNewLibraryClassDeclarations();\r
584 }\r
585 //\r
586 // add contents under LibraryClassDeclarations tag \r
587 //\r
588 setSpdLibClassDeclaration(libClassBaseName, libClassUsage, incHdrFileName, incHdrAttribGuid, incHdrAttribArch,\r
589 incHdrAttribPath, incHdrAttribClass, incHdrAttribVer, incHdrAttribOverrideID,\r
590 incHdrAttribModuleType, spdLibClassDeclarations);\r
591 }\r
592\r
593 /**\r
594 Set library class declaration contents under parent tag\r
595 \r
596 @param clsName LibraryClass element value\r
597 @param clsUsage Reserved\r
598 @param hdrFile IncludeHeader element value\r
599 @param hdrAttribGuid Reserved\r
600 @param hdrAttribArch Reserved\r
601 @param hdrAttribPath Reserved\r
602 @param hdrAttribClass Reserved\r
603 @param hdrAttribVer Reserved\r
604 @param hdrAttribOverID Reserved\r
605 @param hdrAttribModType Reserved\r
606 @param parent The tag under which library class declaration goes to\r
607 **/\r
608 public void setSpdLibClassDeclaration(String clsName, String clsUsage, String hdrFile, String hdrAttribGuid,\r
609 String hdrAttribArch, String hdrAttribPath, String hdrAttribClass,\r
610 String hdrAttribVer, String hdrAttribOverID, String hdrAttribModType,\r
611 XmlObject parent) {\r
612\r
613 LibraryClassDeclarationDocument.LibraryClassDeclaration lcd = ((LibraryClassDeclarationsDocument.LibraryClassDeclarations) parent)\r
614 .addNewLibraryClassDeclaration();\r
615\r
616 setSpdLibraryClass(clsName, clsUsage, lcd);\r
617\r
618 setSpdIncludeHeader(null, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass, hdrAttribVer,\r
619 hdrAttribOverID, lcd);\r
620 }\r
621\r
622 /**\r
623 Set the contents of LibraryClass under parent element\r
624 \r
625 @param clsName LibraryClass element value \r
626 @param clsUsage Reserved\r
627 @param parent The tag under which library class declaration goes to\r
628 **/\r
629 public void setSpdLibraryClass(String clsName, String clsUsage, XmlObject parent) {\r
b4b11851 630 LibraryClassDeclarationDocument.LibraryClassDeclaration.LibraryClass lc = ((LibraryClassDeclarationDocument.LibraryClassDeclaration) parent).addNewLibraryClass();\r
878ddf1f 631 lc.setStringValue(clsName);\r
632 }\r
633\r
634 /**\r
635 Set contents of IncludeHeader under parent element\r
636 \r
637 @param modType Reserved\r
638 @param hdrFile IncludeHeader element value\r
639 @param hdrAttribGuid Reserved\r
640 @param hdrAttribArch Reserved\r
641 @param hdrAttribPath Reserved\r
642 @param hdrAttribClass Reserved\r
643 @param hdrAttribVer Reserved\r
644 @param hdrAttribOverID Reserved\r
645 @param parent The tag under which library class declaration goes to\r
646 **/\r
647 public void setSpdIncludeHeader(String modType, String hdrFile, String hdrAttribGuid, String hdrAttribArch,\r
648 String hdrAttribPath, String hdrAttribClass, String hdrAttribVer,\r
649 String hdrAttribOverID, XmlObject parent) {\r
650 IncludeHeaderDocument.IncludeHeader ih = null;\r
651 if (parent instanceof LibraryClassDeclarationDocument.LibraryClassDeclaration) {\r
652 ih = ((LibraryClassDeclarationDocument.LibraryClassDeclaration) parent).addNewIncludeHeader();\r
653 } else if (parent instanceof PackageHeadersDocument.PackageHeaders) {\r
654 ih = ((PackageHeadersDocument.PackageHeaders) parent).addNewIncludeHeader();\r
655 } else {\r
656 return;\r
657 }\r
658\r
659 ih.setStringValue(hdrFile);\r
660 if (hdrAttribGuid != null) {\r
661 ih.setGuid(hdrAttribGuid);\r
662 }\r
663 if (hdrAttribPath != null) {\r
664 ih.setPath(hdrAttribPath);\r
665 }\r
666 if (hdrAttribClass != null) {\r
667 ih.setClass1(hdrAttribClass);\r
668 }\r
669 if (hdrAttribVer != null) {\r
670 ih.setVersion(hdrAttribVer);\r
671 }\r
672 if (hdrAttribOverID != null) {\r
673 ih.setOverrideID(Integer.parseInt(hdrAttribOverID));\r
674 }\r
675 if (modType != null) {\r
676 ih.setModuleType(ModuleTypeDef.Enum.forString(modType));\r
677\r
678 }\r
679\r
680 }\r
681\r
682 /**\r
683 Reserved method\r
684 \r
685 @param pkgDepPkgName\r
686 @param pkgDepPkgAttribGuid\r
687 @param pkgDepPkgAttribVer\r
688 @param pkgDepPkgAttribType\r
689 @param pkgDepPkgAttribUsage\r
690 @param pkgDepPkgAttribInstallDate\r
691 @param pkgDepPkgAttribUpdateDate\r
692 @param pkgDepPkgAttribPath\r
693 **/\r
694 public void genSpdPackageDependencies(String pkgDepPkgName, String pkgDepPkgAttribGuid, String pkgDepPkgAttribVer,\r
695 String pkgDepPkgAttribType, String pkgDepPkgAttribUsage,\r
696 String pkgDepPkgAttribInstallDate, String pkgDepPkgAttribUpdateDate,\r
697 String pkgDepPkgAttribPath) {\r
698 if (spdPkgDeps == null) {\r
699 spdPkgDeps = psaRoot.addNewPackageDependencies();\r
700 }\r
701\r
702 setSpdPackageName(pkgDepPkgName, pkgDepPkgAttribGuid, pkgDepPkgAttribVer, pkgDepPkgAttribType,\r
703 pkgDepPkgAttribUsage, pkgDepPkgAttribInstallDate, pkgDepPkgAttribUpdateDate,\r
704 pkgDepPkgAttribPath, spdPkgDeps);\r
705 }\r
706\r
707 /**\r
708 Reserved method\r
709 \r
710 @param pkgName\r
711 @param pkgAttribGuid\r
712 @param pkgAttribVer\r
713 @param pkgAttribType\r
714 @param pkgAttribUsage\r
715 @param pkgAttribInstallDate\r
716 @param pkgAttribUpdateDate\r
717 @param pkgAttribPath\r
718 @param parent\r
719 **/\r
720 public void setSpdPackageName(String pkgName, String pkgAttribGuid, String pkgAttribVer, String pkgAttribType,\r
721 String pkgAttribUsage, String pkgAttribInstallDate, String pkgAttribUpdateDate,\r
722 String pkgAttribPath, XmlObject parent) {\r
723\r
724 PackageNameDocument.PackageName pn = ((PackageDependenciesDocument.PackageDependencies) parent)\r
725 .addNewPackageName();\r
726 pn.setStringValue(pkgName);\r
727 pn.setPackageType(PackageType.Enum.forString(pkgAttribType));\r
728 pn.setUsage(PackageUsage.Enum.forString(pkgAttribUsage));\r
729 pn.setUpdatedDate(pkgAttribUpdateDate);\r
730 }\r
731\r
732 /**\r
733 Generate MsaFile element.\r
734 \r
735 @param msaFileName MsaFile element value\r
736 @param archType Reserved\r
737 **/\r
738 public void genSpdMsaFiles(String msaFileName, String archType) {\r
739 if (getSpdMsaFiles() == null) {\r
740 spdMsaFiles = psaRoot.addNewMsaFiles();\r
741 }\r
742 setSpdMsaFile(msaFileName, spdMsaFiles);\r
743 \r
744 }\r
745\r
746 /**\r
747 Set MsaFile contents under parent element.\r
748 \r
749 @param msaFileName MsaFile element value\r
750 @param parent Element under which MsaFile goes to\r
751 **/\r
752 public void setSpdMsaFile(String msaFileName, XmlObject parent) {\r
753\r
754 ((MsaFilesDocument.MsaFiles) parent).addNewMsaFile().addNewFilename().setStringValue(msaFileName);\r
755 }\r
756\r
757 /**\r
758 Generate PackageHeader element using parameters passed in.\r
759 \r
760 @param ModHdrModType ModuleType attribute of IncludeHeader element\r
761 @param hdrFile IncludeHeader element value\r
762 @param hdrAttribGuid Reserved\r
763 @param hdrAttribArch Reserved\r
764 @param hdrAttribPath Reserved\r
765 @param hdrAttribClass Reserved\r
766 @param hdrAttribVer Reserved\r
767 @param hdrAttribOverID Reserved\r
768 **/\r
769 public void genSpdModuleHeaders(String ModHdrModType, String hdrFile, String hdrAttribGuid, String hdrAttribArch,\r
770 String hdrAttribPath, String hdrAttribClass, String hdrAttribVer,\r
771 String hdrAttribOverID) {\r
772 if (getSpdModHdrs() == null) {\r
773 spdModHdrs = psaRoot.addNewPackageHeaders();\r
774 }\r
775\r
776 //\r
777 // add IncludeHeader under PackageHeaders element\r
778 //\r
779 setSpdIncludeHeader(ModHdrModType, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass,\r
780 hdrAttribVer, hdrAttribOverID, spdModHdrs);\r
781 }\r
782\r
783 /**\r
784 Generate GUID declaration element using parameters passed in.\r
785 \r
786 @param guidDeclEntryName Name attribute of Entry element\r
787 @param guidDeclCName CName element value\r
788 @param guidDeclGuid Guid element value\r
789 @param guidDeclFeatureFlag Reserved\r
790 **/\r
791 public void genSpdGuidDeclarations(String guidDeclEntryName, String guidDeclCName, String guidDeclGuid,\r
792 String guidDeclFeatureFlag) {\r
793 if (getSpdGuidDeclarations() == null) {\r
794 spdGuidDeclarations = psaRoot.addNewGuidDeclarations();\r
795 }\r
796\r
797 setSpdEntry(guidDeclEntryName, guidDeclCName, guidDeclGuid, guidDeclFeatureFlag, spdGuidDeclarations);\r
798 }\r
799\r
800 /**\r
801 Generate protocol declaration element using parameters passed in.\r
802 \r
803 @param protocolDeclEntryName Name attribute of Entry element\r
804 @param protocolDeclCName CName element value\r
805 @param protocolDeclGuid Guid element value\r
806 @param protocolDeclFeatureFlag Reserved\r
807 **/\r
808 public void genSpdProtocolDeclarations(String protocolDeclEntryName, String protocolDeclCName,\r
809 String protocolDeclGuid, String protocolDeclFeatureFlag) {\r
810 if (getSpdProtocolDeclarations() == null) {\r
811 spdProtocolDeclarations = psaRoot.addNewProtocolDeclarations();\r
812 }\r
813\r
814 setSpdEntry(protocolDeclEntryName, protocolDeclCName, protocolDeclGuid, protocolDeclFeatureFlag,\r
815 spdProtocolDeclarations);\r
816 }\r
817\r
818 /**\r
819 Generate PPI declaration element using parameters passed in.\r
820 \r
821 @param ppiDeclEntryName Name attribute of Entry element\r
822 @param ppiDeclCName CName element value\r
823 @param ppiDeclGuid Guid element value\r
824 @param ppiDeclFeatureFlag Reserved\r
825 **/\r
826 public void genSpdPpiDeclarations(String ppiDeclEntryName, String ppiDeclCName, String ppiDeclGuid,\r
827 String ppiDeclFeatureFlag) {\r
828 if (getSpdPpiDeclarations() == null) {\r
829 spdPpiDeclarations = psaRoot.addNewPpiDeclarations();\r
830 }\r
831\r
832 setSpdEntry(ppiDeclEntryName, ppiDeclCName, ppiDeclGuid, ppiDeclFeatureFlag, spdPpiDeclarations);\r
833 }\r
834\r
835 /**\r
836 Set Entry contents using parameters passed in\r
837 \r
838 @param entryName Name attribute of Entry element\r
839 @param cName CName element value\r
840 @param guid Guid element value\r
841 @param featureFlag Reserved\r
842 @param parent The tag under which Entry element goes to\r
843 **/\r
844 public void setSpdEntry(String entryName, String cName, String guid, String featureFlag, XmlObject parent) {\r
845\r
846 if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {\r
847 GuidDeclarationsDocument.GuidDeclarations.Entry e = ((GuidDeclarations) parent).addNewEntry();\r
848 e.setName(entryName);\r
849 e.setCName(cName);\r
850 e.addNewGuid().setStringValue(guid);\r
44570536 851 \r
878ddf1f 852 return;\r
853 }\r
854 if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
855 ProtocolDeclarationsDocument.ProtocolDeclarations.Entry pe = ((ProtocolDeclarationsDocument.ProtocolDeclarations) parent)\r
856 .addNewEntry();\r
857 pe.setName(entryName);\r
858 pe.setCName(cName);\r
859 pe.addNewGuid().setStringValue(guid);\r
44570536 860 \r
878ddf1f 861 }\r
862 if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
863 PpiDeclarationsDocument.PpiDeclarations.Entry ppe = ((PpiDeclarationsDocument.PpiDeclarations) parent)\r
864 .addNewEntry();\r
865 ppe.setName(entryName);\r
866 ppe.setCName(cName);\r
867 ppe.addNewGuid().setStringValue(guid);\r
44570536 868 \r
878ddf1f 869 return;\r
870 }\r
871\r
872 return;\r
873\r
874 }\r
875\r
876 /**\r
877 Generate Pcd definition using parameters passed in\r
878 \r
879 @param pcdItemTypes ItemType attribute of PcdEntry element\r
880 @param cName C_Name element value\r
881 @param token Token element value\r
882 @param dataType DatumType element value\r
883 @param skuEnable Reserved\r
884 @param sku Reserved\r
885 @param maxSku Reserved\r
886 @param hiiEnable Reserved\r
887 @param varGuid Reserved\r
888 @param varName Reserved\r
889 @param defaultString DefaultString element value\r
890 **/\r
891 public void genSpdPcdDefinitions(String pcdItemTypes, String cName, String token, String dataType,\r
892 String skuEnable, String sku, String maxSku, String hiiEnable, String varGuid,\r
893 String varName, String defaultString) {\r
894 if (getSpdPcdDefinitions() == null) {\r
895 spdPcdDefinitions = psaRoot.addNewPcdDefinitions();\r
896 }\r
897\r
898 setSpdPcdEntry(pcdItemTypes, cName, token, dataType, skuEnable, sku, maxSku, hiiEnable, varGuid, varName,\r
899 defaultString, spdPcdDefinitions);\r
900 }\r
901\r
902 /**\r
903 Set Pcd entry contents under parent tag\r
904 \r
905 @param pcdItemTypes ItemType attribute of PcdEntry element\r
906 @param cName C_Name element value\r
907 @param token Token element value\r
908 @param dataType DatumType element value\r
909 @param skuEnable Reserved\r
910 @param sku Reserved\r
911 @param maxSku Reserved\r
912 @param hiiEnable Reserved\r
913 @param varGuid Reserved\r
914 @param varName Reserved\r
915 @param defaultString DefaultString element value\r
916 @param parent Tag under which PcdEntry goes to\r
917 **/\r
918 public void setSpdPcdEntry(String pcdItemTypes, String cName, String token, String dataType, String skuEnable,\r
919 String sku, String maxSku, String hiiEnable, String varGuid, String varName,\r
920 String defaultString, XmlObject parent) {\r
921\r
922 PcdDefinitionsDocument.PcdDefinitions.PcdEntry pe = ((PcdDefinitionsDocument.PcdDefinitions) parent)\r
923 .addNewPcdEntry();\r
924 pe.setItemType(PcdItemTypes.Enum.forString(pcdItemTypes));\r
925 pe.setCName(cName);\r
926 pe.setToken(token);\r
927 pe.setDatumType(PcdDataTypes.Enum.forString(dataType));\r
928 pe.setDefaultValue(defaultString);\r
929 \r
930 }\r
931\r
932 /**\r
933 Get PpiDeclarations element\r
934 \r
935 @return PpiDeclarationsDocument.PpiDeclarations\r
936 **/\r
937 public PpiDeclarationsDocument.PpiDeclarations getSpdPpiDeclarations() {\r
938 if (spdPpiDeclarations == null) {\r
939 spdPpiDeclarations = psaRoot.getPpiDeclarations();\r
940 }\r
941 return spdPpiDeclarations;\r
942 }\r
943\r
944 /**\r
945 Get ProtocolDeclarations element\r
946 \r
947 @return ProtocolDeclarationsDocument.ProtocolDeclarations\r
948 **/\r
949 public ProtocolDeclarationsDocument.ProtocolDeclarations getSpdProtocolDeclarations() {\r
950 if (spdProtocolDeclarations == null) {\r
951 spdProtocolDeclarations = psaRoot.getProtocolDeclarations();\r
952 }\r
953 return spdProtocolDeclarations;\r
954 }\r
955\r
956 /**\r
957 Get GuidDeclarations element\r
958 \r
959 @return GuidDeclarationsDocument.GuidDeclarations\r
960 **/\r
961 public GuidDeclarationsDocument.GuidDeclarations getSpdGuidDeclarations() {\r
962 if (spdGuidDeclarations == null) {\r
963 spdGuidDeclarations = psaRoot.getGuidDeclarations();\r
964 }\r
965 return spdGuidDeclarations;\r
966 }\r
967\r
968 /**\r
969 Get PcdDefinitions element\r
970 \r
971 @return PcdDefinitionsDocument.PcdDefinitions\r
972 **/\r
973 public PcdDefinitionsDocument.PcdDefinitions getSpdPcdDefinitions() {\r
974 if (spdPcdDefinitions == null) {\r
975 spdPcdDefinitions = psaRoot.getPcdDefinitions();\r
976 }\r
977 return spdPcdDefinitions;\r
978 }\r
979\r
980 /**\r
981 Get PackageHeaders element\r
982 \r
983 @return PackageHeadersDocument.PackageHeaders\r
984 **/\r
985 public PackageHeadersDocument.PackageHeaders getSpdModHdrs() {\r
986 if (spdModHdrs == null) {\r
987 spdModHdrs = psaRoot.getPackageHeaders();\r
988 }\r
989 return spdModHdrs;\r
990 }\r
991\r
992 /**\r
993 Get MsaFiles element\r
994 \r
995 @return MsaFilesDocument.MsaFiles\r
996 **/\r
997 public MsaFilesDocument.MsaFiles getSpdMsaFiles() {\r
998 if (spdMsaFiles == null) {\r
999 spdMsaFiles = psaRoot.getMsaFiles();\r
1000 }\r
1001 return spdMsaFiles;\r
1002 }\r
1003\r
1004 /**\r
1005 Get LibraryClassDeclarations element\r
1006 \r
1007 @return LibraryClassDeclarationsDocument.LibraryClassDeclarations\r
1008 **/\r
1009 public LibraryClassDeclarationsDocument.LibraryClassDeclarations getSpdLibClassDeclarations() {\r
1010 if (spdLibClassDeclarations == null) {\r
1011 spdLibClassDeclarations = psaRoot.getLibraryClassDeclarations();\r
1012 }\r
1013 return spdLibClassDeclarations;\r
1014 }\r
1015\r
1016 /**\r
1017 Get SpdHeader element\r
1018 \r
1019 @return SpdHeaderDocument.SpdHeader\r
1020 **/\r
1021 public SpdHeaderDocument.SpdHeader getSpdHdr() {\r
1022 if (spdHdr == null) {\r
1023 spdHdr = psaRoot.getSpdHeader();\r
1024 }\r
1025 return spdHdr;\r
1026 }\r
1027\r
1028 /**\r
1029 Get Abstract element under tag SpdHeader\r
1030 \r
1031 @return AbstractDocument.Abstract\r
1032 **/\r
1033 public AbstractDocument.Abstract getSpdHdrAbs() {\r
1034 if (spdHdrAbs == null) {\r
1035 spdHdrAbs = getSpdHdr().getAbstract();\r
1036 }\r
1037 return spdHdrAbs;\r
1038 }\r
1039\r
1040 /**\r
1041 Set value to Abstract element\r
1042 \r
1043 @param abs The value set to Abstract element\r
1044 **/\r
1045 public void setSpdHdrAbs(String abs) {\r
1046\r
1047 if (getSpdHdrAbs() != null) {\r
1048 getSpdHdrAbs().setStringValue(abs);\r
1049 } else {\r
1050 spdHdrAbs = getSpdHdr().addNewAbstract();\r
1051 spdHdrAbs.setStringValue(abs);\r
1052 }\r
1053 }\r
1054\r
1055 /**\r
1056 Set value to Copyright element\r
1057 \r
1058 @param cpRit The value set to Copyright element\r
1059 **/\r
1060 public void setSpdHdrCpRit(String cpRit) {\r
1061\r
1062 getSpdHdr().setCopyright(cpRit);\r
1063\r
1064 }\r
1065\r
1066 /**\r
1067 Set value to Created element\r
1068 \r
1069 @param createDate The value set to Created element\r
1070 **/\r
1071 public void setSpdHdrCreateDate(String createDate) {\r
1072\r
1073 getSpdHdr().setCreated(createDate);\r
1074\r
1075 }\r
1076\r
1077 /**\r
1078 Set value to Description element\r
1079 \r
1080 @param des The value set to Description element\r
1081 **/\r
1082 public void setSpdHdrDes(String des) {\r
1083 getSpdHdr().setDescription(des);\r
1084 }\r
1085\r
1086 /**\r
1087 Get Guid element under SpdHdr\r
1088 \r
1089 @return GuidDocument.Guid\r
1090 **/\r
1091 public GuidDocument.Guid getSpdHdrGuid() {\r
1092 if (spdHdrGuid == null) {\r
1093 spdHdrGuid = getSpdHdr().getGuid();\r
1094 }\r
1095 return spdHdrGuid;\r
1096 }\r
1097\r
1098 /**\r
1099 Set value to Guid element\r
1100 \r
1101 @param guid The value set to Guid element\r
1102 **/\r
1103 public void setSpdHdrGuid(String guid) {\r
1104 if (getSpdHdrGuid() != null) {\r
1105 getSpdHdrGuid().setStringValue(guid);\r
1106 } else {\r
1107 spdHdrGuid = getSpdHdr().addNewGuid();\r
1108 spdHdrGuid.setStringValue(guid);\r
1109 }\r
1110 }\r
1111\r
1112 /**\r
1113 Get Version element under SpdHdr\r
1114 \r
1115 @return String\r
1116 **/\r
1117 public String getSpdHdrVer() {\r
1118 if (spdHdr != null)\r
4bf9d815 1119 return spdHdr.getVersion() + "";\r
878ddf1f 1120 else\r
1121 return null;\r
1122 }\r
1123\r
1124 /**\r
1125 Set value to Version element\r
1126 \r
1127 @param ver The value set to Version element\r
1128 **/\r
1129 public void setSpdHdrVer(String ver) {\r
1130 if (spdHdr != null) {\r
4bf9d815 1131 spdHdr.setVersion(new BigDecimal(ver.toCharArray()));\r
878ddf1f 1132 }\r
1133\r
1134 }\r
1135\r
1136 /**\r
1137 Get License element under SpdHdr\r
1138 \r
1139 @return LicenseDocument.License\r
1140 **/\r
1141 public LicenseDocument.License getSpdHdrLicense() {\r
1142 if (spdHdrLicense == null) {\r
1143 spdHdrLicense = getSpdHdr().getLicense();\r
1144 }\r
1145 return spdHdrLicense;\r
1146 }\r
1147\r
1148 /**\r
1149 Set value to License element\r
1150 \r
1151 @param license The value set to License element\r
1152 **/\r
1153 public void setSpdHdrLicense(String license) {\r
1154 if (getSpdHdrLicense() != null) {\r
1155 getSpdHdrLicense().setStringValue(license);\r
1156 } else {\r
1157 spdHdrLicense = getSpdHdr().addNewLicense();\r
1158 spdHdrLicense.setStringValue(license);\r
1159 }\r
1160 }\r
1161\r
1162 /**\r
1163 Reserved method\r
1164 \r
1165 @return\r
1166 **/\r
1167 public OutputDirectoryDocument.OutputDirectory getSpdHdrOutDir() {\r
1168 return spdHdrOutDir;\r
1169 }\r
1170\r
1171 /**\r
1172 Reserved method\r
1173 \r
1174 @param outdir\r
1175 **/\r
1176 public void setSpdHdrOutDir(String outdir) {\r
1177 if (outdir == null) {\r
1178 return;\r
1179 }\r
1180 if (getSpdHdrOutDir() != null) {\r
1181 getSpdHdrOutDir().setStringValue(outdir);\r
1182 } else {\r
1183 spdHdrOutDir = getSpdHdr().addNewOutputDirectory();\r
1184 spdHdrOutDir.setStringValue(outdir);\r
1185 }\r
1186 }\r
1187\r
1188 /**\r
1189 Get PackageName element under SpdHdr\r
1190 \r
1191 @return PackageNameDocument.PackageName\r
1192 **/\r
4bf9d815 1193 public String getSpdHdrPkgName() {\r
878ddf1f 1194 if (spdHdrPkgName == null) {\r
1195 spdHdrPkgName = getSpdHdr().getPackageName();\r
1196 }\r
1197 return spdHdrPkgName;\r
1198 }\r
1199\r
1200 /**\r
1201 Set value to PackageName element\r
1202 \r
1203 @param pkgName The value set to PackageName element\r
1204 **/\r
1205 public void setSpdHdrPkgName(String pkgName) {\r
1206\r
1207 if (getSpdHdrPkgName() != null) {\r
4bf9d815 1208 getSpdHdr().setPackageName(pkgName);\r
878ddf1f 1209 } else {\r
4bf9d815 1210 getSpdHdr().setPackageName(pkgName);\r
878ddf1f 1211 }\r
1212 }\r
1213\r
1214 /**\r
1215 Reserved method\r
1216 \r
1217 @return SpecificationDocument.Specification\r
1218 **/\r
1219 public SpecificationDocument.Specification getSpdHdrSpec() {\r
1220 return spdHdrSpec;\r
1221 }\r
1222\r
1223 /**\r
1224 Reserved method\r
1225 \r
1226 @param spec \r
1227 **/\r
1228 public void setSpdHdrSpec(String spec) {\r
1229 if (spec == null) {\r
1230 return;\r
1231 }\r
1232 if (getSpdHdrSpec() != null) {\r
1233 getSpdHdrSpec().setStringValue(spec);\r
1234 } else {\r
1235 spdHdrSpec = getSpdHdr().addNewSpecification();\r
1236 spdHdrSpec.setStringValue(spec);\r
1237 }\r
1238 }\r
1239\r
1240 /**\r
1241 Set value to PackageType element\r
1242 \r
1243 @param pkgType The value set to PackageType element\r
1244 **/\r
1245 public void setSpdHdrPkgType(String pkgType) {\r
1246 getSpdHdr().setPackageType(PackageType.Enum.forString(pkgType));\r
1247 }\r
1248\r
1249 /**\r
1250 Set value to ReadOnly element\r
1251 \r
1252 @param rdOnly The value set to ReadOnly element\r
1253 **/\r
1254 public void setSpdHdrRdOnly(String rdOnly) {\r
1255\r
1256 getSpdHdr().setReadOnly(new Boolean(rdOnly));\r
1257 }\r
1258\r
1259 /**\r
1260 Set value to RePackage element\r
1261 \r
1262 @param rePkg The value set to RePackage element\r
1263 **/\r
1264 public void setSpdHdrRePkg(String rePkg) {\r
1265\r
1266 getSpdHdr().setRePackage(new Boolean(rePkg));\r
1267 }\r
1268\r
1269 /**\r
1270 Set value to Updated element\r
1271 \r
1272 @param updateDate The value set to Updated element\r
1273 **/\r
1274 public void setSpdHdrUpdateDate(String updateDate) {\r
1275 getSpdHdr().setUpdated(updateDate);\r
1276 }\r
1277\r
1278 /**\r
1279 Set value to URL element\r
1280 \r
1281 @param url The value set to URL element\r
1282 **/\r
1283 public void setSpdHdrURL(String url) {\r
1284 getSpdHdr().setURL(url);\r
1285 }\r
1286\r
1287 /**\r
1288 Get xml file\r
1289 \r
1290 @return File\r
1291 **/\r
1292 public File getFile() {\r
1293 return file;\r
1294 }\r
1295\r
1296 /**\r
1297 Set file\r
1298 \r
1299 @param file File with xml format\r
1300 **/\r
1301 public void setFile(File file) {\r
1302 this.file = file;\r
1303 }\r
1304\r
1305}\r