package org.singinst.uf.model; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import org.singinst.uf.math.MathUtil; import org.singinst.uf.presenter.LineBounded; import org.singinst.uf.presenter.LineBounds; public class ScalarSchema implements SummarySource, LineBounded { private final String prefix; private final String suffix; private final Node node; private final String idString; private final LineBounds bounds; private final String unit; private final List conclusionReportGenerators = new ArrayList(); private boolean visibleAxis = true; private boolean visibleProperty = true; private final LineBounds boundsConstraint; public ScalarSchema(Node node, String idString, LineBounds bounds, String unit, String prefix, String suffix, LineBounds boundsConstraint, boolean visibleProperty) { this.node = node; this.idString = idString; this.bounds = bounds; this.unit = unit; this.prefix = prefix; this.suffix = suffix; this.boundsConstraint = boundsConstraint; this.visibleProperty = visibleProperty; } public String getPrefix() { return prefix; } public String getSuffix() { return suffix; } public String getKey() { return node.getIdString() + "." + idString; } @Override public String toString() { return getKey(); } public List getScalarValues() { return Collections.singletonList(getScalarValueHolder()); } public ScalarValueHolder getScalarValueHolder() { return ScalarValueHolder.findById(this); } public List getConclusionGenerators() { return conclusionReportGenerators; } public LineBounds getLineBounds() { return getBounds(); } public LineBounds getBounds() { return bounds; } public boolean isVisibleAxis() { return visibleAxis; } public boolean displayProperty() { return visibleProperty; } public void setVisibleAxis(boolean visibleAxis) { this.visibleAxis = visibleAxis; } public Collection getDependencies() { return node.getDependencies(); } public static int getMaxDecimalDigits() { return 4; } public String getUnit() { return unit; } public LineBounds getBoundsConstraint() { return boundsConstraint; } public Object monte() { return MathUtil.RANDOM.nextFloat() * 100 < getScalarValueHolder().getValue(); } }