public FeaturePackBuilder addFeatureSpec(FeatureSpec spec) throws ProvisioningDescriptionException { if (specs.isEmpty()) { specs = new HashMap<>(); } if (specs.put(spec.getName(), spec) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate spec name " + spec.getName()); } return this; }
public FeaturePackBuilder addFeatureGroup(FeatureGroup featureGroup) throws ProvisioningDescriptionException { if (featureGroups.isEmpty()) { featureGroups = new HashMap<>(); } if (featureGroups.put(featureGroup.getName(), featureGroup) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate feature-group name " + featureGroup.getName()); } return 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; }
void build() throws ProvisioningException { final FeaturePackLocation fps = fpBuilder.getFPID().getLocation(); if(fps == null) { throw new ProvisioningDescriptionException("Feature-pack location has not been set");
public FeaturePackBuilder addConfig(ConfigModel config, boolean asDefault) throws ProvisioningDescriptionException { final ConfigId id = config.getId(); if(id.isAnonymous()) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": attempt to add an anonymous config"); } if(asDefault && id.isModelOnly()) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": model-only config can not be added as the default one"); } if (configs.isEmpty()) { configs = new HashMap<>(); } if (configs.put(id, config) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate config " + id); } if(asDefault) { fpBuilder.addConfig(ConfigModel.builder(id.getModel(), id.getName()).build()); } return this; }
public static Builder builder(FeaturePackSpec.Builder spec) { return new Builder(spec.getFPID(), spec); }