@Override public ProfileBuilder profileBuilder(String profileId) { return new DefaultProfileBuilder().identity(profileId); }
@Override public ProfileBuilder setOverrides(List<String> values) { addAgentConfiguration(ConfigListType.OVERRIDES, values); return this; }
@Override public ProfileBuilder addAttribute(String key, String value) { addConfiguration(Constants.AGENT_PID, Profile.ATTRIBUTE_PREFIX + key, value); return this; }
@Override public ProfileBuilder profileBuilderFrom(Profile profile) { return new DefaultProfileBuilder().from(profile); } }
@Override public ProfileBuilder addConfiguration(String pid, String key, String value) { Map<String, String> config = getConfigurationInternal(pid); config.put(key, value); return addConfiguration(pid, config); }
@Override public ProfileBuilder setConfigurations(Map<String, Map<String, String>> configs) { for (String pid : getConfigurationKeys()) { deleteConfiguration(pid); } for (Entry<String, Map<String, String>> entry : configs.entrySet()) { addConfiguration(entry.getKey(), new HashMap<>(entry.getValue())); } return this; }
private void updateParentsAttribute(Collection<String> parentIds) { Map<String, String> config = getConfigurationInternal(Constants.AGENT_PID); if (parentIds.size() > 0) { config.put(PARENTS_ATTRIBUTE_KEY, parentsAttributeValue(parentIds)); } else { config.remove(PARENTS_ATTRIBUTE_KEY); } addConfiguration(Constants.AGENT_PID, config); }
@Override public ProfileBuilder removeParent(String profileId) { Set<String> currentIds = new LinkedHashSet<String>(getParents()); currentIds.remove(profileId); updateParentsAttribute(currentIds); return this; }
@Override public Profile getProfile() { validate(); return new ProfileImpl(versionId, profileId, getParents(), fileMapping, lastModified, isOverlay); } }
@Override public ProfileBuilder profileBuilder(String versionId, String profileId) { return new DefaultProfileBuilder().version(versionId).identity(profileId); }
@Override public ProfileBuilder setParents(List<String> parentIds) { return addParentsInternal(parentIds, true); }
@Override public Map<String, String> getConfiguration(String pid) { return getConfigurationInternal(pid); }
@Override public ProfileBuilder profileBuilder() { return new DefaultProfileBuilder(); }
@Override public ProfileBuilder setLocked(boolean flag) { Map<String, String> config = getConfigurationInternal(Constants.AGENT_PID); if (flag) { config.put(LOCKED_ATTRIBUTE_KEY, "true"); } else { config.remove(LOCKED_ATTRIBUTE_KEY); } addConfiguration(Constants.AGENT_PID, config); return this; }
private ProfileBuilder addParentsInternal(List<String> parentIds, boolean clear) { Set<String> currentIds = new LinkedHashSet<String>(getParents()); if (clear) { currentIds.clear(); } currentIds.addAll(parentIds); updateParentsAttribute(currentIds); return this; }
@Override public ProfileBuilder addParents(List<String> parentIds) { return addParentsInternal(parentIds, false); }
@Override public List<String> getParents() { Map<String, String> config = getConfigurationInternal(Constants.AGENT_PID); String pspec = config.get(PARENTS_ATTRIBUTE_KEY); String[] parentIds = pspec != null ? pspec.split(" ") : new String[0]; return Arrays.asList(parentIds); }
private void addAgentConfiguration(ConfigListType type, List<String> values) { String prefix = type + "."; Map<String, String> config = getConfigurationInternal(Constants.AGENT_PID); for (String key : new ArrayList<>(config.keySet())) { if (key.startsWith(prefix)) { config.remove(key); } } for (String value : values) { config.put(prefix + value, value); } addConfiguration(Constants.AGENT_PID, config); }
@Override public ProfileBuilder setRepositories(List<String> values) { addAgentConfiguration(ConfigListType.REPOSITORIES, values); return this; }
@Override public ProfileBuilder addParent(String parentId) { return addParentsInternal(Collections.singletonList(parentId), false); }