Processor { public Set<Class<? extends Annotation>> annotations() { if (annotations == null) { annotations = parsers.stream().collect(flatMapping((resolver) -> resolver.annotations().stream(), toSet())); } return annotations; } Processor(Environment<T> environment, PluginParser<T> parser);  Processor(Environment<T> environment, List<Parser<T>> parsers); static ClassLoader loader(List<String> classpaths); void run(); Set<Class<? extends Annotation>> annotations();  }
@Test void annotations() { var annotations = processor.annotations(); assertNotNull(processor.annotations); assertEquals( Set.of( API.class, Command.class, Commands.class, Information.class, Load.class, Permission.class, Permissions.class, Plugin.class ), annotations ); }