Add 'size()' method and 'Boolean' getters
This commit is contained in:
parent
cb3d54c361
commit
7d0d912963
2 changed files with 58 additions and 1 deletions
|
|
@ -5,6 +5,8 @@ import java.util.Map;
|
|||
import java.util.function.Function;
|
||||
|
||||
public interface ConfigSection extends Iterable<String> {
|
||||
int size();
|
||||
|
||||
String[] getBlockComments(String key);
|
||||
|
||||
String[] getInlineComments(String key);
|
||||
|
|
@ -103,6 +105,16 @@ public interface ConfigSection extends Iterable<String> {
|
|||
|
||||
String getOrSetString(String key, Function<String, String> fallback, String... blockComments);
|
||||
|
||||
Boolean getBoolean(String key);
|
||||
|
||||
Boolean getBoolean(String key, Boolean fallback);
|
||||
|
||||
Boolean getBoolean(String key, Function<String, Boolean> fallback);
|
||||
|
||||
Boolean getOrSetBoolean(String key, Boolean fallback, String... blockComments);
|
||||
|
||||
Boolean getOrSetBoolean(String key, Function<String, Boolean> fallback, String... blockComments);
|
||||
|
||||
List<?> getList(String key);
|
||||
|
||||
List<?> getList(String key, List<?> fallback);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.util.function.Function;
|
|||
public class MapConfigSection implements ConfigSection {
|
||||
protected final LinkedHashMap<String, ConfigSectionNode> map;
|
||||
|
||||
protected MapConfigSection(LinkedHashMap<String, ConfigSectionNode> map) {;
|
||||
protected MapConfigSection(LinkedHashMap<String, ConfigSectionNode> map) {
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
|
|
@ -397,6 +397,47 @@ public class MapConfigSection implements ConfigSection {
|
|||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getBoolean(String key) {
|
||||
Object object = get(key);
|
||||
if (object instanceof Boolean) {
|
||||
return (Boolean) object;
|
||||
}
|
||||
return object == null ? null : Boolean.getBoolean(object.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getBoolean(String key, Boolean fallback) {
|
||||
Boolean object = getBoolean(key);
|
||||
return object == null ? fallback : object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getBoolean(String key, Function<String, Boolean> fallback) {
|
||||
Boolean object = getBoolean(key);
|
||||
return object == null ? fallback.apply(key) : object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getOrSetBoolean(String key, Boolean fallback, String... blockComments) {
|
||||
Boolean object = getBoolean(key);
|
||||
if (object == null) {
|
||||
map.put(key, new ConfigSectionNode(fallback, blockComments));
|
||||
return fallback;
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getOrSetBoolean(String key, Function<String, Boolean> fallback, String... blockComments) {
|
||||
Boolean object = getBoolean(key);
|
||||
if (object == null) {
|
||||
object = fallback.apply(key);
|
||||
map.put(key, new ConfigSectionNode(object, blockComments));
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
public List<?> getList(String key) {
|
||||
Object object = get(key);
|
||||
return object instanceof List ? (List<?>) object : null;
|
||||
|
|
@ -458,6 +499,10 @@ public class MapConfigSection implements ConfigSection {
|
|||
return (T) map.remove(key);
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return map.size();
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
map.clear();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue