001package org.xbib.elasticsearch.plugin.websocket; 002 003import org.elasticsearch.common.collect.Lists; 004import org.elasticsearch.common.inject.AbstractModule; 005import org.elasticsearch.common.settings.Settings; 006import org.xbib.elasticsearch.rest.HttpPatchRestController; 007import org.xbib.elasticsearch.websocket.BaseInteractiveHandler; 008import org.xbib.elasticsearch.websocket.InteractiveActionModule; 009import org.xbib.elasticsearch.websocket.InteractiveController; 010 011import java.util.List; 012 013public class WebSocketModule extends AbstractModule { 014 015 private final Settings settings; 016 017 private List<Class<? extends BaseInteractiveHandler>> webSocketActions = Lists.newArrayList(); 018 019 public WebSocketModule(Settings settings) { 020 this.settings = settings; 021 } 022 023 public void addInteractiveAction(Class<? extends BaseInteractiveHandler> action) { 024 webSocketActions.add(action); 025 } 026 027 @Override 028 protected void configure() { 029 bind(InteractiveController.class).asEagerSingleton(); 030 new InteractiveActionModule(webSocketActions).configure(binder()); 031 bind(HttpPatchRestController.class).asEagerSingleton(); 032 } 033 034}