Metamodel

sealed class Metamodel<T>

Metalastic Metamodel types Hierarchy

Sealed class for all metamodel types in the DSL. Provides path traversal functionality for nested field access. Using sealed class ensures exhaustive pattern matching and type safety.

sealed class Metamodel<T>
├── sealed class Field<T> : Metamodel<T>
│ ├── class AliasField<T> : Field<T>
│ ├── class AnnotatedTextField<T> : Field<T>
│ ├── class AutoField<T> : Field<T>
│ ├── class BinaryField<T> : Field<T>
│ ├── class BooleanField<T> : Field<T>
│ ├── class ByteField<T> : Field<T>
│ ├── class CompletionField<T> : Field<T>
│ ├── class ConstantKeywordField<T> : Field<T>
│ ├── class DateField<T> : Field<T>
│ ├── class DateNanosField<T> : Field<T>
│ ├── class DateRangeField<T> : Field<T>
│ ├── class DenseVectorField<T> : Field<T>
│ ├── class DoubleField<T> : Field<T>
│ ├── class DoubleRangeField<T> : Field<T>
│ ├── class FlattenedField<T> : Field<T>
│ ├── class FloatField<T> : Field<T>
│ ├── class FloatRangeField<T> : Field<T>
│ ├── class HalfFloatField<T> : Field<T>
│ ├── class IntegerField<T> : Field<T>
│ ├── class IntegerRangeField<T> : Field<T>
│ ├── class IpField<T> : Field<T>
│ ├── class IpRangeField<T> : Field<T>
│ ├── class KeywordField<T> : Field<T>
│ ├── class LongField<T> : Field<T>
│ ├── class LongRangeField<T> : Field<T>
│ ├── class MatchOnlyTextField<T> : Field<T>
│ ├── class Murmur3Field<T> : Field<T>
│ ├── class PercolatorField<T> : Field<T>
│ ├── class PointField<T> : Field<T>
│ ├── class RankFeatureField<T> : Field<T>
│ ├── class RankFeaturesField<T> : Field<T>
│ ├── class ScaledFloatField<T> : Field<T>
│ ├── class SearchAsYouTypeField<T> : Field<T>
│ ├── class ShapeField<T> : Field<T>
│ ├── class ShortField<T> : Field<T>
│ ├── class TextField<T> : Field<T>
│ ├── class TokenCountField<T> : Field<T>
│ ├── class VersionField<T> : Field<T>
│ └── class WildcardField<T> : Field<T>

└── abstract class Container<T> : Metamodel<T>
├── abstract class MultiField<T, M> : Container<T>
└── abstract class ObjectField<T> : Container<T>
└── abstract class Document<T> : ObjectField<T>

Type Parameters

T

type of property this metamodel represents

Inheritors

Functions

Link copied to clipboard
fun fieldClass(): KClass<out T & Any>?

Returns the KClass for this field's type, or null if the type is not a concrete class (e.g., if it's a type parameter or complex type intersection).

Link copied to clipboard

Returns the Kotlin KType carried by this field, as captured at generation time.

Link copied to clipboard

Returns true if any ancestor container is marked as nested in Elasticsearch.

Link copied to clipboard
fun name(): String

Returns the local Elasticsearch field name, without any parent path segments.

Link copied to clipboard

Returns the paths of the ancestor containers that are marked as nested, closest first.

Link copied to clipboard
abstract fun parent(): Container<*>?

Returns the direct parent container in the metamodel hierarchy, or null for a root.

Link copied to clipboard

Returns the sequence of ancestor containers, starting with the direct parent.

Link copied to clipboard
fun path(): String

Returns the dot-separated Elasticsearch path of this field, built from its ancestor chain.