From 48f470774a734d2c9a53ad9502f78e2a557c356c Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Tue, 17 Dec 2019 20:20:21 -0500 Subject: Switch over ConditionalDirective --- .../java/bjc/utils/ioutils/format/CLFormatter.java | 7 ++++++- .../format/directives/ConditionalDirective.java | 23 ++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) (limited to 'clformat/src') diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java b/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java index fae3aa6..92a7a63 100644 --- a/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java +++ b/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java @@ -380,7 +380,12 @@ public class CLFormatter { } public List compile(Iterable cltok) { - return compile(cltok.iterator()); + // Not 100% sure this is correct, but the tests are passing + if (cltok == null) return new ArrayList<>(); + + Iterator it = cltok.iterator(); + + return compile(it); } public List compile(Iterator cltok) { diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java b/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java index e481590..8047d6a 100644 --- a/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java +++ b/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java @@ -144,8 +144,8 @@ class ConditionalEdict implements Edict { private boolean decrementIndex; private CLValue index; - private List> clauses; - private List defClause; + private List clauses; + private CLString defClause; private CLFormatter formatter; @@ -157,8 +157,11 @@ class ConditionalEdict implements Edict { this.decrementIndex = decrementIndex; this.index = index; - this.clauses = clauses; - this.defClause = defClause; + this.clauses = new ArrayList<>(); + for (List clause : clauses) { + this.clauses.add(new CLString(fmt.compile(clause))); + } + this.defClause = new CLString(fmt.compile(defClause)); this.formatter = fmt; } @@ -183,14 +186,14 @@ class ConditionalEdict implements Edict { res = (Boolean) o; } - List frmt; + CLString frmt; if (res) { frmt = clauses.get(1); } else { frmt = clauses.get(0); } - formatter.doFormatString(frmt, formCTX.writer, formCTX.items, false); + frmt.format(formCTX); } break; case OUTPUT_TRUE: @@ -211,7 +214,7 @@ class ConditionalEdict implements Edict { } if (res) { - formatter.doFormatString(clauses.get(0), formCTX.writer, formCTX.items, false); + clauses.get(0).format(formCTX); } else { items.right(); } @@ -241,12 +244,12 @@ class ConditionalEdict implements Edict { if (clauses.size() == 0 || res < 0 || res >= clauses.size()) { if (defClause != null) { - formatter.doFormatString(defClause, formCTX.writer, items, false); + defClause.format(formCTX.writer, items); } } else { - List frmt = clauses.get(res); + CLString frmt = clauses.get(res); - formatter.doFormatString(frmt, formCTX.writer, items, false); + frmt.format(formCTX.writer, items); } } break; -- cgit v1.2.3