Skip to content

feat: add Validation convenience API and ofOrElse factory#27

Merged
JunggiKim merged 1 commit intomainfrom
feat/validation-convenience-api
Mar 17, 2026
Merged

feat: add Validation convenience API and ofOrElse factory#27
JunggiKim merged 1 commit intomainfrom
feat/validation-convenience-api

Conversation

@JunggiKim
Copy link
Copy Markdown
Owner

Summary

  • Add 8 default methods to Validation<E, A> for chainable, user-friendly error handling (getOrElse, getOrNull, toOptional, onValid, onInvalid, mapError, recover)
  • Add ofOrElse(value, defaultValue) static factory to all 115 refined types for one-line validation with raw-value fallback
  • Kotlin module: remove 3 extensions superseded by Java defaults, add getOrDefault() and toResult()
  • Update README Quick Start and add Usage Patterns section

Validation

  • ./gradlew clean check testJava8 jacocoTestReport pitest javadoc
  • JaCoCo 100% (Java + Kotlin, all counters)
  • PIT mutation 96% (1,824/1,892 killed)
  • Java 8 compatibility preserved

Checklist

  • public API or behavior changes are documented
  • changelog updated if release-facing
  • coverage gate still passes
  • Java 8 compatibility preserved

🤖 Generated with Claude Code

Add 8 default methods to Validation<E, A>:
- getOrElse(A), getOrElse(Function) — safe fallback extraction
- getOrNull(), toOptional() — nullable/Optional conversion
- onValid(Consumer), onInvalid(Consumer) — chainable side effects
- mapError(Function), recover(Function) — error transformation

Add ofOrElse(value, defaultValue) static factory to all 115 refined types
for one-line validation with raw-value fallback.

Kotlin module:
- Remove getOrNull(), onValid(), onInvalid() extensions (now Java defaults)
- Add getOrDefault(), toResult() Kotlin-specific extensions
- Add KDoc to all extension functions

Update README Quick Start and add Usage Patterns section.

JaCoCo 100% (Java + Kotlin), PIT 96%, Java 8 compatible.
@JunggiKim JunggiKim merged commit 5bf2480 into main Mar 17, 2026
3 checks passed
@JunggiKim JunggiKim deleted the feat/validation-convenience-api branch March 17, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant