private static void readLayer(XMLExtendedStreamReader reader, ConfigLayerSpec.Builder builder) throws XMLStreamException { String name = null; boolean optional = false; final int count = reader.getAttributeCount(); for (int i = 0; i < count; i++) { final Attribute attribute = Attribute.of(reader.getAttributeName(i)); switch (attribute) { case NAME: name = reader.getAttributeValue(i); break; case OPTIONAL: optional = Boolean.parseBoolean(reader.getAttributeValue(i)); break; default: throw ParsingUtils.unexpectedContent(reader); } } if(name == null) { throw ParsingUtils.missingAttributes(reader.getLocation(), Collections.singleton(Attribute.NAME)); } builder.addLayerDep(name, optional); ParsingUtils.parseNoContent(reader); } }
case NAME: name = reader.getAttributeValue(i); builder.setName(name); break; default:
public static Builder builder(String layerName) { return new Builder(layerName); }
public Builder addLayerDep(String layerName) { return addLayerDep(layerName, false); }
public static Builder builder() { return new Builder(null); }
protected ConfigLayerSpec(Builder builder) throws ProvisioningDescriptionException { super(builder); this.id = new ConfigId(builder.model, builder.getName()); layerDeps = CollectionUtils.unmodifiable(builder.layerDeps); }
public static ConfigLayerSpec parseConfigLayerSpec(Reader reader, String model) throws ProvisioningException { ConfigLayerSpec.Builder builder = ConfigLayerSpec.builder(); builder.setModel(model); try { parse(reader, builder); } catch (XMLStreamException e) { throw new ProvisioningException("Failed to parse config layer spec", e); } return builder.build(); }
@Override public ConfigLayerSpec parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final ConfigLayerSpec.Builder builder = ConfigLayerSpec.builder(); XmlParsers.parse(input, builder); return builder.build(); } }