code: /*
  WhitespaceAround
  allowEmptyConstructors = (default)false
  allowEmptyMethods = (default)false
  allowEmptyTypes = (default)false
  allowEmptyLoops = (default)false
  allowEmptyLambdas = (default)false
  allowEmptyCatches = (default)false
  ignoreEnhancedForColon = (default)true
  tokens = (default)ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, \
           BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND, \
           LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, \
           LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, \
           LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, \
           NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, \
           SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND
  
  
  */
  
  package com.puppycrawl.tools.checkstyle.checks.whitespace.whitespacearound;
  
  import java.util.Collection;
  import java.util.Map;
  
  public class InputWhitespaceAroundGenerics<A, B extends Collection<?>,
      C extends D&E, F extends Collection<? extends InputWhitespaceAroundGenerics[]>> // 2 violations
  {
  }
  
  //No whitespace after commas
  class BadCommas < A,B,C extends Map < A,String > >
  {
      private java.util.Hashtable < Integer, D > p =
          new java.util.Hashtable < Integer, D > ();
  }
  
  class Wildcard
  {
      public static void foo(Collection < ? extends Wildcard[] > collection) {
          // A statement is important in this method to flush out any
          // issues with parsing the wildcard in the signature
          collection.size();
      }
  }
  
  // we need these interfaces for generics
  interface D {
  }
  interface E {
  }
  