mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 01:59:35 +00:00
Added filter and filter criteria
This commit is contained in:
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> {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
public interface GPSFixFilterCriteria extends FilterCriteria<GPSFixWithContext> {
|
||||
|
||||
}
|
||||
+28
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user