From a342bc26ad744d48ea7a8aceebcc950d8b4bd40d Mon Sep 17 00:00:00 2001 From: wg1j Date: Wed, 27 Sep 2017 02:56:38 +0800 Subject: [PATCH] Remove unnecessary method and interface (#111) * remove unnecessary Comparable interface * remove sort from Rules API * fix creating Rules with a Set --- .../src/main/java/org/jeasy/rules/api/Rules.java | 9 +-------- .../main/java/org/jeasy/rules/core/BasicRule.java | 2 +- .../org/jeasy/rules/core/DefaultRulesEngine.java | 6 ------ .../test/java/org/jeasy/rules/api/RulesTest.java | 13 +++++++++++++ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/api/Rules.java b/easy-rules-core/src/main/java/org/jeasy/rules/api/Rules.java index 44e2ad1..c7a4904 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/api/Rules.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/api/Rules.java @@ -43,7 +43,7 @@ public class Rules implements Iterable { * @param rules to register */ public Rules(Set rules) { - this.rules = rules; + this.rules = new TreeSet<>(rules); } /** @@ -120,13 +120,6 @@ public class Rules implements Iterable { return rules.iterator(); } - /** - * Sort rules. - */ - public void sort() { - rules = new TreeSet<>(rules); - } - private Rule findRuleByName(String ruleName){ for(Rule rule : rules){ if(rule.getName().equalsIgnoreCase(ruleName)) diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/core/BasicRule.java b/easy-rules-core/src/main/java/org/jeasy/rules/core/BasicRule.java index 7f96598..ed87e24 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/core/BasicRule.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/core/BasicRule.java @@ -34,7 +34,7 @@ import org.jeasy.rules.api.Rule; * * @author Mahmoud Ben Hassine (mahmoud.benhassine@icloud.com) */ -public class BasicRule implements Rule, Comparable { +public class BasicRule implements Rule { /** * Rule name. diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/core/DefaultRulesEngine.java b/easy-rules-core/src/main/java/org/jeasy/rules/core/DefaultRulesEngine.java index c9b2eee..39b7cd8 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/core/DefaultRulesEngine.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/core/DefaultRulesEngine.java @@ -102,7 +102,6 @@ public final class DefaultRulesEngine implements RulesEngine { LOGGER.warning("No rules registered! Nothing to apply"); return; } - sort(rules); logEngineParameters(); log(rules); log(facts); @@ -112,7 +111,6 @@ public final class DefaultRulesEngine implements RulesEngine { @Override public Map check(Rules rules, Facts facts) { LOGGER.info("Checking rules"); - sort(rules); Map result = new HashMap<>(); for (Rule rule : rules) { if (shouldBeEvaluated(rule, facts)) { @@ -122,10 +120,6 @@ public final class DefaultRulesEngine implements RulesEngine { return result; } - private void sort(Rules rules) { - rules.sort(); - } - private void apply(Rules rules, Facts facts) { LOGGER.info("Rules evaluation started"); for (Rule rule : rules) { diff --git a/easy-rules-core/src/test/java/org/jeasy/rules/api/RulesTest.java b/easy-rules-core/src/test/java/org/jeasy/rules/api/RulesTest.java index 59010d2..11f7d83 100644 --- a/easy-rules-core/src/test/java/org/jeasy/rules/api/RulesTest.java +++ b/easy-rules-core/src/test/java/org/jeasy/rules/api/RulesTest.java @@ -93,6 +93,19 @@ public class RulesTest { assertThat(rules).isEmpty(); } + @Test + public void sort() throws Exception { + Rule r1 = new BasicRule("rule", "", 1); + Rule r2 = new BasicRule("rule", "", Integer.MAX_VALUE); + DummyRule r3 = new DummyRule(); + + rules.register(r3); + rules.register(r1); + rules.register(r2); + + assertThat(rules).startsWith(r1).endsWith(r2); + } + @Test(expected = NullPointerException.class) public void whenRegisterNullRule_thenShouldThrowNullPointerException() throws Exception { rules.register(null);