/** * Copyright (C) 2018 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 unitConverter.unit; import unitConverter.dimension.UnitDimension; /** * A unit that is the base for its dimension. It does not have to be for a base dimension, so units like the Newton and * Joule are still base units. * * @author Adrien Hopkins * @since 2018-12-23 */ public final class BaseUnit extends AbstractUnit { /** * Is this unit a full base (i.e. m, s, ... but not N, J, ...) * * @since 2019-01-15 */ private final boolean isFullBase; /** * Creates the {@code BaseUnit}. * * @param dimension * dimension measured by unit * @param system * system that unit is a part of * @param name * name of unit * @param symbol * symbol of unit * @since 2018-12-23 */ BaseUnit(final UnitDimension dimension, final UnitSystem system) { super(dimension, system); this.isFullBase = dimension.isBase(); } @Override public double convertFromBase(final double value) { return value; } @Override public double convertToBase(final double value) { return value; } @Override public String toString() { return String.format("%s base unit of%s dimension %s", this.getSystem(), this.isFullBase ? " base" : "", this.getDimension()); } }