public PackageSpec build(Path fpDir) { final PackageSpec pkgSpec = pkg.build(); final Path pkgDir; try { pkgDir = LayoutUtils.getPackageDir(fpDir, pkgSpec.getName(), false); } catch (ProvisioningDescriptionException e) { throw new IllegalStateException(e); } try { Files.createDirectories(pkgDir); if(tasks != null && !tasks.isEmpty()) { tasks.execute(FsTaskContext.builder().setTargetRoot(pkgDir).build()); } PackageXmlWriter.getInstance().write(pkgSpec, pkgDir.resolve(Constants.PACKAGE_XML)); } catch (XMLStreamException | IOException e) { throw new IllegalStateException(e); } return pkgSpec; } }
@Override public void readElement(XMLExtendedStreamReader reader, PackageSpec.Builder pkgBuilder) throws XMLStreamException { pkgBuilder.setName(parseName(reader, false)); while (reader.hasNext()) { switch (reader.nextTag()) { case XMLStreamConstants.END_ELEMENT: { return; } case XMLStreamConstants.START_ELEMENT: { final Element element = Element.of(reader.getName()); switch (element) { case DEPENDENCIES: PackageDepsSpecXmlParser.parsePackageDeps(Element.DEPENDENCIES, reader, pkgBuilder); break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
@Override public void readElement(XMLExtendedStreamReader reader, PackageSpec.Builder pkgBuilder) throws XMLStreamException { pkgBuilder.setName(parseName(reader, false)); while (reader.hasNext()) { switch (reader.nextTag()) { case XMLStreamConstants.END_ELEMENT: { return; } case XMLStreamConstants.START_ELEMENT: { final Element element = Element.of(reader.getName()); switch (element) { case DEPENDENCIES: PackageDepsSpecXmlParser.parsePackageDeps(Element.DEPENDENCIES, reader, pkgBuilder); break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
public static Builder builder() { return new Builder(); }
public static Builder builder(String name) { return new Builder(name); }
public PackageBuilder addDependency(PackageDependencySpec dep) { this.pkg.addPackageDep(dep); return this; }
public PackageBuilder addDependency(String pkgName, boolean optional) { this.pkg.addPackageDep(pkgName, optional); return this; }
public PackageBuilder addDependency(String fpDepName, String pkgName) { this.pkg.addPackageDep(fpDepName, pkgName); return this; }
public PackageBuilder addDependency(String fpDepName, PackageDependencySpec dep) { this.pkg.addPackageDep(fpDepName, dep); return this; }
public PackageBuilder addDependency(String fpDepName, String pkgName, boolean optional) { this.pkg.addPackageDep(fpDepName, pkgName, optional); return this; }
@Override public PackageSpec parse(final Reader input) throws XMLStreamException { final Builder pkgBuilder = PackageSpec.builder(); XmlParsers.parse(input, pkgBuilder); return pkgBuilder.build(); } }