3.5.5. Validator Composite

Ein Validator Composite ist ein IValidator, welche mehrere IValidator verwendet, um seine validate() Methode zu implementieren. Die statische Accessor Klasss ValidatorComposite liefert folgende Methoden zur Erzeugung eines Validator Composite:

    public static <VALUE_TYPE> IValidator<VALUE_TYPE> create(
        final IValidator<VALUE_TYPE> validator1,
        final IValidator<VALUE_TYPE> validator2) {...}
        
    public static <VALUE_TYPE> IValidatorCompositeBuilder<VALUE_TYPE> builder() {...}

Die erste Methode erzeugt aus zwei Validatoren einen neuen IValidator. Dabei können sowohl validator1 als auch validator2 als auch beide null sein. Der resultierende Validator fügt die Validation Results beider Validatoren zu einem neuen Validation Result zusammen. Ist ein Parameter (validator1, validator2) null wird stellvertretend ein OkValidator verwendet.

Die Methode builder() liefert ein IValidatorCompositeBuilder. Dieser hat die folgenden Methoden:

    IValidatorCompositeBuilder<VALUE_TYPE> add(IValidator<VALUE_TYPE> validator);

    IValidatorCompositeBuilder<VALUE_TYPE> addAll(Iterable<? extends IValidator<VALUE_TYPE>> validators);

    IValidator<VALUE_TYPE> build();

Die Methode add() fügt einen einzelen Validator hinzu, die Methode addAll() eine Liste von Validatoren. Die Methode build() erzeugt einen neuen Composite Validator. Das folgende Beispiel demonstriert die Verwendung:

  1      final IValidatorCompositeBuilder<Person> builder = ValidatorComposite.builder();
  2      builder
  3          .add(notNullValidator)
  4          .add(adultValidator)
  5          .add(maleValidator);
  6          
  7      IValidator<Person> maleAdultPersonValidator = builder.build();

Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation