package org.singinst.uf.model; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.singinst.uf.presenter.HtmlUtil; import org.singinst.uf.presenter.LineBounds; import org.singinst.uf.presenter.SimpleStyle; public abstract class YearExtremeNodeMetadataContentsFactory { private final List scalarSchemata = new ArrayList(); private final Map scalarMap = new HashMap(); private final double year; protected YearExtremeNodeMetadataContentsFactory(Node node, LineBounds rangeBounds, double year, String subPrefix, String units, String adjSmall, String adjLarge) { this.year = year; for (NotablePercentile percentile : NotablePercentile.values()) { SimpleStyle style = new SimpleStyle(percentile.getColor()); ScalarSchema scalarSchema = new ScalarSchema( node, ScalarSubIDString.yearPercentileID(year, percentile.getValue()), //"y" + year + "k" + percentile.getValue(), rangeBounds, units, HtmlUtil.style(style, percentile.getText(adjSmall, adjLarge) + subPrefix + ": "), //"y" + year + "k" + percentile.getValue(), "", null, true); ScalarValueHolder scalarValueHolder = scalarSchema.getScalarValueHolder(); scalarValueHolder.setValue(scalarValueHolder.getValue() + percentile.getOffset() / 2); getScalars().add(scalarSchema); scalarMap.put(percentile, scalarSchema); } new NormalConstraint(scalarSchemata, -50).constrain(); } public List getScalars() { return scalarSchemata; } public ScalarSchema getScalarSchema(NotablePercentile percentile) { return scalarMap.get(percentile); } public double getYear() { return year; } public final String getYearString() { return "" + (int) year; } public abstract ConclusionReportGenerator getConclusionGenerator(); }