// Path: disconf-core/src/main/java/com/baidu/disconf/core/common/constants/DisConfigTypeEnum.java
// public enum DisConfigTypeEnum {
// 
//     FILE(0, "配置文件"), ITEM(1, "配置项");
// 
//     private int type = 0;
//     private String modelName = null;
// 
//     private DisConfigTypeEnum(int type, String modelName) {
//         this.type = type;
//         this.modelName = modelName;
//     }
// 
//     public static DisConfigTypeEnum getByType(int type) {
// 
//         int index = 0;
//         for (DisConfigTypeEnum disConfigTypeEnum : DisConfigTypeEnum.values()) {
// 
//             if (type == index) {
//                 return disConfigTypeEnum;
//             }
// 
//             index++;
//         }
// 
//         return null;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getModelName() {
//         return modelName;
//     }
// 
//     public void setModelName(String modelName) {
//         this.modelName = modelName;
//     }
// 
// }


import java.io.File;
import java.util.List;
import com.baidu.disconf.core.common.constants.DisConfigTypeEnum;
import com.baidu.disconf.web.service.config.bo.Config;
import com.baidu.disconf.web.service.config.form.ConfListForm;
import com.baidu.disconf.web.service.config.form.ConfNewItemForm;
import com.baidu.disconf.web.service.config.vo.ConfListVo;
import com.baidu.disconf.web.service.config.vo.MachineListVo;
import com.baidu.ub.common.db.DaoPageResult;
package com.baidu.disconf.web.service.config.service;



/**
 * @author liaoqiqi
 * @version 2014-6-16
 */
public interface ConfigMgr {

    /**
     * @param
     *
     * @return
     */
    List<String> getVersionListByAppEnv(Long appId, Long envId);

    /**
     * @return
     */
    DaoPageResult<ConfListVo> getConfigList(ConfListForm confListForm, boolean fetchZk, final boolean getErrorMessage);

    /**
     * @param configId
     *
     * @return
     */
    ConfListVo getConfVo(Long configId);

    /**
     * @param configId
     *
     * @return
     */
    MachineListVo getConfVoWithZk(Long configId);

    /**
     * @param configId
     *
     * @return
     */
    Config getConfigById(Long configId);

    /**
     * 更新 配置项/配置文件
     *
     * @param configId
     *
     * @return
     */
    String updateItemValue(Long configId, String value);

    /**
     * 获取config value
     *
     * @param configId
     *
     * @return
     */
    String getValue(Long configId);

    /**
     * 通知zk
     *
     * @param configId
     */
    void notifyZookeeper(Long configId);

    /**
     * 新建一个config
     *
     * @param confNewForm
     * @param disConfigTypeEnum
     */
// Path: disconf-core/src/main/java/com/baidu/disconf/core/common/constants/DisConfigTypeEnum.java
// public enum DisConfigTypeEnum {
// 
//     FILE(0, "配置文件"), ITEM(1, "配置项");
// 
//     private int type = 0;
//     private String modelName = null;
// 
//     private DisConfigTypeEnum(int type, String modelName) {
//         this.type = type;
//         this.modelName = modelName;
//     }
// 
//     public static DisConfigTypeEnum getByType(int type) {
// 
//         int index = 0;
//         for (DisConfigTypeEnum disConfigTypeEnum : DisConfigTypeEnum.values()) {
// 
//             if (type == index) {
//                 return disConfigTypeEnum;
//             }
// 
//             index++;
//         }
// 
//         return null;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getModelName() {
//         return modelName;
//     }
// 
//     public void setModelName(String modelName) {
//         this.modelName = modelName;
//     }
// 
// }


// Path: disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/ConfigMgr.java
import java.io.File;
import java.util.List;
import com.baidu.disconf.core.common.constants.DisConfigTypeEnum;
import com.baidu.disconf.web.service.config.bo.Config;
import com.baidu.disconf.web.service.config.form.ConfListForm;
import com.baidu.disconf.web.service.config.form.ConfNewItemForm;
import com.baidu.disconf.web.service.config.vo.ConfListVo;
import com.baidu.disconf.web.service.config.vo.MachineListVo;
import com.baidu.ub.common.db.DaoPageResult;

package com.baidu.disconf.web.service.config.service;



/**
 * @author liaoqiqi
 * @version 2014-6-16
 */
public interface ConfigMgr {

    /**
     * @param
     *
     * @return
     */
    List<String> getVersionListByAppEnv(Long appId, Long envId);

    /**
     * @return
     */
    DaoPageResult<ConfListVo> getConfigList(ConfListForm confListForm, boolean fetchZk, final boolean getErrorMessage);

    /**
     * @param configId
     *
     * @return
     */
    ConfListVo getConfVo(Long configId);

    /**
     * @param configId
     *
     * @return
     */
    MachineListVo getConfVoWithZk(Long configId);

    /**
     * @param configId
     *
     * @return
     */
    Config getConfigById(Long configId);

    /**
     * 更新 配置项/配置文件
     *
     * @param configId
     *
     * @return
     */
    String updateItemValue(Long configId, String value);

    /**
     * 获取config value
     *
     * @param configId
     *
     * @return
     */
    String getValue(Long configId);

    /**
     * 通知zk
     *
     * @param configId
     */
    void notifyZookeeper(Long configId);

    /**
     * 新建一个config
     *
     * @param confNewForm
     * @param disConfigTypeEnum
     */
    void newConfig(ConfNewItemForm confNewForm, DisConfigTypeEnum disConfigTypeEnum);