/** * Copyright (C) 2021 Adrien Hopkins * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package sevenUnitsGUI; import java.util.function.Function; import sevenUnits.utils.UncertainDouble; /** * The default rules for displaying numbers. * * Unless otherwise stated, all of this class's functions throw * {@link NullPointerException} when they receive a null parameter. * * @since 2021-12-24 */ final class StandardDisplayRules { /** * Rounds using UncertainDouble's toString method. */ private static final Function SCIENTIFIC_ROUNDING_RULE = new Function<>() { @Override public String apply(UncertainDouble t) { return t.toString(false); } @Override public String toString() { return "Scientific Rounding"; } }; /** * Gets a display rule that rounds numbers to a fixed number of decimal * places. * * @param decimalPlaces number of decimal places * @return display rule * @since 2022-04-16 */ public static final Function getFixedPlacesRule( int decimalPlaces) { throw new UnsupportedOperationException("Not implemented yet"); } /** * Gets a display rule that rounds numbers to a fixed number of significant * figures. * * @param significantFigures number of significant figures * @return display rule * @since 2022-04-16 */ public static final Function getFixedPrecisionRule( int significantFigures) { throw new UnsupportedOperationException("Not implemented yet"); } /** * @return a rule that rounds using UncertainDouble's own toString(false) * function. * @since 2021-12-24 */ public static final Function getScientificRule() { return SCIENTIFIC_ROUNDING_RULE; } /** * Gets one of the standard rules from its string representation. * * @param ruleToString string representation of the display rule * @return display rule * @throws IllegalArgumentException if the provided string is not that of a * standard rule. * @since 2021-12-24 */ public static final Function getStandardRule( String ruleToString) { throw new UnsupportedOperationException("Not implemented yet"); } private StandardDisplayRules() { throw new AssertionError( "This is a static utility class, you may not get instances of it."); } }