package beast.core.parameter; import java.util.List; import beast.core.Description; import beast.core.Input; /** * @author Tim Vaughan <tgvaughan@gmail.com> */ @Description("State node describing a list of integer-valued parameters.") public class IntegerParameterList extends GeneralParameterList<Integer> { final public Input<Integer> lowerBoundInput = new Input<>("lower", "Lower bound on parameter values.", Integer.MIN_VALUE+1); final public Input<Integer> upperBoundInput = new Input<>("upper", "Upper bound on parameter values.", Integer.MAX_VALUE-1); @Override public void initAndValidate() { lowerBound = lowerBoundInput.get(); upperBound = upperBoundInput.get(); super.initAndValidate(); } @Override protected void readStateFromString(String[] boundsString, List<String[]> parameterValueStrings, List<Integer> keys) { lowerBound = Integer.parseInt(boundsString[0]); upperBound = Integer.parseInt(boundsString[1]); pList.clear(); for (int pidx=0; pidx<parameterValueStrings.size(); pidx++) { String [] pValueString = parameterValueStrings.get(pidx); QuietParameter param = new QuietParameter(); param.key = keys.get(pidx); for (int vidx=0; vidx<pValueString.length; vidx++) param.values[vidx] = Integer.parseInt(pValueString[vidx]); pList.add(param); } } }