From 7cb7c2749c53d882aa7f36c77fbe4645cf698b56 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 28 Aug 2014 21:45:03 +0200 Subject: [PATCH] [Major] Implemented AuditQuery --- .../li/strolch/model/audit/AuditQuery.java | 35 ++++----- .../model/audit/AuditQueryVisitor.java | 3 - .../model/audit/DateRangeSelection.java | 74 ------------------- .../strolch/model/audit/ElementSelection.java | 18 ----- .../li/strolch/model/query/Navigation.java | 2 - .../li/strolch/model/query/Selection.java | 2 +- .../strolch/model/query/StringSelection.java | 8 ++ 7 files changed, 24 insertions(+), 118 deletions(-) delete mode 100644 src/main/java/li/strolch/model/audit/DateRangeSelection.java diff --git a/src/main/java/li/strolch/model/audit/AuditQuery.java b/src/main/java/li/strolch/model/audit/AuditQuery.java index fa5daf1a2..d752c0c3d 100644 --- a/src/main/java/li/strolch/model/audit/AuditQuery.java +++ b/src/main/java/li/strolch/model/audit/AuditQuery.java @@ -18,32 +18,31 @@ package li.strolch.model.audit; import java.util.ArrayList; import java.util.List; +import ch.eitchnet.utils.collections.DateRange; +import ch.eitchnet.utils.dbc.DBC; + /** * @author Robert von Burg */ public class AuditQuery { - private int maxResults; - + private String elementTypeSelection; private List selections; + private DateRange dateRange; - public AuditQuery() { + public AuditQuery(String elementTypeSelection, DateRange dateRange) { + DBC.PRE.assertFalse("dateRange may not be unbounded!", dateRange.isUnbounded()); + this.elementTypeSelection = elementTypeSelection; + this.dateRange = dateRange; this.selections = new ArrayList<>(); } - /** - * @return the maxResults - */ - public int getMaxResults() { - return this.maxResults; + public String getElementTypeSelection() { + return this.elementTypeSelection; } - /** - * @param maxResults - * the maxResults to set - */ - public void setMaxResults(int maxResults) { - this.maxResults = maxResults; + public DateRange getDateRange() { + return this.dateRange; } public ActionSelection action() { @@ -52,12 +51,6 @@ public class AuditQuery { return selection; } - public DateRangeSelection dateRange() { - DateRangeSelection selection = new DateRangeSelection(this); - this.selections.add(selection); - return selection; - } - public ElementSelection element() { ElementSelection selection = new ElementSelection(this); this.selections.add(selection); @@ -71,6 +64,8 @@ public class AuditQuery { } public void accept(AuditQueryVisitor visitor) { + DBC.PRE.assertNotNull("No elementTypeSelection (navigation) set!", this.elementTypeSelection); //$NON-NLS-1$ + DBC.PRE.assertNotNull("No dateRange set!", this.dateRange); //$NON-NLS-1$ visitor.visit(this); for (AuditSelection selection : selections) { selection.accept(visitor); diff --git a/src/main/java/li/strolch/model/audit/AuditQueryVisitor.java b/src/main/java/li/strolch/model/audit/AuditQueryVisitor.java index 616f75f94..03fc601de 100644 --- a/src/main/java/li/strolch/model/audit/AuditQueryVisitor.java +++ b/src/main/java/li/strolch/model/audit/AuditQueryVisitor.java @@ -15,7 +15,6 @@ */ package li.strolch.model.audit; - /** * @author Robert von Burg */ @@ -25,8 +24,6 @@ public interface AuditQueryVisitor { public void visit(IdentitySelection selection); - public void visit(DateRangeSelection selection); - public void visit(ActionSelection selection); public void visit(AuditQuery auditQuery); diff --git a/src/main/java/li/strolch/model/audit/DateRangeSelection.java b/src/main/java/li/strolch/model/audit/DateRangeSelection.java deleted file mode 100644 index 558210fce..000000000 --- a/src/main/java/li/strolch/model/audit/DateRangeSelection.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2013 Robert von Burg - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package li.strolch.model.audit; - -import java.util.Date; - -import ch.eitchnet.utils.collections.DateRange; - -/** - * @author Robert von Burg - */ -public class DateRangeSelection extends AuditSelection { - - private DateRange dateRange; - - public DateRangeSelection(AuditQuery query) { - super(query); - this.dateRange = new DateRange(); - } - - public DateRange from(Date from, boolean inclusive) { - return this.dateRange.from(from, inclusive); - } - - public DateRange to(Date to, boolean inclusive) { - return this.dateRange.to(to, inclusive); - } - - public Date getFromDate() { - return this.dateRange.getFromDate(); - } - - public Date getToDate() { - return this.dateRange.getToDate(); - } - - public boolean isFromBounded() { - return this.dateRange.isFromBounded(); - } - - public boolean isToBounded() { - return this.dateRange.isToBounded(); - } - - public boolean isUnbounded() { - return this.dateRange.isUnbounded(); - } - - public boolean isBounded() { - return this.dateRange.isBounded(); - } - - public boolean contains(Date date) { - return this.dateRange.contains(date); - } - - @Override - public void accept(AuditQueryVisitor visitor) { - visitor.visit(this); - } -} diff --git a/src/main/java/li/strolch/model/audit/ElementSelection.java b/src/main/java/li/strolch/model/audit/ElementSelection.java index 226e4f96c..74b78975b 100644 --- a/src/main/java/li/strolch/model/audit/ElementSelection.java +++ b/src/main/java/li/strolch/model/audit/ElementSelection.java @@ -23,18 +23,12 @@ import ch.eitchnet.utils.StringMatchMode; */ public class ElementSelection extends AuditSelection { - private StringSelection elementTypeSelection; private StringSelection elementAccessedSelection; public ElementSelection(AuditQuery query) { super(query); } - public ElementSelection elementTypes(StringMatchMode matchMode, String... elementTypes) { - this.elementTypeSelection = new StringSelection(matchMode, elementTypes); - return this; - } - public ElementSelection elementsAccessed(StringMatchMode matchMode, String... elementsAccessed) { this.elementAccessedSelection = new StringSelection(matchMode, elementsAccessed); return this; @@ -44,22 +38,10 @@ public class ElementSelection extends AuditSelection { return this.elementAccessedSelection; } - public StringSelection getElementTypeSelection() { - return this.elementTypeSelection; - } - - public boolean isElementTypesWildcard() { - return this.elementTypeSelection == null || this.elementTypeSelection.isWildCard(); - } - public boolean isElementsAccessedWildcard() { return this.elementAccessedSelection == null || this.elementAccessedSelection.isWildCard(); } - public boolean isWildcard() { - return this.isElementsAccessedWildcard() && this.isElementTypesWildcard(); - } - @Override public void accept(AuditQueryVisitor visitor) { visitor.visit(this); diff --git a/src/main/java/li/strolch/model/query/Navigation.java b/src/main/java/li/strolch/model/query/Navigation.java index 3ddb304fe..b184bdd02 100644 --- a/src/main/java/li/strolch/model/query/Navigation.java +++ b/src/main/java/li/strolch/model/query/Navigation.java @@ -17,10 +17,8 @@ package li.strolch.model.query; /** * @author Robert von Burg - * */ public interface Navigation { - // marker interface public void accept(QueryVisitor visitor); } diff --git a/src/main/java/li/strolch/model/query/Selection.java b/src/main/java/li/strolch/model/query/Selection.java index dd930ec6a..7d720035e 100644 --- a/src/main/java/li/strolch/model/query/Selection.java +++ b/src/main/java/li/strolch/model/query/Selection.java @@ -21,6 +21,6 @@ package li.strolch.model.query; public interface Selection { public void accept(QueryVisitor visitor); - + public boolean hasSelection(); } diff --git a/src/main/java/li/strolch/model/query/StringSelection.java b/src/main/java/li/strolch/model/query/StringSelection.java index b66734c48..8fa00902a 100644 --- a/src/main/java/li/strolch/model/query/StringSelection.java +++ b/src/main/java/li/strolch/model/query/StringSelection.java @@ -74,4 +74,12 @@ public class StringSelection { public boolean isWildCard() { return this.values == null || this.values.length == 0; } + + public boolean matches(String value) { + for (String sel : values) { + if (this.matchMode.matches(value, sel)) + return true; + } + return false; + } }