Skip to content

Commit

Permalink
kotlin: Improve access of companions object fields/methods in Java
Browse files Browse the repository at this point in the history
  • Loading branch information
ebraminio committed Apr 12, 2022
1 parent 5052920 commit b06493f
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 6 deletions.
9 changes: 7 additions & 2 deletions generate/template/astronomy.kt
Original file line number Diff line number Diff line change
Expand Up @@ -473,13 +473,15 @@ class Time private constructor(
internal fun julianMillennia() = tt / DAYS_PER_MILLENNIUM

companion object {
@JvmStatic
private val origin = GregorianCalendar(TimeZoneUtc).also {
it.set(2000, 0, 1, 12, 0, 0)
it.set(Calendar.MILLISECOND, 0)
}.time

private const val MILLIS_PER_DAY = 24 * 3600 * 1000

@JvmStatic
private val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").also {
it.timeZone = TimeZoneUtc
}
Expand All @@ -498,6 +500,7 @@ class Time private constructor(
*
* @param tt The number of days after the J2000 epoch.
*/
@JvmStatic
fun fromTerrestrialTime(tt: Double): Time = Time(universalTime(tt), tt)
}
}
Expand Down Expand Up @@ -547,6 +550,7 @@ internal data class TerseVector(var x: Double, var y: Double, var z: Double) {
}

companion object {
@JvmStatic
fun zero() = TerseVector(0.0, 0.0, 0.0)
}
}
Expand Down Expand Up @@ -1004,7 +1008,8 @@ class RotationMatrix(
* This matrix can be the starting point for other operations,
* such as calling a series of [RotationMatrix.combine] or [RotationMatrix.pivot].
*/
fun identity() = RotationMatrix (
@JvmStatic
fun identity() = RotationMatrix(
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0
Expand Down Expand Up @@ -1989,7 +1994,7 @@ internal fun peakMoonShadow(searchCenterTime: Time): ShadowInfo {
val window = 0.03 // days before/after new moon to search for minimum shadow distance
val t1 = searchCenterTime.addDays(-window)
val t2 = searchCenterTime.addDays(+window)
val tx = search(moonShadowSlopeContext, t1, t2, 1.0) ?:
val tx = search(t1, t2, 1.0, moonShadowSlopeContext) ?:
throw InternalError("Failed to find Moon peak shadow event.")
return moonShadow(tx)
}
Expand Down
3 changes: 3 additions & 0 deletions source/kotlin/doc/-rotation-matrix/-companion/identity.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# identity

[jvm]\

@[JvmStatic](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-static/index.html)

fun [identity](identity.md)(): [RotationMatrix](../index.md)

Creates an identity rotation matrix.
Expand Down
2 changes: 1 addition & 1 deletion source/kotlin/doc/-rotation-matrix/-companion/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ object [Companion](index.md)

| Name | Summary |
|---|---|
| [identity](identity.md) | [jvm]<br>fun [identity](identity.md)(): [RotationMatrix](../index.md)<br>Creates an identity rotation matrix. |
| [identity](identity.md) | [jvm]<br>@[JvmStatic](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-static/index.html)<br>fun [identity](identity.md)(): [RotationMatrix](../index.md)<br>Creates an identity rotation matrix. |
3 changes: 3 additions & 0 deletions source/kotlin/doc/-time/-companion/from-terrestrial-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# fromTerrestrialTime

[jvm]\

@[JvmStatic](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-static/index.html)

fun [fromTerrestrialTime](from-terrestrial-time.md)(tt: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](../index.md)

Creates a Time object from a Terrestrial Time day value.
Expand Down
2 changes: 1 addition & 1 deletion source/kotlin/doc/-time/-companion/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ object [Companion](index.md)

| Name | Summary |
|---|---|
| [fromTerrestrialTime](from-terrestrial-time.md) | [jvm]<br>fun [fromTerrestrialTime](from-terrestrial-time.md)(tt: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](../index.md)<br>Creates a Time object from a Terrestrial Time day value. |
| [fromTerrestrialTime](from-terrestrial-time.md) | [jvm]<br>@[JvmStatic](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-static/index.html)<br>fun [fromTerrestrialTime](from-terrestrial-time.md)(tt: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](../index.md)<br>Creates a Time object from a Terrestrial Time day value. |
Original file line number Diff line number Diff line change
Expand Up @@ -473,13 +473,15 @@ class Time private constructor(
internal fun julianMillennia() = tt / DAYS_PER_MILLENNIUM

companion object {
@JvmStatic
private val origin = GregorianCalendar(TimeZoneUtc).also {
it.set(2000, 0, 1, 12, 0, 0)
it.set(Calendar.MILLISECOND, 0)
}.time

private const val MILLIS_PER_DAY = 24 * 3600 * 1000

@JvmStatic
private val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").also {
it.timeZone = TimeZoneUtc
}
Expand All @@ -498,6 +500,7 @@ class Time private constructor(
*
* @param tt The number of days after the J2000 epoch.
*/
@JvmStatic
fun fromTerrestrialTime(tt: Double): Time = Time(universalTime(tt), tt)
}
}
Expand Down Expand Up @@ -547,6 +550,7 @@ internal data class TerseVector(var x: Double, var y: Double, var z: Double) {
}

companion object {
@JvmStatic
fun zero() = TerseVector(0.0, 0.0, 0.0)
}
}
Expand Down Expand Up @@ -1004,7 +1008,8 @@ class RotationMatrix(
* This matrix can be the starting point for other operations,
* such as calling a series of [RotationMatrix.combine] or [RotationMatrix.pivot].
*/
fun identity() = RotationMatrix (
@JvmStatic
fun identity() = RotationMatrix(
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0
Expand Down Expand Up @@ -1989,7 +1994,7 @@ internal fun peakMoonShadow(searchCenterTime: Time): ShadowInfo {
val window = 0.03 // days before/after new moon to search for minimum shadow distance
val t1 = searchCenterTime.addDays(-window)
val t2 = searchCenterTime.addDays(+window)
val tx = search(moonShadowSlopeContext, t1, t2, 1.0) ?:
val tx = search(t1, t2, 1.0, moonShadowSlopeContext) ?:
throw InternalError("Failed to find Moon peak shadow event.")
return moonShadow(tx)
}
Expand Down

0 comments on commit b06493f

Please sign in to comment.