All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.anrisoftware.globalpom.measurement.Measure Maven / Gradle / Ivy

/*
 * Copyright 2016 Erwin Müller 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.anrisoftware.globalpom.measurement;

import java.math.BigInteger;

import javax.measure.quantity.Quantity;
import javax.measure.unit.Unit;

/**
 * Defines a measurement with a physical unit.
 *
 * @param 
 *            the {@link Quantity} of the unit.
 *
 * @author Erwin Mueller, [email protected]
 * @since 2.4
 */
public interface Measure extends Value {

    /**
     * Returns the unit of the gauge.
     *
     * @return the {@link Unit}.
     */
    Unit getUnit();

    /**
     * Returns the measured value.
     *
     * @return the {@link Value}.
     */
    Value getMeasureValue();

    @Override
    Measure valueOf(BigInteger mantissa, int order, int sig, int dec,
            double unc);

    @Override
    Measure valueOf(double value, int sig, int dec, double unc);

    @Override
    Measure valueOf(double value, int dec, double unc);

    @Override
    Measure getMinValue();

    @Override
    Measure minValue(double deviation);

    @Override
    Measure getMaxValue();

    @Override
    Measure maxValue(double deviation);

    @Override
    Measure add(Value addend);

    @Override
    Measure add(double addend);

    @Override
    Measure plus(Value addend);

    @Override
    Measure plus(double addend);

    @Override
    Measure sub(Value subtrahend);

    @Override
    Measure sub(double subtrahend);

    @Override
    Measure minus(Value subtrahend);

    @Override
    Measure minus(double subtrahend);

    @Override
    Measure mul(Value factor);

    @Override
    Measure mul(double factor);

    @Override
    Measure multiply(Value factor);

    @Override
    Measure multiply(double factor);

    @Override
    Measure div(Value divisor);

    @Override
    Measure div(double divisor);

    @Override
    Measure divNum(Value numerator);

    @Override
    Measure divNum(double numerator);

    @Override
    Measure reciprocal();

    @Override
    Measure log();

    @Override
    Measure exp();

    @Override
    Measure abs();

    @Override
    Measure square();

    @Override
    Measure cube();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy