001package org.xbib.elasticsearch.action.websocket.pubsub;
002
003import org.elasticsearch.common.inject.BindingAnnotation;
004import org.elasticsearch.common.settings.Settings;
005
006import java.lang.annotation.Documented;
007import java.lang.annotation.Retention;
008import java.lang.annotation.Target;
009
010import static java.lang.annotation.ElementType.FIELD;
011import static java.lang.annotation.ElementType.PARAMETER;
012import static java.lang.annotation.RetentionPolicy.RUNTIME;
013
014/**
015 * Configuration for the pubsub index name.
016 */
017@BindingAnnotation
018@Target({FIELD, PARAMETER})
019@Retention(RUNTIME)
020@Documented
021public @interface PubSubIndexName {
022
023    static class Conf {
024        public static final String DEFAULT_INDEX_NAME = "pubsub";
025
026        public static String indexName(Settings settings) {
027            return settings.get("pubsub.index_name", DEFAULT_INDEX_NAME);
028        }
029    }
030}