package com.walker.infrastructure.arguments; import java.util.List; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; //import com.walker.beans.factory.DisposableBean; //import com.walker.beans.factory.InitializingBean; /** * 参数管理器定义

* 该管理器实现了如何加载、获取、持久化保存可变参数的功能。
* 子类实现具体的加载数据过程,如:xml文件、数据库等。 * @author shikeying * @date 2013-11-28 * */ public interface ArgumentsManager extends InitializingBean, DisposableBean { /** * 根据可变参数ID,返回该参数对象 * @param id * @return * * @throws ElementNotFoundException */ Variable getVariable(String id); /** * 持久化一个变量值,也就是更新一个现有的变量。
* 此方法适用于配置中仅有一个分组,默认就持久化到第一个分组中。 * @param variableId * @param value */ void persist(String variableId, Object value); /** * 持久化一个变量值,也就是更新一个现有的变量。 * @param groupId 分组ID,必须存在 * @param variableId 变量ID * @param value 新的变量值 * * @throws ArgumentsException 如果保存失败,会抛出此运行时异常。 */ void persist(String groupId, String variableId, Object value); /** * 持久化批量参数更新,集合中是数组对象,Object[]{groupId, variableId, value}
* @param changedList * @throws ArgumentsException 如果保存失败,会抛出此运行时异常。 */ void persist(List changedList); /** * 加入新的参数集合,集合中是数组对象,Object[]{group, variable}
* 如果已经存在该参数,则不再创建。 * @param insertList * @throws ArgumentsException 如果保存失败,会抛出此运行时异常。 */ void insert(List insertList); /** * 返回可变参数的所有分组信息,如果不存在返回null * @return */ List getGroupList(); /** * 返回某个分组下所有可变参数集合,如果不存在返回null * @param groupId * @return */ List getVariableList(String groupId); /** * 设置可变参数加载的原始信息,如:文件名、数据源地址等。

* 系统会实现至少两种加载源: *
  • 从XML配置文件中加载参数
  • *
  • 从数据库中加载参数
  • * @param source */ void setSource(Object source); }