Added filter and filter criteria

This commit is contained in:
Lennart Hensler committed 2013-08-07 16:41:39 +02:00
1 parent 95d819540b
commit 289e6d63e8
5 files changed
+54

No files matched your search

@@ -0,0 +1,9 @@
package com.sap.sailing.datamining;
import java.util.Collection;
public interface Filter<DataType> {
public Collection<DataType> filter(Collection<DataType> data);
}
@@ -0,0 +1,7 @@
package com.sap.sailing.datamining;
public interface FilterCriteria<DataType> {
public boolean matches(DataType data);
}
@@ -0,0 +1,5 @@
package com.sap.sailing.datamining;
public interface GPSFixFilter extends Filter<GPSFixWithContext> {
}
@@ -0,0 +1,5 @@
package com.sap.sailing.datamining;
public interface GPSFixFilterCriteria extends FilterCriteria<GPSFixWithContext> {
}
@@ -0,0 +1,28 @@
package com.sap.sailing.datamining.impl;
import java.util.ArrayList;
import java.util.Collection;
import com.sap.sailing.datamining.Filter;
import com.sap.sailing.datamining.FilterCriteria;
public class FilterByCriteriaImpl<DataType> implements Filter<DataType> {
private FilterCriteria<DataType> criteria;
public FilterByCriteriaImpl(FilterCriteria<DataType> criteria) {
this.criteria = criteria;
}
@Override
public Collection<DataType> filter(Collection<DataType> data) {
Collection<DataType> filteredData = new ArrayList<DataType>();
for (DataType dataEntry : data) {
if (criteria.matches(dataEntry)) {
filteredData.add(dataEntry);
}
}
return filteredData;
}
}