2021-05-28 12:22:14 +04:00

62 lines
1.7 KiB
Java

/*
*
* * Copyright (C) 2021 Anton Romanov - All Rights Reserved
* * You may use, distribute and modify this code, please write to: romanov73@gmail.com.
*
*
*/
package ru.ulstu.tsMethods.exponential.parameter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import ru.ulstu.tsMethods.MethodParameter;
import java.util.ArrayList;
import java.util.List;
public abstract class ExponentialMethodParameter extends MethodParameter {
public static final Float DEFAULT_OPTIMIZATION_STEP = 0.1f;
private final Number minValue;
private final Number maxValue;
private final Number optimizationStep;
public ExponentialMethodParameter(String name, Number minValue, Number maxValue, Number optimizationStep) {
super(name);
this.minValue = minValue;
this.maxValue = maxValue;
this.optimizationStep = optimizationStep;
}
public Number getMinValue() {
return minValue;
}
public Number getMaxValue() {
return maxValue;
}
public Number getOptimizationStep() {
return optimizationStep;
}
@Override
@JsonIgnore
public List<Number> getAvailableValues() {
List<Number> values = new ArrayList<>();
for (double i = minValue.doubleValue(); i <= maxValue.doubleValue(); i += optimizationStep.doubleValue()) {
values.add(i);
}
return values;
}
@Override
public String toString() {
return "TimeSeriesMethodParam{" +
"name='" + name + '\'' +
", minValue=" + minValue +
", maxValue=" + maxValue +
", delta=" + optimizationStep +
'}';
}
}