@SuppressWarnings("unchecked") public B excludeSpec(String origin, String spec) throws ProvisioningDescriptionException { if(origin == null) { return excludeSpec(spec); } getExternalFgConfig(origin).excludeSpec(spec); return (B) this; }
@SuppressWarnings("unchecked") public B includeSpec(String origin, String spec) throws ProvisioningDescriptionException { if(origin == null) { return includeSpec(spec); } getExternalFgConfig(origin).includeSpec(spec); return (B) this; }
@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 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; }