/** * @return a VariableDescriptor as configured * */ public VariableDescriptor build() { return new VariableDescriptor(this); } }
/** * Gets the variable value * * @param name the string name of the VariableDescriptor that is the key of * the value to lookup. * @return the value associated with the given variable name if found; null * otherwise */ default String getVariableValue(final String name) { if (name == null) { return null; } return getVariableMap().get(new VariableDescriptor(name)); }
@Override public void setVariables(final Map<String, String> variables) { writeLock.lock(); try { verifyCanUpdateVariables(variables); if (variables == null) { return; } final Map<VariableDescriptor, String> variableMap = new HashMap<>(); variables.entrySet() // cannot use Collectors.toMap because value may be null .forEach(entry -> variableMap.put(new VariableDescriptor(entry.getKey()), entry.getValue())); variableRegistry.setVariables(variableMap); } finally { writeLock.unlock(); } }
@Override public VariableDescriptor getVariableKey(final String name) { if (name == null) { return null; } final VariableDescriptor spec = new VariableDescriptor(name); for (final Map.Entry<VariableDescriptor, String> entry : getVariableMap().entrySet()) { if (entry.getKey().equals(spec)) { return entry.getKey(); } } return null; }
@Override public String getVariableValue(final String name) { if (name == null) { return null; } final VariableDescriptor descriptor = new VariableDescriptor(name); final String value = getVariableMap().get(descriptor); if (value != null) { return value; } return parent.getVariableValue(descriptor); }
/** * Returns the VariableDescriptor for the given key name if it exists. * * @param name the string name of the VariableDescriptor to lookup. * @return the variable descriptor registered for this name if it exists; * null otherwise */ default VariableDescriptor getVariableKey(final String name) { if (name == null) { return null; } final VariableDescriptor spec = new VariableDescriptor(name); for (final Map.Entry<VariableDescriptor, String> entry : getVariableMap().entrySet()) { if (entry.getKey().equals(spec)) { return entry.getKey(); } } return null; }