mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 21:43:49 +00:00
Implemented new clusters and their boundaries
This commit is contained in:
1 parent
f0d29c4555
commit
28769df713
38 files changed
+283
-52
No files matched your search
+6
-6
@@ -1,25 +1,25 @@
|
||||
package com.sap.sailing.datamining.shared;
|
||||
|
||||
import com.sap.sse.datamining.components.ValueType;
|
||||
import com.sap.sse.datamining.components.ElementType;
|
||||
import com.sap.sse.datamining.shared.Message;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
|
||||
public enum StatisticType {
|
||||
|
||||
Speed(ValueType.Double, Unit.Knots, 2),
|
||||
Distance(ValueType.Double, Unit.Meters, 2);
|
||||
Speed(ElementType.Double, Unit.Knots, 2),
|
||||
Distance(ElementType.Double, Unit.Meters, 2);
|
||||
|
||||
private final ValueType valueType;
|
||||
private final ElementType valueType;
|
||||
private final Unit unit;
|
||||
private final int valueDecimals;
|
||||
|
||||
private StatisticType(ValueType valueType, Unit unit, int valueDecimals) {
|
||||
private StatisticType(ElementType valueType, Unit unit, int valueDecimals) {
|
||||
this.valueType = valueType;
|
||||
this.unit = unit;
|
||||
this.valueDecimals = valueDecimals;
|
||||
}
|
||||
|
||||
public ValueType getValueType() {
|
||||
public ElementType getValueType() {
|
||||
return valueType;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.datamining.Clusters;
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.impl.data.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.ClusterOfComparableImpl;
|
||||
|
||||
public class TestClusters {
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
|
||||
public interface WindStrengthCluster extends ClusterOfComparable<Double> {
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.datamining.dimensions;
|
||||
|
||||
import com.sap.sailing.datamining.shared.DimensionIdentifier;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
|
||||
public interface DimensionManager<DataType> {
|
||||
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining.dimensions;
|
||||
import com.sap.sailing.datamining.data.GPSFixWithContext;
|
||||
import com.sap.sailing.datamining.shared.DimensionIdentifier;
|
||||
import com.sap.sailing.domain.common.LegType;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.AbstractDimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.AbstractDimension;
|
||||
|
||||
public final class GPSFixDimensionManager implements DimensionManager<GPSFixWithContext> {
|
||||
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining.dimensions;
|
||||
import com.sap.sailing.datamining.data.TrackedLegOfCompetitorWithContext;
|
||||
import com.sap.sailing.datamining.shared.DimensionIdentifier;
|
||||
import com.sap.sailing.domain.common.LegType;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.AbstractDimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.AbstractDimension;
|
||||
|
||||
public final class TrackedLegOfCompetitorDimensionManager implements DimensionManager<TrackedLegOfCompetitorWithContext> {
|
||||
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import com.sap.sailing.datamining.shared.DataTypes;
|
||||
import com.sap.sailing.datamining.shared.DimensionIdentifier;
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
import com.sap.sse.datamining.components.ParallelFilter;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.components.deprecated.NonFilteringFilter;
|
||||
import com.sap.sse.datamining.impl.components.deprecated.PartitioningParallelFilter;
|
||||
import com.sap.sse.datamining.impl.criterias.AndCompoundFilterCriteria;
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import com.sap.sailing.datamining.shared.DataTypes;
|
||||
import com.sap.sailing.datamining.shared.DimensionIdentifier;
|
||||
import com.sap.sailing.datamining.shared.QueryDefinition;
|
||||
import com.sap.sse.datamining.components.ParallelGrouper;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.components.deprecated.PartitioningParallelGrouper;
|
||||
import com.sap.sse.datamining.impl.workers.builders.MultiDimensionalGroupingWorkerBuilder;
|
||||
import com.sap.sse.datamining.workers.GroupingWorker;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sailing.datamining.impl;
|
||||
|
||||
|
||||
import com.sap.sailing.datamining.WindStrengthCluster;
|
||||
import com.sap.sse.datamining.impl.data.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.ClusterOfComparableImpl;
|
||||
|
||||
public class WindStrengthClusterImpl extends ClusterOfComparableImpl<Double> implements WindStrengthCluster {
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
package com.sap.sse.datamining.components;
|
||||
|
||||
public enum ValueType {
|
||||
public enum ElementType {
|
||||
Integer, Double
|
||||
}
|
||||
+2
-2
@@ -11,11 +11,11 @@ import java.util.Collection;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.factories.FunctionFactory;
|
||||
import com.sap.sse.datamining.functions.Function;
|
||||
import com.sap.sse.datamining.impl.criterias.deprecated.SimpleRangeFilterCriteria;
|
||||
import com.sap.sse.datamining.impl.data.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.test.function.test_classes.DataTypeWithContext;
|
||||
import com.sap.sse.datamining.test.function.test_classes.DataTypeWithContextImpl;
|
||||
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
|
||||
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary.ComparisonStrategy;
|
||||
|
||||
public class TestClustersWithBoundaries {
|
||||
|
||||
private static final Comparator<Integer> comparator = new ComparableComparator<Integer>();
|
||||
|
||||
private static final ClusterBoundary<Integer> lowerBound = new ComparatorClusterBoundary<Integer>(comparator, 0, ComparisonStrategy.GREATER_EQUALS_THAN);
|
||||
private static final ClusterBoundary<Integer> upperBound = new ComparatorClusterBoundary<Integer>(comparator, 10, ComparisonStrategy.LOWER_THAN);
|
||||
|
||||
@Test
|
||||
public void testClusterWithBoundaries() {
|
||||
Cluster<Integer> cluster = new ClusterWithBoundaries<>("Test Cluster", lowerBound, upperBound);
|
||||
|
||||
assertThat(cluster.isInRange(0), is(true));
|
||||
assertThat(cluster.isInRange(3), is(true));
|
||||
assertThat(cluster.isInRange(7), is(true));
|
||||
|
||||
assertThat(cluster.isInRange(-1), is(false));
|
||||
assertThat(cluster.isInRange(10), is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClusterWithSingleBoundary() {
|
||||
Cluster<Integer> cluster = new ClusterWithSingleBoundary<>("Test Cluster", lowerBound);
|
||||
|
||||
assertThat(cluster.isInRange(0), is(true));
|
||||
assertThat(cluster.isInRange(3), is(true));
|
||||
|
||||
assertThat(cluster.isInRange(-1), is(false));
|
||||
|
||||
cluster = new ClusterWithSingleBoundary<>("Test Cluster", upperBound);
|
||||
|
||||
assertThat(cluster.isInRange(9), is(true));
|
||||
|
||||
assertThat(cluster.isInRange(10), is(false));
|
||||
assertThat(cluster.isInRange(11), is(false));
|
||||
}
|
||||
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
import com.sap.sse.datamining.data.ClusterBoundary.ComparisonStrategy;
|
||||
|
||||
public class TestComparatorClusterBoundary {
|
||||
|
||||
public static final Comparator<Integer> comparator = new ComparableComparator<Integer>();
|
||||
|
||||
@Test
|
||||
public void testGreaterEqualsThanStrategy() {
|
||||
ClusterBoundary<Integer> greaterEqualsThan5Bound = new ComparatorClusterBoundary<Integer>(comparator, 5, ComparisonStrategy.GREATER_EQUALS_THAN);
|
||||
|
||||
assertThat(greaterEqualsThan5Bound.contains(6), is(true));
|
||||
assertThat(greaterEqualsThan5Bound.contains(5), is(true));
|
||||
assertThat(greaterEqualsThan5Bound.contains(4), is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGreaterThanStrategy() {
|
||||
ClusterBoundary<Integer> greaterThan5Bound = new ComparatorClusterBoundary<Integer>(comparator, 5, ComparisonStrategy.GREATER_THAN);
|
||||
|
||||
assertThat(greaterThan5Bound.contains(6), is(true));
|
||||
assertThat(greaterThan5Bound.contains(5), is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLowerEqualsThanStrategy() {
|
||||
ClusterBoundary<Integer> lowerEqualsThan5Bound = new ComparatorClusterBoundary<Integer>(comparator, 5, ComparisonStrategy.LOWER_EQUALS_THAN);
|
||||
|
||||
assertThat(lowerEqualsThan5Bound.contains(4), is(true));
|
||||
assertThat(lowerEqualsThan5Bound.contains(5), is(true));
|
||||
assertThat(lowerEqualsThan5Bound.contains(6), is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLowerThanStrategy() {
|
||||
ClusterBoundary<Integer> lowerThan5Bound = new ComparatorClusterBoundary<Integer>(comparator, 5, ComparisonStrategy.LOWER_THAN);
|
||||
|
||||
assertThat(lowerThan5Bound.contains(4), is(true));
|
||||
assertThat(lowerThan5Bound.contains(5), is(false));
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -12,8 +12,8 @@ import java.util.Map.Entry;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.AbstractDimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.AbstractDimension;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.CompoundGroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
|
||||
+2
-2
@@ -9,9 +9,9 @@ import java.util.List;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.impl.criterias.deprecated.SimpleRangeFilterCriteria;
|
||||
import com.sap.sse.datamining.impl.data.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.impl.data.deprecated.ClusterOfComparableImpl;
|
||||
import com.sap.sse.datamining.test.util.OpenDataReceiver;
|
||||
import com.sap.sse.datamining.workers.FiltrationWorker;
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sse.datamining.test.util;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.workers.MultiDimensionalGroupingWorker;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
|
||||
@@ -8,7 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Import-Package: org.osgi.framework;version="1.7.0"
|
||||
Export-Package: com.sap.sse.datamining;uses:="com.sap.sse.datamining.functions,com.sap.sse.datamining.shared",
|
||||
com.sap.sse.datamining.components;uses:="com.sap.sse.datamining.shared",
|
||||
com.sap.sse.datamining.data,
|
||||
com.sap.sse.datamining.data.deprecated,
|
||||
com.sap.sse.datamining.factories;uses:="com.sap.sse.datamining.impl.functions",
|
||||
com.sap.sse.datamining.functions;uses:="com.sap.sse.datamining.shared.dto,com.sap.sse.datamining.i18n,com.sap.sse.datamining.components",
|
||||
com.sap.sse.datamining.i18n;uses:="com.sap.sse.datamining.shared",
|
||||
@@ -23,7 +23,7 @@ Export-Package: com.sap.sse.datamining;uses:="com.sap.sse.datamining.functions,c
|
||||
com.sap.sse.datamining.impl.components.deprecated,
|
||||
com.sap.sse.datamining.impl.criterias;uses:="com.sap.sse.datamining.data,com.sap.sse.datamining.functions,com.sap.sse.datamining.components",
|
||||
com.sap.sse.datamining.impl.criterias.deprecated,
|
||||
com.sap.sse.datamining.impl.data;uses:="com.sap.sse.datamining.data",
|
||||
com.sap.sse.datamining.impl.data.deprecated;uses:="com.sap.sse.datamining.data",
|
||||
com.sap.sse.datamining.impl.deprecated,
|
||||
com.sap.sse.datamining.impl.i18n;uses:="com.sap.sse.datamining.shared,com.sap.sse.datamining.i18n",
|
||||
com.sap.sse.datamining.impl.workers,
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
package com.sap.sse.datamining.data;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public interface Cluster<ValueType> {
|
||||
public interface Cluster<ElementType> {
|
||||
|
||||
public String getName();
|
||||
public ValueType getUpperRange();
|
||||
public ValueType getLowerRange();
|
||||
|
||||
public boolean isInRange(ValueType value, Comparator<ValueType> comparator);
|
||||
public boolean isInRange(ElementType value);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.sap.sse.datamining.data;
|
||||
|
||||
public interface ClusterBoundary<ElementType> {
|
||||
|
||||
public enum ComparisonStrategy {
|
||||
LOWER_THAN, LOWER_EQUALS_THAN, GREATER_THAN, GREATER_EQUALS_THAN
|
||||
}
|
||||
|
||||
public boolean contains(ElementType value);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.sap.sse.datamining.data.deprecated;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public interface Cluster<ValueType> {
|
||||
|
||||
public String getName();
|
||||
public ValueType getUpperRange();
|
||||
public ValueType getLowerRange();
|
||||
|
||||
public boolean isInRange(ValueType value, Comparator<ValueType> comparator);
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sse.datamining.data;
|
||||
package com.sap.sse.datamining.data.deprecated;
|
||||
|
||||
public interface ClusterOfComparable<ValueType extends Comparable<ValueType>> extends Cluster<ValueType> {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sse.datamining.data;
|
||||
package com.sap.sse.datamining.data.deprecated;
|
||||
|
||||
public interface Dimension<DataType, ValueType> {
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
import com.sap.sse.datamining.components.AggregatorType;
|
||||
import com.sap.sse.datamining.components.ParallelAggregator;
|
||||
import com.sap.sse.datamining.components.ValueType;
|
||||
import com.sap.sse.datamining.components.ElementType;
|
||||
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
|
||||
import com.sap.sse.datamining.impl.components.deprecated.GroupDividingParallelAggregator;
|
||||
import com.sap.sse.datamining.impl.workers.builders.AggregationWorkerBuilder;
|
||||
@@ -18,7 +18,7 @@ public final class AggregatorFactory {
|
||||
|
||||
public static <ExtractedType, AggregatedType> ParallelAggregator<ExtractedType, AggregatedType> createAggregator(DataMiningStringMessages stringMessages,
|
||||
Locale locale,
|
||||
ValueType valueType, AggregatorType aggregatorType, ThreadPoolExecutor executor) {
|
||||
ElementType valueType, AggregatorType aggregatorType, ThreadPoolExecutor executor) {
|
||||
WorkerBuilder<AggregationWorker<ExtractedType, AggregatedType>> workerBuilder = new AggregationWorkerBuilder<ExtractedType, AggregatedType>(valueType, aggregatorType);
|
||||
return new GroupDividingParallelAggregator<ExtractedType, AggregatedType>(stringMessages.get(locale, aggregatorType.getNameMessage()), workerBuilder, executor);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.sap.sse.datamining.impl.criterias.deprecated;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.criterias.RegexFilterCriteria;
|
||||
|
||||
public class DimensionRegexFilterCriteria<DataType> extends RegexFilterCriteria<DataType> {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
|
||||
public class DimensionValuesFilterCriteria<DataType, ValueType> implements FilterCriteria<DataType> {
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sse.datamining.impl.criterias.deprecated;
|
||||
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
|
||||
public abstract class RangeFilterCriteria<DataType, ValueType extends Comparable<ValueType>> implements FilterCriteria<DataType> {
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.sap.sse.datamining.impl.criterias.deprecated;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
|
||||
public class SimpleRangeFilterCriteria<DataType extends Comparable<DataType>> extends RangeFilterCriteria<DataType, DataType> {
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
|
||||
public abstract class AbstractCluster<ElementType> implements Cluster<ElementType> {
|
||||
|
||||
protected final String name;
|
||||
|
||||
public AbstractCluster(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
|
||||
public class ClusterWithBoundaries<ElementType> extends AbstractCluster<ElementType> {
|
||||
|
||||
private final ClusterBoundary<ElementType> lowerBound;
|
||||
private final ClusterBoundary<ElementType> upperBound;
|
||||
|
||||
public ClusterWithBoundaries(String name, ClusterBoundary<ElementType> lowerBound,
|
||||
ClusterBoundary<ElementType> upperBound) {
|
||||
super(name);
|
||||
this.lowerBound = lowerBound;
|
||||
this.upperBound = upperBound;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInRange(ElementType value) {
|
||||
return lowerBound.contains(value) && upperBound.contains(value);
|
||||
}
|
||||
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
|
||||
public class ClusterWithSingleBoundary<ElementType> extends AbstractCluster<ElementType> {
|
||||
|
||||
private final ClusterBoundary<ElementType> boundary;
|
||||
|
||||
public ClusterWithSingleBoundary(String name, ClusterBoundary<ElementType> boundary) {
|
||||
super(name);
|
||||
this.boundary = boundary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInRange(ElementType value) {
|
||||
return boundary.contains(value);
|
||||
}
|
||||
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class ComparableComparator<T extends Comparable<T>> implements Comparator<T> {
|
||||
|
||||
@Override
|
||||
public int compare(T o1, T o2) {
|
||||
return o1.compareTo(o2);
|
||||
}
|
||||
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterBoundary;
|
||||
|
||||
public class ComparatorClusterBoundary<ElementType> implements ClusterBoundary<ElementType> {
|
||||
|
||||
private final Comparator<ElementType> comparator;
|
||||
private final ElementType boundaryValue;
|
||||
private final ComparisonStrategy strategy;
|
||||
|
||||
public ComparatorClusterBoundary(Comparator<ElementType> comparator, ElementType boundaryValue,
|
||||
ComparisonStrategy strategy) {
|
||||
this.comparator = comparator;
|
||||
this.boundaryValue = boundaryValue;
|
||||
this.strategy = strategy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(ElementType value) {
|
||||
return verifyComparisonResult(comparator.compare(value, boundaryValue));
|
||||
}
|
||||
|
||||
private boolean verifyComparisonResult(int comparisonResult) {
|
||||
switch (strategy) {
|
||||
case GREATER_EQUALS_THAN:
|
||||
return comparisonResult == 0 || comparisonResult >= 1;
|
||||
case GREATER_THAN:
|
||||
return comparisonResult >= 1;
|
||||
case LOWER_EQUALS_THAN:
|
||||
return comparisonResult == 0 || comparisonResult <= -1;
|
||||
case LOWER_THAN:
|
||||
return comparisonResult <= -1;
|
||||
}
|
||||
throw new UnsupportedOperationException("No implementation for the strategy " + strategy);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
package com.sap.sse.datamining.impl.data.deprecated;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
|
||||
public abstract class AbstractDimension<DataType, ValueType> implements Dimension<DataType, ValueType> {
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
package com.sap.sse.datamining.impl.data.deprecated;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import com.sap.sse.datamining.data.Cluster;
|
||||
import com.sap.sse.datamining.data.deprecated.Cluster;
|
||||
|
||||
public class ClusterImpl<ValueType> implements Cluster<ValueType> {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.sap.sse.datamining.impl.data;
|
||||
package com.sap.sse.datamining.impl.data.deprecated;
|
||||
|
||||
import com.sap.sse.datamining.data.ClusterOfComparable;
|
||||
import com.sap.sse.datamining.data.deprecated.ClusterOfComparable;
|
||||
|
||||
public class ClusterOfComparableImpl<ValueType extends Comparable<ValueType>> extends ClusterImpl<ValueType> implements
|
||||
ClusterOfComparable<ValueType> {
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.CompoundGroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.sap.sse.datamining.impl.workers.builders;
|
||||
|
||||
import com.sap.sse.datamining.components.AggregatorType;
|
||||
import com.sap.sse.datamining.components.ValueType;
|
||||
import com.sap.sse.datamining.components.ElementType;
|
||||
import com.sap.sse.datamining.impl.workers.aggregators.SimpleDoubleArithmeticAverageAggregationWorker;
|
||||
import com.sap.sse.datamining.impl.workers.aggregators.SimpleDoubleMedianAggregationWorker;
|
||||
import com.sap.sse.datamining.impl.workers.aggregators.SimpleIntegerArithmeticAverageAggregationWorker;
|
||||
@@ -14,10 +14,10 @@ import com.sap.sse.datamining.workers.WorkerBuilder;
|
||||
|
||||
public class AggregationWorkerBuilder<ExtractedType, AggregatedType> implements WorkerBuilder<AggregationWorker<ExtractedType, AggregatedType>> {
|
||||
|
||||
private ValueType valueType;
|
||||
private ElementType valueType;
|
||||
private AggregatorType aggregatorType;
|
||||
|
||||
public AggregationWorkerBuilder(ValueType valueType, AggregatorType aggregatorType) {
|
||||
public AggregationWorkerBuilder(ElementType valueType, AggregatorType aggregatorType) {
|
||||
this.valueType = valueType;
|
||||
this.aggregatorType = aggregatorType;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sse.datamining.impl.workers.builders;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.sap.sse.datamining.data.Dimension;
|
||||
import com.sap.sse.datamining.data.deprecated.Dimension;
|
||||
import com.sap.sse.datamining.impl.workers.MultiDimensionalGroupingWorker;
|
||||
import com.sap.sse.datamining.workers.GroupingWorker;
|
||||
import com.sap.sse.datamining.workers.WorkerBuilder;
|
||||
|
||||
Reference in new issue
Block a user