Skip to content

Commit

Permalink
chore(*) validate now returns the validated value(constrainedClass) t…
Browse files Browse the repository at this point in the history
…o allow monad comprehension with Validated - closes #14
  • Loading branch information
Richard Capraro committed Apr 19, 2021
1 parent d81a6fc commit 9361228
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
7 changes: 3 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ plugins {
}

group = "com.capraro"
version = "1.6.1"
java.sourceCompatibility = JavaVersion.VERSION_11
version = "1.6.2"

repositories {
mavenCentral()
Expand All @@ -40,13 +39,13 @@ dependencies {
implementation("io.arrow-kt:arrow-validation:$arrowVersion")
testImplementation(platform("org.junit:junit-bom:$junitJupiterVersion"))
testImplementation("org.junit.jupiter:junit-jupiter")
testCompile("org.assertj:assertj-core:$assertJVersion")
testImplementation("org.assertj:assertj-core:$assertJVersion")
}

tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "11"
jvmTarget = "1.8"
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/com/capraro/kalidation/spec/Validation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import kotlin.reflect.jvm.javaMethod
data class ValidationSpec(val constraints: MutableList<ClassConstraint<out Any>> = mutableListOf()) {
internal lateinit var validator: Validator

fun validate(constrainedClass: Any): Validated<Set<ValidationResult>, Boolean> {
fun <T> validate(constrainedClass: T): Validated<Set<ValidationResult>, T> where T : Any {

val validationResult = validator.validate(constrainedClass).toMutableSet()

Expand Down Expand Up @@ -96,13 +96,13 @@ data class ValidationSpec(val constraints: MutableList<ClassConstraint<out Any>>
.toSet()

return if (validationSet.isEmpty()) {
Valid(true)
Valid(constrainedClass)
} else {
Invalid(validationSet)
}
}

private fun buildFieldName(violation: ConstraintViolation<Any>, aliases: Map<Pair<Any, String>, String>): String {
private fun <T> buildFieldName(violation: ConstraintViolation<T>, aliases: Map<Pair<Any, String>, String>): String {
return aliases[violation.rootBeanClass.name to violation.propertyPath.toString().substringBefore(".")]
?: violation.propertyPath.joinToString(".") { it.name }
}
Expand Down

0 comments on commit 9361228

Please sign in to comment.