From ffc6ba805323ebdd7615300d9908180c74924152 Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Mon, 14 Jan 2019 16:39:00 +0200 Subject: [PATCH] Simplied Java, based on review --- .../reitit-core/java-src/reitit/SegmentTrie.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/modules/reitit-core/java-src/reitit/SegmentTrie.java b/modules/reitit-core/java-src/reitit/SegmentTrie.java index 704efcce..5813f26d 100644 --- a/modules/reitit-core/java-src/reitit/SegmentTrie.java +++ b/modules/reitit-core/java-src/reitit/SegmentTrie.java @@ -52,7 +52,7 @@ public class SegmentTrie { private Map childs = new HashMap<>(); private Map wilds = new HashMap<>(); - private Map catchAll = new HashMap<>(); + private Keyword catchAll = null; private Object data; public SegmentTrie add(String path, Object data) { @@ -69,12 +69,7 @@ public class SegmentTrie { pointer = s; } else if (p.startsWith("*")) { Keyword k = Keyword.intern(p.substring(1)); - SegmentTrie s = pointer.catchAll.get(k); - if (s == null) { - s = new SegmentTrie(); - s.data = data; - pointer.catchAll.put(k, s); - } + pointer.catchAll = k; break; } else { SegmentTrie s = pointer.childs.get(p); @@ -103,10 +98,10 @@ public class SegmentTrie { public Matcher matcher() { Matcher m; - if (!catchAll.isEmpty()) { - m = new CatchAllMatcher(catchAll.keySet().iterator().next(), data); + if (catchAll != null) { + m = new CatchAllMatcher(catchAll, data); } else if (!wilds.isEmpty()) { - if(wilds.size() == 1 && data == null && childs.isEmpty()) { + if (wilds.size() == 1 && data == null && childs.isEmpty()) { m = new WildMatcher(wilds.keySet().iterator().next(), wilds.values().iterator().next().matcher()); } else { List matchers = new ArrayList<>();