
graphql.nadel.enginekt.transform.result.json.JsonNodePath.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nadel-engine-nextgen Show documentation
Show all versions of nadel-engine-nextgen Show documentation
Nadel is a Java library that combines multiple GrahpQL services together into one API.
The newest version!
package graphql.nadel.enginekt.transform.result.json
typealias AnyJsonNodePathSegment = JsonNodePathSegment<*>
data class JsonNodePath(
val segments: List,
) {
operator fun plus(segment: String): JsonNodePath {
return copy(segments = segments + JsonNodePathSegment.String(segment))
}
operator fun plus(segment: Int): JsonNodePath {
return copy(segments = segments + JsonNodePathSegment.Int(segment))
}
operator fun plus(other: JsonNodePath): JsonNodePath {
return copy(segments = segments + other.segments)
}
operator fun plus(other: AnyJsonNodePathSegment): JsonNodePath {
return copy(segments = segments + other)
}
fun dropLast(n: Int): JsonNodePath {
return copy(
segments = segments.subList(0, segments.size - n),
)
}
companion object {
val root = JsonNodePath(segments = emptyList())
}
}
sealed class JsonNodePathSegment {
abstract val value: T
data class Int(override val value: kotlin.Int) : JsonNodePathSegment()
data class String(override val value: kotlin.String) : JsonNodePathSegment()
override fun toString(): kotlin.String {
return "$value"
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy