package com.github.aesteve.vertx.nubes.reflections; import com.github.aesteve.vertx.nubes.Config; import com.github.aesteve.vertx.nubes.annotations.sockjs.bridge.EventBusBridge; import com.github.aesteve.vertx.nubes.reflections.visitors.EventBusBridgeVisitor; import io.vertx.ext.web.Router; import org.reflections.Reflections; import java.util.Set; public class EventBusBridgeFactory implements HandlerFactory { private final Router router; private final Config config; public EventBusBridgeFactory(Router router, Config config) { this.router = router; this.config = config; } @Override public void createHandlers() { config.forEachControllerPackage(controllerPackage -> { Reflections reflections = new Reflections(controllerPackage); Set<Class<?>> controllers = reflections.getTypesAnnotatedWith(EventBusBridge.class); controllers.forEach(this::createSocketHandlers); }); } private void createSocketHandlers(Class<?> controller) { EventBusBridgeVisitor<?> visitor = new EventBusBridgeVisitor<>(controller, config, router); visitor.visit(); } }