@Override
 public List<T> createObjects(TypeElement type) {
   final List<T> result = new ArrayList<T>();
   if (type.getKind() == ElementKind.CLASS || type.getKind() == ElementKind.INTERFACE) {
     if (helper.hasAnyAnnotation(type.getAnnotationMirrors(), getAnnotationTypeNames())) {
       result.add(createObject(helper, type));
     }
   }
   return result;
 }
    @Override
    public List<T> createInitialObjects() throws InterruptedException {
      final List<T> result = new LinkedList<T>();
      for (String annotationName : getAnnotationTypeNames()) {
        helper
            .getAnnotationScanner()
            .findAnnotations(
                annotationName,
                EnumSet.of(ElementKind.CLASS),
                new AnnotationHandler() {

                  @Override
                  public void handleAnnotation(
                      TypeElement type, Element element, AnnotationMirror annotation) {
                    result.add(createObject(helper, type));
                  }
                });
      }
      return result;
    }