throw new XMLStreamException(Attribute.INHERIT_FEATURES + " attribute can't be used w/o attribute " + Attribute.NAME); final FeatureGroup.Builder depBuilder = FeatureGroup.builder(name).setOrigin(origin); if(inheritFeatures != null) { depBuilder.setInheritFeatures(inheritFeatures); return depBuilder.build(); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to parse feature group dependency", reader.getLocation(), e);
@SuppressWarnings("unchecked") public B includeFeature(FeatureId featureId, FeatureConfig feature) throws ProvisioningDescriptionException { if(feature != null && feature.getOrigin() != null) { final String origin = feature.getOrigin(); feature.setOrigin(null); getExternalFgConfig(origin).includeFeature(featureId, feature); return (B) this; } if(excludedFeatures.containsKey(featureId)) { throw new ProvisioningDescriptionException(featureId + " has been explicitly excluded"); } if(feature == null) { feature = new FeatureConfig(featureId.getSpec()); } else if(feature.specId == null) { feature.specId = featureId.getSpec(); } for (Map.Entry<String, String> idEntry : featureId.getParams().entrySet()) { final String prevValue = feature.putParam(idEntry.getKey(), idEntry.getValue()); if (prevValue != null && !prevValue.equals(idEntry.getValue())) { throw new ProvisioningDescriptionException("Parameter " + idEntry.getKey() + " has value '" + idEntry.getValue() + "' in feature ID and value '" + prevValue + "' in the feature body"); } } includedFeatures = CollectionUtils.putLinked(includedFeatures, featureId, feature); return (B) this; }
throw ParsingUtils.missingAttributes(reader.getLocation(), Collections.singleton(Attribute.NAME)); groupBuilder.setName(name); while (reader.hasNext()) { switch (reader.nextTag()) { switch (element) { case FEATURE_GROUP: groupBuilder.addFeatureGroup(readFeatureGroupDependency(null, reader)); break; case ORIGIN: final FeatureConfig nested = new FeatureConfig(); readFeatureConfig(reader, nested); groupBuilder.addFeature(nested); break; case PACKAGES:
protected FeatureGroupSupport(FeatureGroupBuilderSupport<?> builder) throws ProvisioningDescriptionException { super(builder); this.origin = builder.origin; this.name = builder.name; this.inheritFeatures = builder.inheritFeatures; this.includedSpecs = CollectionUtils.unmodifiable(builder.includedSpecs); this.excludedSpecs = CollectionUtils.unmodifiable(builder.excludedSpecs); this.includedFeatures = CollectionUtils.unmodifiable(builder.includedFeatures); this.excludedFeatures = CollectionUtils.unmodifiable(builder.excludedFeatures); if(builder.externalFgConfigs.isEmpty()) { this.externalFgConfigs = Collections.emptyMap(); } else if(builder.externalFgConfigs.size() == 1) { final Map.Entry<String, FeatureGroup.Builder> entry = builder.externalFgConfigs.entrySet().iterator().next(); this.externalFgConfigs = Collections.singletonMap(entry.getKey(), entry.getValue().build()); } else { final Map<String, FeatureGroup> tmp = new LinkedHashMap<>(builder.externalFgConfigs.size()); for(Map.Entry<String, FeatureGroup.Builder> entry : builder.externalFgConfigs.entrySet()) { tmp.put(entry.getKey(), entry.getValue().build()); } this.externalFgConfigs = Collections.unmodifiableMap(tmp); } this.items = CollectionUtils.unmodifiable(builder.items); }
public static Builder builder(FeatureGroupSupport featureGroup) { return new Builder(featureGroup); }
public static Builder builder(boolean inheritFeatures) { return new Builder(null, inheritFeatures); }
public static Builder builder(String featureGroupName, boolean inheritFeatures) { return new Builder(featureGroupName, inheritFeatures); }
public static Builder builder() { return new Builder(null, true); }
@SuppressWarnings("unchecked") public B excludeFeature(String origin, FeatureId featureId, String parentRef) throws ProvisioningDescriptionException { if(origin == null) { return excludeFeature(featureId, parentRef); } getExternalFgConfig(origin).excludeFeature(featureId, parentRef); return (B) this; }
@SuppressWarnings("unchecked") private B includeFeature(String origin, FeatureId featureId, FeatureConfig feature) throws ProvisioningDescriptionException { if(origin == null) { return includeFeature(featureId, feature); } getExternalFgConfig(origin).includeFeature(featureId, feature); return (B) this; }
@SuppressWarnings("unchecked") public B excludeSpec(String origin, String spec) throws ProvisioningDescriptionException { if(origin == null) { return excludeSpec(spec); } getExternalFgConfig(origin).excludeSpec(spec); return (B) this; }
@Override public FeatureGroup parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final FeatureGroup.Builder configBuilder = FeatureGroup.builder(); XmlParsers.parse(input, configBuilder); return configBuilder.build(); } }
@SuppressWarnings("unchecked") public B includeSpec(String origin, String spec) throws ProvisioningDescriptionException { if(origin == null) { return includeSpec(spec); } getExternalFgConfig(origin).includeSpec(spec); return (B) this; }