This commit is contained in:
44
docs/snippets/kotlin/plugins/plugin_validator.md
Normal file
44
docs/snippets/kotlin/plugins/plugin_validator.md
Normal file
@@ -0,0 +1,44 @@
|
||||
```kotlin title="Kotlin"
|
||||
import dev.kreuzberg.*
|
||||
|
||||
// Generic validator pattern: every IValidator has the same shape.
|
||||
// `name()` keys the registry, `priority()` orders execution (higher = earlier),
|
||||
// `should_validate()` is a fast skip-check, and `validate()` throws on failure.
|
||||
class GenericValidator(
|
||||
private val pluginName: String,
|
||||
private val pluginPriority: Int,
|
||||
private val check: (ExtractionResult, ExtractionConfig) -> Unit,
|
||||
) : IValidator {
|
||||
override fun name(): String = pluginName
|
||||
override fun version(): String = "1.0.0"
|
||||
|
||||
override fun initialize() {
|
||||
// Optional: open resources, load config files, etc.
|
||||
}
|
||||
|
||||
override fun shutdown() {
|
||||
// Optional: release resources held in initialize().
|
||||
}
|
||||
|
||||
override fun validate(result: ExtractionResult, config: ExtractionConfig) {
|
||||
check(result, config)
|
||||
}
|
||||
|
||||
override fun should_validate(
|
||||
_result: ExtractionResult,
|
||||
_config: ExtractionConfig,
|
||||
): Boolean = true
|
||||
|
||||
override fun priority(): Int = pluginPriority
|
||||
}
|
||||
|
||||
fun registerGenericValidator() {
|
||||
val validator = GenericValidator(
|
||||
pluginName = "non-empty-content",
|
||||
pluginPriority = 200,
|
||||
) { result, _ ->
|
||||
require(result.content().isNotBlank()) { "Extracted content is blank" }
|
||||
}
|
||||
ValidatorBridge.registerValidator(validator)
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user