Home | History | Annotate | Download | only in validator
      1 package com.github.javaparser.ast.validator;
      2 
      3 import com.github.javaparser.ast.Node;
      4 
      5 /**
      6  * Runs a validator on all nodes of a certain type.
      7  */
      8 public class SingleNodeTypeValidator<N extends Node> implements Validator {
      9     private final Class<N> type;
     10     private final TypedValidator<N> validator;
     11 
     12     public SingleNodeTypeValidator(Class<N> type, TypedValidator<N> validator) {
     13         this.type = type;
     14         this.validator = validator;
     15     }
     16 
     17     @Override
     18     public void accept(Node node, ProblemReporter problemReporter) {
     19         if (type.isInstance(node)) {
     20             validator.accept(type.cast(node), problemReporter);
     21         }
     22         node.findAll(type).forEach(n -> validator.accept(n, problemReporter));
     23     }
     24 }
     25