switch (reader.nextTag()) { case XMLStreamConstants.END_ELEMENT: { builder.addAnnotation(fa); return;
private void parseDependencies(XMLExtendedStreamReader reader, FeatureSpec.Builder specBuilder) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); 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 DEPENDENCY: try { specBuilder.addFeatureDep(parseDependency(reader)); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to parse feature reference", e); } break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
private void parseReferences(XMLExtendedStreamReader reader, FeatureSpec.Builder specBuilder) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); 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 REFERENCE: try { specBuilder.addFeatureRef(parseReference(reader)); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to parse feature reference", e); } break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
throw ParsingUtils.missingAttributes(reader.getLocation(), Collections.singleton(Attribute.NAME)); featureBuilder.setName(specName);
private void parseParameters(XMLExtendedStreamReader reader, FeatureSpec.Builder specBuilder) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); 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 PARAMETER: try { specBuilder.addParam(parseParameter(reader)); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to add parameter to the spec", reader.getLocation(), e); } break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
private void parseCapabilities(XMLExtendedStreamReader reader, FeatureSpec.Builder spec, boolean provides) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); 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 CAPABILITY: final CapabilitySpec cap = parseCapabilityName(reader); if (provides) { spec.providesCapability(cap); } else { spec.requiresCapability(cap); } break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
@Override public void handle(ProvisionedConfigHandler handler) throws ProvisioningException { if (!hasFeatures()) { return; } handler.prepare(this); ResolvedSpecId lastHandledSpecId = null; for(ProvisionedFeature feature : features) { if(!feature.getSpecId().equals(lastHandledSpecId)) { if (lastHandledSpecId == null || !feature.getSpecId().getProducer().equals(lastHandledSpecId.getProducer())) { handler.nextFeaturePack(feature.getSpecId().getProducer().getLocation().getFPID()); } // TODO: complete spec isn't available here, but specId is enough for marshalling handler.nextSpec(new ResolvedFeatureSpec(feature.getSpecId(), null, FeatureSpec.builder().build())); lastHandledSpecId = feature.getSpecId(); } handler.nextFeature(feature); } handler.done(); }
public static Builder builder(String name) { return new Builder(name); }
public static Builder builder() { return new Builder(); }
public Builder providesCapability(String name, boolean optional) throws ProvisioningDescriptionException { return providesCapability(CapabilitySpec.fromString(name, optional)); }
public Builder requiresCapability(String name) throws ProvisioningDescriptionException { return requiresCapability(name, false); }
public Builder providesCapability(String name) throws ProvisioningDescriptionException { return providesCapability(name, false); }
public Builder requiresCapability(String name, boolean optional) throws ProvisioningDescriptionException { return requiresCapability(CapabilitySpec.fromString(name, optional)); }
@Override public FeatureSpec parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final FeatureSpec.Builder builder = FeatureSpec.builder(); XmlParsers.parse(input, builder); return builder.build(); } }