Home | History | Annotate | Download | only in validator
      1 package com.github.javaparser.ast.validator;
      2 
      3 import com.github.javaparser.ast.Node;
      4 
      5 import java.util.ArrayList;
      6 import java.util.Arrays;
      7 import java.util.List;
      8 
      9 /**
     10  * A validator that will call a collection of validators.
     11  */
     12 public class Validators implements Validator {
     13     private final List<Validator> validators = new ArrayList<>();
     14 
     15     public Validators(Validator... validators) {
     16         this.validators.addAll(Arrays.asList(validators));
     17     }
     18 
     19     public List<Validator> getValidators() {
     20         return validators;
     21     }
     22 
     23     public Validators remove(Validator validator) {
     24         if (!validators.remove(validator)) {
     25             throw new AssertionError("Trying to remove a validator that isn't there.");
     26         }
     27         return this;
     28     }
     29 
     30     public Validators replace(Validator oldValidator, Validator newValidator) {
     31         remove(oldValidator);
     32         add(newValidator);
     33         return this;
     34     }
     35 
     36     public Validators add(Validator newValidator) {
     37         validators.add(newValidator);
     38         return this;
     39     }
     40 
     41     @Override
     42     public void accept(Node node, ProblemReporter problemReporter) {
     43         validators.forEach(v -> v.accept(node, problemReporter));
     44     }
     45 }
     46