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();
}