// Path: elastic-config-core/src/main/java/com/github/config/bus/event/EvenType.java
// @Getter
// public enum EvenType {
// 
//     /**
//      * 配置增加.
//      */
//     CONFIG_ADD,
// 
//     /**
//      * 配置更新.
//      */
//     CONFIG_UPDADTE,
// 
//     /**
//      * 配置删除.
//      */
//     CONFIG_DELETE,
// 
//     /**
//      * 文件修改.
//      */
//     FILE_MODIFY
// }


import java.nio.file.StandardWatchEventKinds;
import java.util.Map;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent.Type;
import com.github.config.bus.event.EvenType;
import com.google.common.collect.Maps;
package com.github.config.listener;




/**
 * 注册中心的监听器管理者抽象类.
 * 
 * @author ZhangWei
 */
public abstract class AbstractListenerManager {

    protected final Map<Object, EvenType> eventMap = Maps.newHashMap();

    {
        eventMap.put(Type.NODE_ADDED, EvenType.CONFIG_ADD);
        eventMap.put(Type.NODE_UPDATED, EvenType.CONFIG_UPDADTE);
        eventMap.put(Type.NODE_REMOVED, EvenType.CONFIG_DELETE);
        eventMap.put(StandardWatchEventKinds.ENTRY_MODIFY, EvenType.CONFIG_DELETE);
    }

    /**
     * 开启监听器.
     */
// Path: elastic-config-core/src/main/java/com/github/config/bus/event/EvenType.java
// @Getter
// public enum EvenType {
// 
//     /**
//      * 配置增加.
//      */
//     CONFIG_ADD,
// 
//     /**
//      * 配置更新.
//      */
//     CONFIG_UPDADTE,
// 
//     /**
//      * 配置删除.
//      */
//     CONFIG_DELETE,
// 
//     /**
//      * 文件修改.
//      */
//     FILE_MODIFY
// }


// Path: elastic-config-core/src/main/java/com/github/config/listener/AbstractListenerManager.java
import java.nio.file.StandardWatchEventKinds;
import java.util.Map;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent.Type;
import com.github.config.bus.event.EvenType;
import com.google.common.collect.Maps;

package com.github.config.listener;




/**
 * 注册中心的监听器管理者抽象类.
 * 
 * @author ZhangWei
 */
public abstract class AbstractListenerManager {

    protected final Map<Object, EvenType> eventMap = Maps.newHashMap();

    {
        eventMap.put(Type.NODE_ADDED, EvenType.CONFIG_ADD);
        eventMap.put(Type.NODE_UPDATED, EvenType.CONFIG_UPDADTE);
        eventMap.put(Type.NODE_REMOVED, EvenType.CONFIG_DELETE);
        eventMap.put(StandardWatchEventKinds.ENTRY_MODIFY, EvenType.CONFIG_DELETE);
    }

    /**
     * 开启监听器.
     */
    protected abstract void start();