public ConfigLayerSpec build() throws ProvisioningDescriptionException { return new ConfigLayerSpec(this); } }
public FeaturePackBuilder addConfigLayer(ConfigLayerSpec layer) throws ProvisioningDescriptionException { if(layers.isEmpty()) { layers = new HashMap<>(); } if(layers.put(layer.getId(), layer) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate layer " + layer.getId()); } return this; }
@Override public String toString() { final StringBuilder buf = new StringBuilder(); buf.append("[name=").append(getName()); if(layerDeps.isEmpty()) { buf.append(" layer-deps="); StringUtils.append(buf, layerDeps.values()); if(!isInheritFeatures()) { buf.append(" inherit-features=false"); if(hasIncludedSpecs()) { buf.append(" includedSpecs="); StringUtils.append(buf, getIncludedSpecs()); if(hasExcludedSpecs()) { buf.append(" exlcudedSpecs="); StringUtils.append(buf, getExcludedSpecs()); if(hasIncludedFeatures()) { buf.append(" includedFeatures=["); final Iterator<Map.Entry<FeatureId, FeatureConfig>> i = getIncludedFeatures().entrySet().iterator(); Map.Entry<FeatureId, FeatureConfig> entry = i.next(); buf.append(entry.getKey()); if(hasExcludedFeatures()) { buf.append(" exlcudedFeatures="); StringUtils.append(buf, getExcludedFeatures().keySet());
protected ElementNode toElement(ConfigLayerSpec layer, String ns) { final ElementNode configE = addElement(null, Element.LAYER_SPEC.getLocalName(), ns); addAttribute(configE, Attribute.NAME, layer.getName()); if(layer.hasLayerDeps()) { final ElementNode layers = addElement(configE, Element.DEPENDENCIES.getLocalName(), ns); for(ConfigLayerDependency layerDep : layer.getLayerDeps()) { final ElementNode layerE = addElement(layers, Element.LAYER.getLocalName(), ns); addAttribute(layerE, Attribute.NAME, layerDep.getName()); if(layerDep.isOptional()) { addAttribute(layerE, Attribute.OPTIONAL, "true"); } } } FeatureGroupXmlWriter.addFeatureGroupDepBody(layer, configE, ns); return configE; } }
private FeatureGroupSupport popLayer(ConfigModelStack layerStack) throws ProvisioningException { final FeatureGroupSupport fg = layerStack.peekAtGroup(); if(!(fg instanceof ConfigLayerSpec)) { throw new ProvisioningException("Expected config layer but got " + fg); } final ConfigLayerSpec layer = (ConfigLayerSpec) fg; if(layer.hasLayerDeps()) { for(ConfigLayerDependency dep : layer.getLayerDeps()) { layerStack.addLayerDep(dep); } } layerStack.popGroup(); return fg; }
private static Map<String, Map<String, Set<String>>> getAllLayers(ProvisioningLayout<FeaturePackLayout> pLayout, boolean includeDependencies) throws ProvisioningException, IOException { Map<String, Map<String, Set<String>>> layersMap = new HashMap<>(); for (FeaturePackLayout fp : pLayout.getOrderedFeaturePacks()) { for (ConfigId layer : fp.loadLayers()) { String model = layer.getModel(); Map<String, Set<String>> names = layersMap.get(model); if (names == null) { names = new HashMap<>(); layersMap.put(model, names); } Set<String> dependencies = new TreeSet<>(); if (includeDependencies) { ConfigLayerSpec spec = fp.loadConfigLayerSpec(model, layer.getName()); for (ConfigLayerDependency dep : spec.getLayerDeps()) { dependencies.add(dep.getName()); } } names.put(layer.getName(), dependencies); } } return layersMap; }
@Override public ConfigLayerSpec parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final ConfigLayerSpec.Builder builder = ConfigLayerSpec.builder(); XmlParsers.parse(input, builder); return builder.build(); } }
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(); }