From d160783762ec58cdd0be781d7662865379363156 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 5 Feb 2021 10:51:24 +0100 Subject: ninja, better logging. --- .../io/trygvis/rules/engine/cli/RunCommand.java | 76 ++++++++++++---------- 1 file changed, 41 insertions(+), 35 deletions(-) (limited to 'src/ri-engine/src/main/java/io/trygvis/rules/engine/cli/RunCommand.java') diff --git a/src/ri-engine/src/main/java/io/trygvis/rules/engine/cli/RunCommand.java b/src/ri-engine/src/main/java/io/trygvis/rules/engine/cli/RunCommand.java index 35f30cd..9b57e4f 100644 --- a/src/ri-engine/src/main/java/io/trygvis/rules/engine/cli/RunCommand.java +++ b/src/ri-engine/src/main/java/io/trygvis/rules/engine/cli/RunCommand.java @@ -39,44 +39,50 @@ public class RunCommand implements Callable { agendaGroups = new String[]{"init", "generate"}; } + if (outputIncludes == null) { + outputIncludes = new String[0]; + } + try (var engine = new Engine(name, input, generatedOutput, agendaGroups, module)) { - engine.io.dump(outputState, engine.session.getFactHandles(), (Object o) -> - { - if (outputIncludes == null || outputIncludes.length == 0) { - return true; - } - - var name = o.getClass().getName(); - var simpleName = o.getClass().getSimpleName(); - - for (var i : outputIncludes) { - var ok = false; - if (i.startsWith("*")) { - i = i.substring(1); - - if (i.endsWith("*")) { - i = i.substring(1, i.length() - 2); - ok = name.contains(i); - } else { - ok = name.startsWith(i) || simpleName.startsWith(i); - } - } else if (i.endsWith("*")) { - i = i.substring(0, i.length() - 2); - ok = name.startsWith(i) || simpleName.startsWith(i); - } else { - ok = name.equals(i) || simpleName.equals(i); - } - - if (ok) { - return true; - } - } - - return false; - } - ); + System.out.println("outputIncludes.length = " + outputIncludes.length); + engine.io.dump(outputState, engine.session.getFactHandles(), this::filter); } return 0; } + + private Boolean filter(Object o) { + if (outputIncludes.length == 0) { + return true; + } + + var name = o.getClass().getName(); + var simpleName = o.getClass().getSimpleName(); + var packageName = o.getClass().getPackageName(); + + for (var i : outputIncludes) { + var ok = false; + if (i.startsWith("*")) { + i = i.substring(1); + + if (i.endsWith("*")) { + i = i.substring(1, i.length() - 2); + ok = name.contains(i); + } else { + ok = name.endsWith(i) || simpleName.endsWith(i) || packageName.endsWith(i); + } + } else if (i.endsWith("*")) { + i = i.substring(0, i.length() - 2); + ok = name.startsWith(i) || simpleName.startsWith(i) || packageName.startsWith(i); + } else { + ok = name.equals(i) || simpleName.equals(i) || packageName.equals(i); + } + + if (ok) { + return true; + } + } + + return false; + } } -- cgit v1.2.3