package configMgr

import (
	"goutil/configUtil"
)

// 配置管理对象
type ConfigManager struct {
	// 初始化方法列表
	initFuncList []func(*configUtil.XmlConfig) error
}

// 注册初始化方法
func (this *ConfigManager) RegisterInitFunc(initFunc func(*configUtil.XmlConfig) error) {
	this.initFuncList = append(this.initFuncList, initFunc)
}

// 初始化
func (this *ConfigManager) Init(configObj *configUtil.XmlConfig) error {
	for _, initFunc := range this.initFuncList {
		if err := initFunc(configObj); err != nil {
			return err
		}
	}

	return nil
}

// 创建配置管理对象
func NewConfigManager() *ConfigManager {
	return &ConfigManager{
		initFuncList: make([]func(*configUtil.XmlConfig) error, 0, 8),
	}
}
