Skip to content

Commit 850f362

Browse files
Add nested validator APIs and clean or improve other APIs
1 parent a7905b7 commit 850f362

19 files changed

+1089
-389
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
### Added
66

7+
- `invalidIfIsBlank` to Validate APIs
8+
- Validate APIs support specifying a generic error
9+
- Nested validator: `validator(fooValidator, foo)`
10+
- Nested validator: `foo.validatedBy(fooValidator)`
11+
- Nested validator: `fooValidator.validatorFor(foo)`
12+
713
### Changed
814

915
### Deprecated
@@ -12,6 +18,7 @@
1218

1319
### Removed
1420

21+
- `ValidatableList` APIs
1522
- `Graph::toGraph` function
1623
- `Graph::circularVertexes` to be `Map<T, List<Edge<T>>>`
1724

kotlin-stdlib/api/android/kotlin-stdlib.api

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -482,37 +482,31 @@ public final class com/javiersc/kotlin/stdlib/tree/TreeNodeIterators : java/lang
482482
}
483483

484484
public final class com/javiersc/kotlin/stdlib/validate/Validator {
485-
public static final field Companion Lcom/javiersc/kotlin/stdlib/validate/Validator$Companion;
486-
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V
485+
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/Unit;)V
487486
public final fun getBlock ()Lkotlin/jvm/functions/Function2;
488487
public final fun getName ()Ljava/lang/String;
489-
}
490-
491-
public final class com/javiersc/kotlin/stdlib/validate/Validator$Companion {
492-
}
493-
494-
public final class com/javiersc/kotlin/stdlib/validate/ValidatorKt {
495-
public static final field EmptyProperty Ljava/lang/String;
496-
public static final field InvalidProperty Ljava/lang/String;
497-
public static final field MultipleEmptyProperties Ljava/lang/String;
498-
public static final field MultipleInvalidProperties Ljava/lang/String;
488+
public final fun validate (Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/Either;
499489
}
500490

501491
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope {
502492
public fun <init> ()V
503493
public fun <init> (Ljava/util/List;)V
504494
public synthetic fun <init> (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
505-
public final fun and (Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;
506-
public final fun and (Ljava/lang/Object;Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;
507495
public final fun getValidatables ()Ljava/util/List;
508496
public final fun invalid (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
509-
public final fun invalidIf (Lkotlin/jvm/functions/Function0;)V
497+
public final fun invalidIf (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
498+
public final fun invalidIfIsBlank (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
510499
public final fun invalidIfIsEmpty (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
511-
public static synthetic fun invalidIfIsEmpty$default (Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
512500
public final fun invoke (Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
513501
public final fun valid (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
514-
public final fun validIf (Lkotlin/jvm/functions/Function0;)V
515-
public final fun validationOf ([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
502+
public final fun validIf (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
503+
public final fun validatedBy (Ljava/lang/Object;Lcom/javiersc/kotlin/stdlib/validate/Validator;)V
504+
public final fun validator (Lcom/javiersc/kotlin/stdlib/validate/Validator;Ljava/lang/Object;)V
505+
public final fun validatorFor (Lcom/javiersc/kotlin/stdlib/validate/Validator;Ljava/lang/Object;)V
506+
}
507+
508+
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$NestedScope {
509+
public fun <init> (Lcom/javiersc/kotlin/stdlib/validate/Validator;)V
516510
}
517511

518512
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$Validatable {
@@ -528,39 +522,3 @@ public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$Validatabl
528522
public fun toString ()Ljava/lang/String;
529523
}
530524

531-
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList : java/util/List, kotlin/jvm/internal/markers/KMappedMarker {
532-
public fun <init> (Ljava/util/List;)V
533-
public fun add (ILjava/lang/Object;)V
534-
public fun add (Ljava/lang/Object;)Z
535-
public fun addAll (ILjava/util/Collection;)Z
536-
public fun addAll (Ljava/util/Collection;)Z
537-
public fun addFirst (Ljava/lang/Object;)V
538-
public fun addLast (Ljava/lang/Object;)V
539-
public fun clear ()V
540-
public fun contains (Ljava/lang/Object;)Z
541-
public fun containsAll (Ljava/util/Collection;)Z
542-
public fun get (I)Ljava/lang/Object;
543-
public fun getSize ()I
544-
public final fun getValues ()Ljava/util/List;
545-
public fun indexOf (Ljava/lang/Object;)I
546-
public final fun invoke (Lkotlin/jvm/functions/Function1;)V
547-
public fun isEmpty ()Z
548-
public fun iterator ()Ljava/util/Iterator;
549-
public fun lastIndexOf (Ljava/lang/Object;)I
550-
public fun listIterator ()Ljava/util/ListIterator;
551-
public fun listIterator (I)Ljava/util/ListIterator;
552-
public fun remove (I)Ljava/lang/Object;
553-
public fun remove (Ljava/lang/Object;)Z
554-
public fun removeAll (Ljava/util/Collection;)Z
555-
public fun removeFirst ()Ljava/lang/Object;
556-
public fun removeLast ()Ljava/lang/Object;
557-
public fun replaceAll (Ljava/util/function/UnaryOperator;)V
558-
public fun retainAll (Ljava/util/Collection;)Z
559-
public fun set (ILjava/lang/Object;)Ljava/lang/Object;
560-
public final fun size ()I
561-
public fun sort (Ljava/util/Comparator;)V
562-
public fun subList (II)Ljava/util/List;
563-
public fun toArray ()[Ljava/lang/Object;
564-
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
565-
}
566-

kotlin-stdlib/api/jvm/kotlin-stdlib.api

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -505,37 +505,31 @@ public final class com/javiersc/kotlin/stdlib/tree/TreeNodeIterators : java/lang
505505
}
506506

507507
public final class com/javiersc/kotlin/stdlib/validate/Validator {
508-
public static final field Companion Lcom/javiersc/kotlin/stdlib/validate/Validator$Companion;
509-
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V
508+
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/Unit;)V
510509
public final fun getBlock ()Lkotlin/jvm/functions/Function2;
511510
public final fun getName ()Ljava/lang/String;
512-
}
513-
514-
public final class com/javiersc/kotlin/stdlib/validate/Validator$Companion {
515-
}
516-
517-
public final class com/javiersc/kotlin/stdlib/validate/ValidatorKt {
518-
public static final field EmptyProperty Ljava/lang/String;
519-
public static final field InvalidProperty Ljava/lang/String;
520-
public static final field MultipleEmptyProperties Ljava/lang/String;
521-
public static final field MultipleInvalidProperties Ljava/lang/String;
511+
public final fun validate (Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/Either;
522512
}
523513

524514
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope {
525515
public fun <init> ()V
526516
public fun <init> (Ljava/util/List;)V
527517
public synthetic fun <init> (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
528-
public final fun and (Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;
529-
public final fun and (Ljava/lang/Object;Ljava/lang/Object;)Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList;
530518
public final fun getValidatables ()Ljava/util/List;
531519
public final fun invalid (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
532-
public final fun invalidIf (Lkotlin/jvm/functions/Function0;)V
520+
public final fun invalidIf (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
521+
public final fun invalidIfIsBlank (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
533522
public final fun invalidIfIsEmpty (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
534-
public static synthetic fun invalidIfIsEmpty$default (Lcom/javiersc/kotlin/stdlib/validate/ValidatorScope;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
535523
public final fun invoke (Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
536524
public final fun valid (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
537-
public final fun validIf (Lkotlin/jvm/functions/Function0;)V
538-
public final fun validationOf ([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
525+
public final fun validIf (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
526+
public final fun validatedBy (Ljava/lang/Object;Lcom/javiersc/kotlin/stdlib/validate/Validator;)V
527+
public final fun validator (Lcom/javiersc/kotlin/stdlib/validate/Validator;Ljava/lang/Object;)V
528+
public final fun validatorFor (Lcom/javiersc/kotlin/stdlib/validate/Validator;Ljava/lang/Object;)V
529+
}
530+
531+
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$NestedScope {
532+
public fun <init> (Lcom/javiersc/kotlin/stdlib/validate/Validator;)V
539533
}
540534

541535
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$Validatable {
@@ -551,39 +545,3 @@ public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$Validatabl
551545
public fun toString ()Ljava/lang/String;
552546
}
553547

554-
public final class com/javiersc/kotlin/stdlib/validate/ValidatorScope$ValidatableList : java/util/List, kotlin/jvm/internal/markers/KMappedMarker {
555-
public fun <init> (Ljava/util/List;)V
556-
public fun add (ILjava/lang/Object;)V
557-
public fun add (Ljava/lang/Object;)Z
558-
public fun addAll (ILjava/util/Collection;)Z
559-
public fun addAll (Ljava/util/Collection;)Z
560-
public fun addFirst (Ljava/lang/Object;)V
561-
public fun addLast (Ljava/lang/Object;)V
562-
public fun clear ()V
563-
public fun contains (Ljava/lang/Object;)Z
564-
public fun containsAll (Ljava/util/Collection;)Z
565-
public fun get (I)Ljava/lang/Object;
566-
public fun getSize ()I
567-
public final fun getValues ()Ljava/util/List;
568-
public fun indexOf (Ljava/lang/Object;)I
569-
public final fun invoke (Lkotlin/jvm/functions/Function1;)V
570-
public fun isEmpty ()Z
571-
public fun iterator ()Ljava/util/Iterator;
572-
public fun lastIndexOf (Ljava/lang/Object;)I
573-
public fun listIterator ()Ljava/util/ListIterator;
574-
public fun listIterator (I)Ljava/util/ListIterator;
575-
public fun remove (I)Ljava/lang/Object;
576-
public fun remove (Ljava/lang/Object;)Z
577-
public fun removeAll (Ljava/util/Collection;)Z
578-
public fun removeFirst ()Ljava/lang/Object;
579-
public fun removeLast ()Ljava/lang/Object;
580-
public fun replaceAll (Ljava/util/function/UnaryOperator;)V
581-
public fun retainAll (Ljava/util/Collection;)Z
582-
public fun set (ILjava/lang/Object;)Ljava/lang/Object;
583-
public final fun size ()I
584-
public fun sort (Ljava/util/Comparator;)V
585-
public fun subList (II)Ljava/util/List;
586-
public fun toArray ()[Ljava/lang/Object;
587-
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
588-
}
589-

0 commit comments

Comments
 (0)