private ProvisionedFeatureBuilder(ResolvedFeatureId id, ResolvedSpecId specId) { this.id = id; this.specId = specId; if(id != null) { Map<String, Object> idParams = id.getParams(); if(idParams.size() > 1) { configParams = new HashMap<>(idParams.size()); for(Map.Entry<String, Object> entry : idParams.entrySet()) { configParams.put(entry.getKey(), (String) entry.getValue()); } } else { final Map.Entry<String, Object> entry = idParams.entrySet().iterator().next(); configParams = Collections.singletonMap(entry.getKey(), (String) entry.getValue()); } idBuilder = null; } else { idBuilder = ResolvedFeatureId.builder(specId); } }
Group buildFeatureGroups(String name, ResolvedFeatureId id, List<String> pathItems) { String[] groups = name.split("\\."); Group current = allgroups.get(ROOT); currentPath = "/"; for (int it = 0; it < groups.length; it++) { String g = groups[it]; String value = id == null ? null : (String) id.getParams().get(g); if (value != null) { current = addGroup(value, current, pathItems, g); if (it < groups.length - 1) { String next = groups[it + 1]; if (next.equals(value)) { it += 1; } } } else { current = addGroup(current, pathItems, g); } } return current; }
public FeatureInfo(ConfigInfo configInfo, ProvisionedFeature feature, List<String> path, FPID currentFP) throws ProvisioningDescriptionException { this.feature = feature; this.path = path; this.currentFP = currentFP; this.configInfo = configInfo; FeatureId.Builder builder = FeatureId.builder(feature.getSpecId().getName()); if (feature.getId() != null) { for (Entry<String, Object> param : feature.getId().getParams().entrySet()) { builder.setParam(param.getKey(), param.getValue().toString()); } featureId = builder.build(); featureConfig = FeatureConfig.newConfig(featureId); } else { featureId = null; featureConfig = null; } StringBuilder b = new StringBuilder(); b.append(FeatureContainerPathConsumer.FINAL_CONFIGS_PATH).append(configInfo.getModel()). append(PathParser.PATH_SEPARATOR).append(configInfo.getName()).append(PathParser.PATH_SEPARATOR); for (int i = 0; i < path.size(); i++) { b.append(path.get(i)); if (i < path.size() - 1) { b.append(PathParser.PATH_SEPARATOR); } } fullPath = b.toString(); }
private static FeatureId getFeatureId(final ProvisionedFeature feature) throws ProvisioningDescriptionException, ProvisioningException { final FeatureId.Builder id = FeatureId.builder(feature.getSpecId().getName()); final ResolvedFeatureId resolvedId = feature.getId(); for(String name : resolvedId.getParams().keySet()) { id.setParam(name, feature.getConfigParam(name)); } return id.build(); } }