summaryrefslogtreecommitdiff
path: root/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java')
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java
new file mode 100755
index 0000000..6827f22
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+public abstract class Filter {
+ private final static Logger LOGGER = Logger.getLogger(Filter.class.getName());
+
+ public Filter() {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public abstract boolean filter(EObject object);
+
+ public static EList<EObject> applyFilters(Collection<? extends EObject> values, EList<Filter> filters) {
+ EList<EObject> filteredList = new BasicEList<EObject>(values);
+ for (Filter filter: filters) {
+ filteredList = applyAcceptFilter(filteredList, filter);
+ }
+ return filteredList;
+ }
+
+ public static <T extends EObject> EList<T> applyAcceptFilter(Collection<T> values, Filter filter) {
+ LOGGER.info("=>");
+ EList<T> filteredList = new BasicEList<T>();
+
+ for (T object: values) {
+ if (filter.filter(object)) {
+ LOGGER.info("Adding object to filteredList: " + object);
+ filteredList.add(object);
+ } else {
+ LOGGER.info("Object NOT added to filteredList: " + object);
+ }
+ }
+
+ LOGGER.info("<=");
+ return filteredList;
+ }
+
+ public static <T extends EObject> EList<T> applyRejectFilter(Collection<T> values, Filter filter) {
+ LOGGER.info("=>");
+ EList<T> filteredList = new BasicEList<T>();
+
+ for (T object: values) {
+ if (!filter.filter(object)) {
+ LOGGER.info("Adding object to filteredList: " + object);
+ filteredList.add(object);
+ } else {
+ LOGGER.info("Object NOT added to filteredList: " + object);
+ }
+ }
+
+ return filteredList;
+ }
+}