![JAR search and dependency download from the Maven repository](/logo.png)
commonMain.com.harmony.kotlin.data.validator.vastra.ValidationService.kt Maven / Gradle / Ivy
package com.harmony.kotlin.data.validator.vastra
import com.harmony.kotlin.data.validator.vastra.strategies.ValidationStrategy
import com.harmony.kotlin.data.validator.vastra.strategies.ValidationStrategyEntity
import com.harmony.kotlin.data.validator.vastra.strategies.ValidationStrategyResult
interface ValidationService {
fun isValid(t: T?, strategies: List): Boolean {
if (t == null) {
return false
}
// Default value set to false;
var isValid = false
loop@ for (strategy in strategies) {
when (strategy.isValid(t)) {
ValidationStrategyResult.VALID -> {
isValid = true
break@loop
}
ValidationStrategyResult.INVALID -> {
isValid = false
break@loop
}
else -> { /*result is ValidationStrategyResult.UNKNOWN, lets iterate to next strategy */
}
}
}
return isValid
}
fun isValid(values: List, strategies: List): Boolean {
if (values.isEmpty()) {
return false
}
for (value in values) {
if (!isValid(value, strategies)) {
return false
}
}
return true
}
fun isValid(t: T?): Boolean
fun isValid(values: List): Boolean
}
class ValidationServiceManager(private val strategies: List) : ValidationService {
override fun isValid(values: List): Boolean {
if (values.isEmpty()) {
return false
}
for (value in values) {
if (!isValid(value)) {
return false
}
}
return true
}
override fun isValid(t: T?): Boolean {
return isValid(t, strategies)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy