diff options
Diffstat (limited to 'src/unitConverter/unit/LinearUnit.java')
-rw-r--r-- | src/unitConverter/unit/LinearUnit.java | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/src/unitConverter/unit/LinearUnit.java b/src/unitConverter/unit/LinearUnit.java deleted file mode 100644 index b786b3b..0000000 --- a/src/unitConverter/unit/LinearUnit.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Copyright (C) 2019 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 <https://www.gnu.org/licenses/>. - */ -package unitConverter.unit; - -import java.util.Objects; - -import unitConverter.dimension.UnitDimension; - -/** - * A unit that is equal to a certain number multiplied by its base. - * - * @author Adrien Hopkins - * @since 2018-12-22 - * @since v0.1.0 - */ -public final class LinearUnit extends AbstractUnit { - /** - * The value of one of this unit in this unit's base unit - * - * @since 2018-12-22 - * @since v0.1.0 - */ - private final double conversionFactor; - - /** - * - * Creates the {@code LinearUnit}. - * - * @param base - * unit's base - * @param conversionFactor - * value of one of this unit in its base - * @since 2018-12-23 - * @since v0.1.0 - */ - LinearUnit(final BaseUnit base, final double conversionFactor) { - super(base); - this.conversionFactor = conversionFactor; - } - - /** - * Creates the {@code LinearUnit} as a base unit. - * - * @param dimension - * dimension measured by unit - * @param system - * system unit is part of - * @since 2019-01-25 - * @since v0.1.0 - */ - LinearUnit(final UnitDimension dimension, final UnitSystem system, final double conversionFactor) { - super(dimension, system); - this.conversionFactor = conversionFactor; - } - - @Override - public double convertFromBase(final double value) { - return value / this.getConversionFactor(); - } - - @Override - public double convertToBase(final double value) { - return value * this.getConversionFactor(); - } - - /** - * Divides this unit by a scalar. - * - * @param divisor - * scalar to divide by - * @return quotient - * @since 2018-12-23 - * @since v0.1.0 - */ - public LinearUnit dividedBy(final double divisor) { - return new LinearUnit(this.getBase(), this.getConversionFactor() / divisor); - } - - /** - * Divides this unit by another unit. - * - * @param other - * unit to divide by - * @return quotient of two units - * @throws NullPointerException - * if other is null - * @since 2018-12-22 - * @since v0.1.0 - */ - public LinearUnit dividedBy(final LinearUnit other) { - Objects.requireNonNull(other, "other must not be null"); - final BaseUnit base = this.getBase().dividedBy(other.getBase()); - return new LinearUnit(base, this.getConversionFactor() / other.getConversionFactor()); - } - - @Override - public boolean equals(final Object obj) { - if (!(obj instanceof LinearUnit)) - return false; - final LinearUnit other = (LinearUnit) obj; - return Objects.equals(this.getBase(), other.getBase()) - && Objects.equals(this.getConversionFactor(), other.getConversionFactor()); - } - - /** - * @return conversionFactor - * @since 2018-12-22 - * @since v0.1.0 - */ - public final double getConversionFactor() { - return this.conversionFactor; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = result * prime + this.getBase().hashCode(); - result = result * prime + Double.hashCode(this.getConversionFactor()); - return result; - } - - /** - * Multiplies this unit by a scalar. - * - * @param multiplier - * scalar to multiply by - * @return product - * @since 2018-12-23 - * @since v0.1.0 - */ - public LinearUnit times(final double multiplier) { - return new LinearUnit(this.getBase(), this.getConversionFactor() * multiplier); - } - - /** - * Multiplies this unit by another unit. - * - * @param other - * unit to multiply by= - * @return product of two units - * @throws NullPointerException - * if other is null - * @since 2018-12-22 - * @since v0.1.0 - */ - public LinearUnit times(final LinearUnit other) { - Objects.requireNonNull(other, "other must not be null"); - final BaseUnit base = this.getBase().times(other.getBase()); - return new LinearUnit(base, this.getConversionFactor() * other.getConversionFactor()); - } - - /** - * Returns this unit but to an exponent. - * - * @param exponent - * exponent to exponientate unit to - * @return exponientated unit - * @since 2019-01-15 - * @since v0.1.0 - */ - public LinearUnit toExponent(final int exponent) { - return new LinearUnit(this.getBase().toExponent(exponent), Math.pow(this.conversionFactor, exponent)); - } - - @Override - public String toString() { - return super.toString() + String.format(" (equal to %s * base)", this.getConversionFactor()); - } -} |