@Override protected boolean handleProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { debug("ServiceProviderAnnotationProcessor"); for (Element implClazz : roundEnv.getElementsAnnotatedWith(ServiceProvider.class)) { ServiceProvider provider = implClazz.getAnnotation(ServiceProvider.class); try { provider.service(); assert false; continue; } catch (MirroredTypeException e) { debug("Found provider: " + implClazz + " " + e.getTypeMirror()); // toString on Element results in same as class.getName() addLine(implClazz.toString(), getFilePath(e.getTypeMirror())); } } return false; }