Kotlin Module
Project Dependencies
To use the unit-api with Kotlin you can include the following dependencies to your pom.xml/build.gradle file:
implementation("com.raynigon.unit-api:unit-api-kotlin:3.0.8")
<dependency>
<groupId>com.raynigon.unit-api</groupId>
<artifactId>unit-api-kotlin</artifactId>
<version>3.0.8</version>
</dependency>
Operators
Kotlin allows custom operators. This Library provides the following operators for the Quantity class:
- Comparison (<,>,<=,>=,==,!=)
- Addition (+)
- Substraction (-)
- Multiplication (*)
- Division (/)
Examples
val small = Metre(3)
val large = Metre(4)
val comp = small < large // true
val x = Metre(3)
val y = Metre(4)
val result = x + y // "7m"
val x = Metre(3)
val y = Metre(4)
val result = y - x // "1m"
val x = Metre(3)
val y = Metre(4)
val result = x * y // "12m²"
kotlin val x = Metre(8)
val y = Metre(4)
val result = y / x // "2"
You can also multiply and divide with factors:
val x = Quantities.getQuantity(3, Units.METRE)
val y = 2.0 val result = x * y // "6m"
val x = Quantities.getQuantity(4, Units.METRE)
val y = 2.0 val result = x / y // "2m"
Geometry
To calculate the length of a hypothenuse in an right-angled triangle you can use the pythagoreanTheorem
function.
val a: Quantity<Length> = Metre(3)
val b: Quantity<Length> = Metre(4)
val c: Quantity<Length> = pythagoreanTheorem(a, b) // = 5m
Time Quantity
The Kotlin module allows to convert Time Quantities to Java Durations and the other way around. When the Extension methods are imported, a Time Quantity can be converted to a java duration.
val quantity: Quantity<Time> = Second(10)
val duration: Duration = quantity.toDuration()
Its also possible to create a Time Quantity from a java duration.
val duration: Duration = Duration.ofSeconds(10)
val quantity: Quantity<Time> = duration.toQuantity()