Config API updates

This commit is contained in:
Jonathan Shook 2021-07-22 19:13:54 -05:00
parent 03f7f13c2b
commit 4413152327
3 changed files with 13 additions and 8 deletions

View File

@ -26,7 +26,7 @@ public class ConfigModel implements NBConfigModel {
public <T> ConfigModel add(Param<T> param) { public <T> ConfigModel add(Param<T> param) {
this.params.add(param); this.params.add(param);
for (String name : param.names) { for (String name : param.getNames()) {
paramsByName.put(name, param); paramsByName.put(name, param);
} }
lastAdded = null; lastAdded = null;
@ -146,7 +146,7 @@ public class ConfigModel implements NBConfigModel {
List<String> found = new ArrayList<>(); List<String> found = new ArrayList<>();
String activename = null; String activename = null;
Object cval = null; Object cval = null;
for (String name : param.names) { for (String name : param.getNames()) {
if (config.containsKey(name)) { if (config.containsKey(name)) {
cval = config.get(name); cval = config.get(name);
activename = name; activename = name;
@ -192,14 +192,14 @@ public class ConfigModel implements NBConfigModel {
for (Param<?> param : params) { for (Param<?> param : params) {
if (param.isRequired() && param.getDefaultValue() == null) { if (param.isRequired() && param.getDefaultValue() == null) {
boolean provided = false; boolean provided = false;
for (String name : param.names) { for (String name : param.getNames()) {
if (config.containsKey(name)) { if (config.containsKey(name)) {
provided = true; provided = true;
break; break;
} }
} }
if (!provided) { if (!provided) {
throw new RuntimeException("A required config element named '" + param.names + throw new RuntimeException("A required config element named '" + param.getNames() +
"' and type '" + param.getType().getSimpleName() + "' was not found\n" + "' and type '" + param.getType().getSimpleName() + "' was not found\n" +
"for configuring a " + getOf().getSimpleName()); "for configuring a " + getOf().getSimpleName());
} }

View File

@ -103,11 +103,15 @@ public class NBConfiguration {
for (String name : names) { for (String name : names) {
Param<?> param = model.getParam(names); Param<?> param = model.getParam(names);
if (param!=null) { if (param!=null) {
o = data.get(param.getNames()); for (String pname : param.getNames()) {
o =data.get(name);
if (o!=null) { if (o!=null) {
break; break;
} }
} }
} else {
throw new NBConfigError("Parameter was not found for " + Arrays.toString(names) + ".");
}
} }
if (o==null) { if (o==null) {
return Optional.empty(); return Optional.empty();

View File

@ -12,7 +12,7 @@ import java.util.regex.Pattern;
*/ */
public class Param<T> { public class Param<T> {
public final List<String> names; private final List<String> names;
public final Class<? extends T> type; public final Class<? extends T> type;
public String description; public String description;
private final T defaultValue; private final T defaultValue;
@ -224,4 +224,5 @@ public class Param<T> {
return isValid; return isValid;
} }
} }
} }