From 90f343c701585066bf30f226811d65f3bce58c95 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Wed, 24 Aug 2016 14:46:16 -0400 Subject: Added tentative support for subrules Added a new sort of config reader that tentatively supports subrules through indentation. I need to actually write a parser that uses it though. I think something to do with trees would work well for testing it. --- BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java | 10 ++++++++++ BJC-Utils2/src/main/java/bjc/utils/funcdata/Tree.java | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcdata') diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java index 5e0c67e..f1616b2 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java @@ -137,4 +137,14 @@ public interface IMap { * Delete all the values in the map */ void clear(); + + default ValueType getOrDefault(KeyType key, ValueType defaultValue) { + try { + return get(key); + } catch (@SuppressWarnings("unused") IllegalArgumentException iaex) { + // We don't care about this, because it indicates a key is + // missing + return defaultValue; + } + } } \ No newline at end of file diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/Tree.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/Tree.java index 834c124..77b5673 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/Tree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/Tree.java @@ -134,7 +134,8 @@ public class Tree implements ITree { Function, NewType> nodeTransformer = nodeCollapser .apply(data); - IList collapsedChildren = children.map((child) -> { + @SuppressWarnings("unchecked") + IList collapsedChildren = (IList) children.map((child) -> { return child.collapse(leafTransform, nodeCollapser, (subTreeVal) -> subTreeVal); }); -- cgit v1.2.3