@Test
  public void forInteger() {
    assertAttribute("integer",
            "org.immutables.criteria.matcher.IntegerMatcher.Template<R>");
    assertAttribute("arrayInteger",
            "org.immutables.criteria.matcher.IterableMatcher.Template<R,org.immutables.criteria.matcher.IntegerMatcher.Template<R>,java.lang.Integer, int[]>");
    assertAttribute("arrayArrayInteger",
            "org.immutables.criteria.matcher.IterableMatcher.Template<R,org.immutables.criteria.matcher.IterableMatcher.Template<R,org.immutables.criteria.matcher.IntegerMatcher.Template<R>,java.lang.Integer, int[]>,java.lang.Integer[], int[][]>");
    assertAttribute("optionalInteger",
            "org.immutables.criteria.matcher.OptionalIntegerMatcher.Template<R,java.util.OptionalInt>");
    assertAttribute("optionalInteger2",
            "org.immutables.criteria.matcher.OptionalIntegerMatcher.Template<R,java.util.Optional<java.lang.Integer>>");
    assertAttribute("nullableInteger",
            "org.immutables.criteria.matcher.OptionalIntegerMatcher.Template<R,java.lang.Integer>");
  }
Scans all attributes using reflection and generates a matcher
criteria/common/test/org/immutables/criteria/processor/CriteriaModelProcessorTest.java