public static final List<String> check(Class<? extends Transformation>[] transformations){
  final List<String> errMsgs=new ArrayList<>();
  for (int idx=0; idx < transformations.length; idx++) {
    final Class<? extends Transformation> currT=transformations[idx];
    final Class<? extends Transformation>[] before=Arrays.copyOf(transformations,idx);
    final Class<? extends Transformation>[] after=Arrays.copyOfRange(transformations,idx + 1,transformations.length);
    for (    Annotation ann : currT.getAnnotations()) {
      final String errMsg=check(currT,ann,before,after);
      if (errMsg != null)       errMsgs.add(errMsg);
    }
  }
  return errMsgs;
}

public static final List < String > check ( Class < ? extends Transformation > [ ] transformations ) { final List < String > errMsgs = new ArrayList < > ( ) ; for ( int idx = 0 ; idx < transformations . length ; idx ++ ) { final Class < ? extends Transformation > currT = transformations [ idx ] ; final Class < ? extends Transformation > [ ] before = Arrays . copyOf ( transformations , idx ) ; final Class < ? extends Transformation > [ ] after = Arrays . copyOfRange ( transformations , idx + 1 , transformations . length ) ; for ( Annotation ann : currT . getAnnotations ( ) ) { final String errMsg = check ( currT , ann , before , after ) ; if ( errMsg != null ) errMsgs . add ( errMsg ) ; } } return errMsgs ; }
checks all dependencies of the transformations in the given sequence of transformations .
