1.7 KiB
1.7 KiB
import dev.kreuzberg.IValidator;
import dev.kreuzberg.ExtractionConfig;
import dev.kreuzberg.ExtractionResult;
import dev.kreuzberg.ValidatorBridge;
// 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.
public class GenericValidator implements IValidator {
private final String pluginName;
private final int pluginPriority;
public GenericValidator(String pluginName, int pluginPriority) {
this.pluginName = pluginName;
this.pluginPriority = pluginPriority;
}
@Override
public String name() {
return pluginName;
}
@Override
public String version() {
return "1.0.0";
}
@Override
public void initialize() {
// Optional: open resources, load config files, etc.
}
@Override
public void shutdown() {
// Optional: release resources held in initialize().
}
@Override
public void validate(ExtractionResult result, ExtractionConfig config) throws Exception {
if (result.content() == null || result.content().isBlank()) {
throw new IllegalArgumentException("Extracted content is blank");
}
}
@Override
public boolean should_validate(ExtractionResult _result, ExtractionConfig _config) {
return true;
}
@Override
public int priority() {
return pluginPriority;
}
public static void registerGenericValidator() {
GenericValidator validator = new GenericValidator("non-empty-content", 200);
ValidatorBridge.registerValidator(validator);
}
}