
net.intelie.liverig.plugin.curves.Curve Maven / Gradle / Ivy
The newest version!
package net.intelie.liverig.plugin.curves;
import com.google.common.base.Strings;
import net.intelie.live.LiveJson;
import java.util.Map;
public class Curve {
public static final Double DEFAULT_PRECISION = 0.0;
private final String unit, color, description, quantityType;
private final Double minimum, maximum;
private final Double precision;
private final Integer order;
public Curve(String unit, String quantityType, String color, String description, Double minimum, Double maximum, Double precision, Integer order) {
this.unit = Strings.nullToEmpty(unit);
this.quantityType = Strings.emptyToNull(quantityType);
this.color = color;
this.description = Strings.nullToEmpty(description);
this.minimum = minimum;
this.maximum = maximum;
this.order = order;
this.precision = precision != null && precision < 0.0 ? DEFAULT_PRECISION : precision;
}
public Curve(String unit, String quantityType, String color, String description, Double minimum, Double maximum) {
this(unit, quantityType, color, description, minimum, maximum, null, null);
}
public Curve(String unit, String color, String description, Double minimum, Double maximum) {
this(unit, null, color, description, minimum, maximum, null, null);
}
public String unit() {
return unit;
}
public String quantityType() {
return quantityType;
}
public String color() {
return color;
}
public String description() {
return description;
}
public Double minimum() {
return minimum;
}
public Double maximum() {
return maximum;
}
public Double precision() {
return precision;
}
public boolean isValid() {
return !description.isEmpty();
}
public Integer order() {
return order;
}
@Override
public String toString() {
return LiveJson.toJson(this);
}
public static Curve loadFromMap(Map, ?> valueMap) {
if (valueMap == null)
return null;
return new Curve(getString(valueMap, "unit"), getString(valueMap, "quantityType"), getString(valueMap, "color"), getString(valueMap, "description"),
getDouble(valueMap, "minimum"), getDouble(valueMap, "maximum"), getDouble(valueMap, "precision"), getInteger(valueMap, "order"));
}
private static String getString(Map, ?> map, String key) {
Object value = map.get(key);
if (value instanceof String)
return (String) value;
return null;
}
private static Double getDouble(Map, ?> map, String key) {
Object value = map.get(key);
if (value instanceof Double)
return (Double) value;
else if (value instanceof Number)
return ((Number) value).doubleValue();
return null;
}
private static Integer getInteger(Map, ?> map, String key) {
Object value = map.get(key);
if (value instanceof Integer)
return (Integer) value;
else if (value instanceof Number)
return ((Number) value).intValue();
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy