From 2cbdca3da8d50e57214656b29663f73365817bf2 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 31 Aug 2016 18:33:35 +0200 Subject: [PATCH] [Minor] Allow to query by Id and Name when without prefix --- .../model/query/parser/QueryParser.java | 61 +++++++++++-------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java b/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java index 5f0b713a0..6eb1452c9 100644 --- a/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java +++ b/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java @@ -121,23 +121,11 @@ public abstract class QueryParser extends CompositeParser { } action("id", (String s) -> { - String trimmed = s.trim(); - if (trimmed.isEmpty()) - return null; - - if (this.idSelection == null) { - this.idSelection = new IdSelection(trimmed, StringMatchMode.ci()); - or().with(this.idSelection); - } else { - this.idSelection.with(trimmed); - } - + doIdAction(s); return null; }); action("name", (String s) -> { - String trimmed = s.trim(); - if (!trimmed.isEmpty()) - or().with(new NameSelection(trimmed, StringMatchMode.ci())); + doNameAction(s); return null; }); action("type", (String s) -> { @@ -150,25 +138,46 @@ public abstract class QueryParser extends CompositeParser { } else { action("other", (String s) -> { - - for (String bagId : getBagParamSet().keySet()) { - Set set = getBagParamSet().getSet(bagId); - for (String paramId : set) { - String trimmed = s.trim(); - if (!trimmed.isEmpty()) - or().with( - ParameterSelection.anyTypeSelection(bagId, paramId, trimmed, StringMatchMode.ci())); - } - } - + doIdAction(s); + doNameAction(s); + doParamAction(s); return null; - }); } action("start", o -> this.query); } + private void doIdAction(String s) { + String trimmed = s.trim(); + if (trimmed.isEmpty()) + return; + + if (this.idSelection == null) { + this.idSelection = new IdSelection(trimmed, StringMatchMode.ci()); + or().with(this.idSelection); + } else { + this.idSelection.with(trimmed); + } + } + + private void doNameAction(String s) { + String trimmed = s.trim(); + if (!trimmed.isEmpty()) + or().with(new NameSelection(trimmed, StringMatchMode.ci())); + } + + private void doParamAction(String s) { + for (String bagId : getBagParamSet().keySet()) { + Set set = getBagParamSet().getSet(bagId); + for (String paramId : set) { + String trimmed = s.trim(); + if (!trimmed.isEmpty()) + or().with(ParameterSelection.anyTypeSelection(bagId, paramId, trimmed, StringMatchMode.ci())); + } + } + } + @Override protected void initialize() { defs();