org.checkerframework.checker.units.UnitsTools Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of checker-qual7 Show documentation
Show all versions of checker-qual7 Show documentation
Checker Qual is the set of annotations (qualifiers) and supporting classes
used by the Checker Framework to type check Java source code. Please
see artifact:
org.checkerframework:checker
package org.checkerframework.checker.units;
import org.checkerframework.checker.units.qual.A;
import org.checkerframework.checker.units.qual.C;
import org.checkerframework.checker.units.qual.K;
import org.checkerframework.checker.units.qual.cd;
import org.checkerframework.checker.units.qual.degrees;
import org.checkerframework.checker.units.qual.g;
import org.checkerframework.checker.units.qual.h;
import org.checkerframework.checker.units.qual.kg;
import org.checkerframework.checker.units.qual.km;
import org.checkerframework.checker.units.qual.km2;
import org.checkerframework.checker.units.qual.kmPERh;
import org.checkerframework.checker.units.qual.m;
import org.checkerframework.checker.units.qual.m2;
import org.checkerframework.checker.units.qual.mPERs;
import org.checkerframework.checker.units.qual.mPERs2;
import org.checkerframework.checker.units.qual.min;
import org.checkerframework.checker.units.qual.mm;
import org.checkerframework.checker.units.qual.mm2;
import org.checkerframework.checker.units.qual.mol;
import org.checkerframework.checker.units.qual.radians;
import org.checkerframework.checker.units.qual.s;
/** Utility methods to generate annotated types and to convert between them. */
@SuppressWarnings("units")
// TODO: add fromTo methods for all useful unit combinations.
public class UnitsTools {
// Acceleration
public static final @mPERs2 int mPERs2 = 1;
// Angle
public static final @radians double rad = 1;
public static final @degrees double deg = 1;
public static @radians double toRadians(@degrees double angdeg) {
return Math.toRadians(angdeg);
}
public static @degrees double toDegrees(@radians double angrad) {
return Math.toDegrees(angrad);
}
// Area
public static final @mm2 int mm2 = 1;
public static final @m2 int m2 = 1;
public static final @km2 int km2 = 1;
// Current
public static final @A int A = 1;
// Luminance
public static final @cd int cd = 1;
// Lengths
public static final @mm int mm = 1;
public static final @m int m = 1;
public static final @km int km = 1;
public static @m int fromMilliMeterToMeter(@mm int mm) {
return mm / 1000;
}
public static @mm int fromMeterToMilliMeter(@m int m) {
return m * 1000;
}
public static @km int fromMeterToKiloMeter(@m int m) {
return m / 1000;
}
public static @m int fromKiloMeterToMeter(@km int km) {
return km * 1000;
}
// Mass
public static final @g int g = 1;
public static final @kg int kg = 1;
public static @kg int fromGramToKiloGram(@g int g) {
return g / 1000;
}
public static @g int fromKiloGramToGram(@kg int kg) {
return kg * 1000;
}
// Speed
public static final @mPERs int mPERs = 1;
public static final @kmPERh int kmPERh = 1;
public static @kmPERh double fromMeterPerSecondToKiloMeterPerHour(@mPERs double mps) {
return mps * 3.6d;
}
public static @mPERs double fromKiloMeterPerHourToMeterPerSecond(@kmPERh double kmph) {
return kmph / 3.6d;
}
// Substance
public static final @mol int mol = 1;
// Temperature
public static final @K int K = 1;
public static final @C int C = 1;
public static @C int fromKelvinToCelsius(@K int k) {
return k - (int) 273.15;
}
public static @K int fromCelsiusToKelvin(@C int c) {
return c + (int) 273.15;
}
// Time
public static final @s int s = 1;
public static final @min int min = 1;
public static final @h int h = 1;
public static @min int fromSecondToMinute(@s int s) {
return s / 60;
}
public static @s int fromMinuteToSecond(@min int min) {
return min * 60;
}
public static @h int fromMinuteToHour(@min int min) {
return min / 60;
}
public static @min int fromHourToMinute(@h int h) {
return h * 60;
}
}