org.soybeanMilk.core.config.parser
类 ConfigurationParser

java.lang.Object
  继承者 org.soybeanMilk.core.config.parser.ConfigurationParser
直接已知子类:
WebConfigurationParser

public class ConfigurationParser
extends java.lang.Object

配置解析器

作者:
earthAngry@gmail.com

嵌套类摘要
protected static class ConfigurationParser.ExecutableRefProxy
          可执行对象代理,用于可执行对象引用的延迟初始化
 
字段摘要
static java.lang.String TAG_ACTION
           
static java.lang.String TAG_ACTION_ATTR_NAME
           
static java.lang.String TAG_ARG
           
static java.lang.String TAG_ARG_ATTR_KEY
           
static java.lang.String TAG_ARG_ATTR_VALUE
           
static java.lang.String TAG_CONVERTER
           
static java.lang.String TAG_CONVERTER_ATTR_CLASS
           
static java.lang.String TAG_CONVERTER_ATTR_SRC
           
static java.lang.String TAG_CONVERTER_ATTR_TARGET
           
static java.lang.String TAG_EXECUTABLES
           
static java.lang.String TAG_FILE
           
static java.lang.String TAG_GENERIC_CONVERTER
           
static java.lang.String TAG_GENERIC_CONVERTER_ATTR_CLASS
           
static java.lang.String TAG_GLOBAL_CONFIG
           
static java.lang.String TAG_INCLUDES
           
static java.lang.String TAG_INVOKE
           
static java.lang.String TAG_INVOKE_ATTR_METHOD
           
static java.lang.String TAG_INVOKE_ATTR_NAME
           
static java.lang.String TAG_INVOKE_ATTR_RESOLVER_CLASS
           
static java.lang.String TAG_INVOKE_ATTR_RESOLVER_OBJECT
           
static java.lang.String TAG_INVOKE_ATTR_RESULT_KEY
           
static java.lang.String TAG_REF
           
static java.lang.String TAG_REF_ATTR_NAME
           
static java.lang.String TAG_RESOLVER
           
static java.lang.String TAG_RESOLVER_ATTR_CLASS
           
static java.lang.String TAG_RESOLVER_ATTR_ID
           
static java.lang.String TAG_RESOLVERS
           
static java.lang.String TAG_ROOT
           
 
构造方法摘要
ConfigurationParser()
          创建解析器,不预设存储配置对象
ConfigurationParser(Configuration configuration)
          创建解析器,并预设存储配置对象,所有的解析结果都将保存到这个配置中
 
方法摘要
protected  void assertNotEmpty(java.lang.Object o, java.lang.String msg)
          确保给定的对象不为null,如果是字符串,同时确保它不为空字符串。
protected  Action createActionIntance()
          创建空的动作对象,用于从配置文件解析并设置其属性
protected  Invoke.Arg createArgInfoInstance()
          创建参数信息对象,用于设置其属性
protected static java.lang.Object createClassInstance(java.lang.String clazz)
          创建对象
protected  Configuration createConfigurationInstance()
          创建空的配置对象,用于从配置文件解析并设置其属性
protected  Executable createExecutableInstance(java.lang.String type)
          创建空的可执行对象,用于从配置文件解析并设置其属性
protected  GenericConverter createGenericConverterInstance()
          创建空的通用转换器对象,用于设置其属性
protected  Invoke createInvokeIntance()
          创建空的调用对象,用于从配置文件解析并设置其属性
protected  ResolverFactory createResolverFactoryInstance()
           
protected  java.lang.String customizeExecutableName(java.lang.String rawName)
          自定义可执行对象的名称,所有可执行对象的名称都将使用该自定义规则
protected  java.lang.String formatIncludeFileName(java.lang.String rawFileName)
           
protected  java.lang.String getAttribute(org.w3c.dom.Element element, java.lang.String attrName)
          获取元素的属性值
protected  java.util.List<org.w3c.dom.Element> getChildrenByTagName(org.w3c.dom.Element parent, java.lang.String name)
          取得父元素的直接子元素列表。
 Configuration getConfiguration()
          取得解析结果
protected  org.w3c.dom.Element getCurrentDocumentRoot()
          取得当前解析的文档根元素
protected  java.lang.String getDefaultConfigFile()
          取得默认配置文件
 org.w3c.dom.Document getDocument()
          取得解析文档对象
 java.util.List<org.w3c.dom.Document> getModules()
          取得模块文档
protected  org.w3c.dom.Element getSingleElementByTagName(org.w3c.dom.Element parent, java.lang.String name)
          取得父元素的单一子元素
 Configuration parse()
          从默认配置文件解析
 Configuration parse(org.w3c.dom.Document document)
          从文档对象解析
 Configuration parse(java.io.InputStream in)
          从输入流解析
 Configuration parse(java.lang.String configFile)
          从给定配置文件解析
protected  void parseAll()
          解析,如果你没有预设配置对象,这个方法将自动创建
protected  void parseArgs(org.w3c.dom.Element parent, Invoke invoke)
          解析并构建parent元素下的所有参数信息对象,写入调用对象中
protected  org.w3c.dom.Document parseDocument(java.io.InputStream in)
          从输入流解析xml文档对象
protected  org.w3c.dom.Document parseDocument(java.lang.String fileName)
          根据名称取得文档对象
protected  org.w3c.dom.Document[] parseDocuments(java.lang.String fileName)
          解析名称中带有匹配符的文档
protected  void parseExecutables()
          解析并构建可执行对象
protected  void parseGenericConverter(org.w3c.dom.Element parent)
          解析通用转换器
protected  void parseGlobalConfigs()
          解析全局配置
protected  void parseIncludes()
          解析包含的模块配置
protected  void parseRefs()
          处理引用
protected  void parseResolvers()
          解析并构建解决对象
protected  void parseSupportConverters(GenericConverter genericConverter, org.w3c.dom.Element parent)
          解析父元素下的支持转换器并加入给定的通用转换器中
protected  void processExecutableRefs()
          处理可执行对象引用代理,将它们替换为真正的引用可执行对象, 比如动作中的可执行对象引用代理。
protected  void setActionProperties(Action action, org.w3c.dom.Element element)
          从元素中解析并设置动作的属性。
protected  void setArgProperties(Invoke.Arg arg, org.w3c.dom.Element element)
          从元素中解析并设置参数对象的属性
 void setConfiguration(Configuration configuration)
          设置解析配置对象,所有的解析结果将保存到该配置中,它应该在解析前调用
protected  void setCurrentDocument(org.w3c.dom.Document doc)
          设置当前解析文档
 void setDocument(org.w3c.dom.Document document)
          设置解析文档对象
protected  void setExecutableProperties(Executable executable, org.w3c.dom.Element element)
          从可执行对象对应的元素中解析并设置对象的属性。
protected  void setInvokeProperties(Invoke invoke, org.w3c.dom.Element element)
          从元素中解析并设置调用的属性
 void setModules(java.util.List<org.w3c.dom.Document> modules)
          设置模块文档
protected static java.lang.Class<?> toClass(java.lang.String clazz)
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

TAG_ROOT

public static final java.lang.String TAG_ROOT
另请参见:
常量字段值

TAG_GLOBAL_CONFIG

public static final java.lang.String TAG_GLOBAL_CONFIG
另请参见:
常量字段值

TAG_GENERIC_CONVERTER

public static final java.lang.String TAG_GENERIC_CONVERTER
另请参见:
常量字段值

TAG_GENERIC_CONVERTER_ATTR_CLASS

public static final java.lang.String TAG_GENERIC_CONVERTER_ATTR_CLASS
另请参见:
常量字段值

TAG_CONVERTER

public static final java.lang.String TAG_CONVERTER
另请参见:
常量字段值

TAG_CONVERTER_ATTR_SRC

public static final java.lang.String TAG_CONVERTER_ATTR_SRC
另请参见:
常量字段值

TAG_CONVERTER_ATTR_TARGET

public static final java.lang.String TAG_CONVERTER_ATTR_TARGET
另请参见:
常量字段值

TAG_CONVERTER_ATTR_CLASS

public static final java.lang.String TAG_CONVERTER_ATTR_CLASS
另请参见:
常量字段值

TAG_INCLUDES

public static final java.lang.String TAG_INCLUDES
另请参见:
常量字段值

TAG_FILE

public static final java.lang.String TAG_FILE
另请参见:
常量字段值

TAG_RESOLVERS

public static final java.lang.String TAG_RESOLVERS
另请参见:
常量字段值

TAG_RESOLVER

public static final java.lang.String TAG_RESOLVER
另请参见:
常量字段值

TAG_RESOLVER_ATTR_ID

public static final java.lang.String TAG_RESOLVER_ATTR_ID
另请参见:
常量字段值

TAG_RESOLVER_ATTR_CLASS

public static final java.lang.String TAG_RESOLVER_ATTR_CLASS
另请参见:
常量字段值

TAG_EXECUTABLES

public static final java.lang.String TAG_EXECUTABLES
另请参见:
常量字段值

TAG_ACTION

public static final java.lang.String TAG_ACTION
另请参见:
常量字段值

TAG_ACTION_ATTR_NAME

public static final java.lang.String TAG_ACTION_ATTR_NAME
另请参见:
常量字段值

TAG_INVOKE

public static final java.lang.String TAG_INVOKE
另请参见:
常量字段值

TAG_INVOKE_ATTR_NAME

public static final java.lang.String TAG_INVOKE_ATTR_NAME
另请参见:
常量字段值

TAG_INVOKE_ATTR_METHOD

public static final java.lang.String TAG_INVOKE_ATTR_METHOD
另请参见:
常量字段值

TAG_INVOKE_ATTR_RESOLVER_OBJECT

public static final java.lang.String TAG_INVOKE_ATTR_RESOLVER_OBJECT
另请参见:
常量字段值

TAG_INVOKE_ATTR_RESOLVER_CLASS

public static final java.lang.String TAG_INVOKE_ATTR_RESOLVER_CLASS
另请参见:
常量字段值

TAG_INVOKE_ATTR_RESULT_KEY

public static final java.lang.String TAG_INVOKE_ATTR_RESULT_KEY
另请参见:
常量字段值

TAG_ARG

public static final java.lang.String TAG_ARG
另请参见:
常量字段值

TAG_ARG_ATTR_KEY

public static final java.lang.String TAG_ARG_ATTR_KEY
另请参见:
常量字段值

TAG_ARG_ATTR_VALUE

public static final java.lang.String TAG_ARG_ATTR_VALUE
另请参见:
常量字段值

TAG_REF

public static final java.lang.String TAG_REF
另请参见:
常量字段值

TAG_REF_ATTR_NAME

public static final java.lang.String TAG_REF_ATTR_NAME
另请参见:
常量字段值
构造方法详细信息

ConfigurationParser

public ConfigurationParser()
创建解析器,不预设存储配置对象


ConfigurationParser

public ConfigurationParser(Configuration configuration)
创建解析器,并预设存储配置对象,所有的解析结果都将保存到这个配置中

参数:
configuration - 预设配置对象
方法详细信息

getConfiguration

public Configuration getConfiguration()
取得解析结果

返回:

setConfiguration

public void setConfiguration(Configuration configuration)
设置解析配置对象,所有的解析结果将保存到该配置中,它应该在解析前调用

参数:
configuration -

getDocument

public org.w3c.dom.Document getDocument()
取得解析文档对象

返回:

setDocument

public void setDocument(org.w3c.dom.Document document)
设置解析文档对象

参数:
document -

getModules

public java.util.List<org.w3c.dom.Document> getModules()
取得模块文档

返回:

setModules

public void setModules(java.util.List<org.w3c.dom.Document> modules)
设置模块文档

参数:
modules -

parse

public Configuration parse()
从默认配置文件解析

返回:

parse

public Configuration parse(java.lang.String configFile)
从给定配置文件解析

参数:
configFile - 配置文件,可以类路径资源文件,也可以是文件系统文件
返回:

parse

public Configuration parse(java.io.InputStream in)
从输入流解析

参数:
in -
返回:

parse

public Configuration parse(org.w3c.dom.Document document)
从文档对象解析

参数:
document -
返回:

parseAll

protected void parseAll()
解析,如果你没有预设配置对象,这个方法将自动创建


parseGlobalConfigs

protected void parseGlobalConfigs()
解析全局配置


parseIncludes

protected void parseIncludes()
解析包含的模块配置


parseResolvers

protected void parseResolvers()
解析并构建解决对象


parseExecutables

protected void parseExecutables()
解析并构建可执行对象


parseRefs

protected void parseRefs()
处理引用


parseGenericConverter

protected void parseGenericConverter(org.w3c.dom.Element parent)
解析通用转换器

参数:
parent -

parseSupportConverters

protected void parseSupportConverters(GenericConverter genericConverter,
                                      org.w3c.dom.Element parent)
解析父元素下的支持转换器并加入给定的通用转换器中

参数:
genericConverter -
parent -

setExecutableProperties

protected void setExecutableProperties(Executable executable,
                                       org.w3c.dom.Element element)
从可执行对象对应的元素中解析并设置对象的属性。

参数:
executable - 可执行对象,可能是Action也可能是Invoke
element -

setActionProperties

protected void setActionProperties(Action action,
                                   org.w3c.dom.Element element)
从元素中解析并设置动作的属性。

参数:
action -
element -

setInvokeProperties

protected void setInvokeProperties(Invoke invoke,
                                   org.w3c.dom.Element element)
从元素中解析并设置调用的属性

参数:
invoke -
element -

parseArgs

protected void parseArgs(org.w3c.dom.Element parent,
                         Invoke invoke)
解析并构建parent元素下的所有参数信息对象,写入调用对象中

参数:
parent -
invoke -

setArgProperties

protected void setArgProperties(Invoke.Arg arg,
                                org.w3c.dom.Element element)
从元素中解析并设置参数对象的属性

参数:
arg -
element -

processExecutableRefs

protected void processExecutableRefs()
处理可执行对象引用代理,将它们替换为真正的引用可执行对象, 比如动作中的可执行对象引用代理。


parseDocument

protected org.w3c.dom.Document parseDocument(java.io.InputStream in)
从输入流解析xml文档对象

参数:
in -
返回:
抛出:
ParseException

parseDocuments

protected org.w3c.dom.Document[] parseDocuments(java.lang.String fileName)
解析名称中带有匹配符的文档

参数:
fileName -
返回:

parseDocument

protected org.w3c.dom.Document parseDocument(java.lang.String fileName)
根据名称取得文档对象

参数:
fileName -
返回:

formatIncludeFileName

protected java.lang.String formatIncludeFileName(java.lang.String rawFileName)

setCurrentDocument

protected void setCurrentDocument(org.w3c.dom.Document doc)
设置当前解析文档

参数:
doc -

getCurrentDocumentRoot

protected org.w3c.dom.Element getCurrentDocumentRoot()
取得当前解析的文档根元素

返回:

getDefaultConfigFile

protected java.lang.String getDefaultConfigFile()
取得默认配置文件

返回:

getChildrenByTagName

protected java.util.List<org.w3c.dom.Element> getChildrenByTagName(org.w3c.dom.Element parent,
                                                                   java.lang.String name)
取得父元素的直接子元素列表。如果没有,则返回null。 只有子元素的标签名与给定名称匹配的才会返回,如果名称为null,则返回所有。

参数:
parent -
name -
返回:
抛出:
java.lang.Exception

getSingleElementByTagName

protected org.w3c.dom.Element getSingleElementByTagName(org.w3c.dom.Element parent,
                                                        java.lang.String name)
取得父元素的单一子元素

参数:
parent -
name -
返回:

assertNotEmpty

protected void assertNotEmpty(java.lang.Object o,
                              java.lang.String msg)
确保给定的对象不为null,如果是字符串,同时确保它不为空字符串。

参数:
o - 对象
msg - 失败时的异常消息

getAttribute

protected java.lang.String getAttribute(org.w3c.dom.Element element,
                                        java.lang.String attrName)
获取元素的属性值

参数:
element -
attrName -
返回:

customizeExecutableName

protected java.lang.String customizeExecutableName(java.lang.String rawName)
自定义可执行对象的名称,所有可执行对象的名称都将使用该自定义规则

参数:
rawName -
返回:

createConfigurationInstance

protected Configuration createConfigurationInstance()
创建空的配置对象,用于从配置文件解析并设置其属性

返回:

createResolverFactoryInstance

protected ResolverFactory createResolverFactoryInstance()

createGenericConverterInstance

protected GenericConverter createGenericConverterInstance()
创建空的通用转换器对象,用于设置其属性

返回:

createExecutableInstance

protected Executable createExecutableInstance(java.lang.String type)
创建空的可执行对象,用于从配置文件解析并设置其属性

返回:

createActionIntance

protected Action createActionIntance()
创建空的动作对象,用于从配置文件解析并设置其属性

返回:

createInvokeIntance

protected Invoke createInvokeIntance()
创建空的调用对象,用于从配置文件解析并设置其属性

返回:

createArgInfoInstance

protected Invoke.Arg createArgInfoInstance()
创建参数信息对象,用于设置其属性

返回:

createClassInstance

protected static java.lang.Object createClassInstance(java.lang.String clazz)
创建对象

参数:
clazz -
返回:

toClass

protected static java.lang.Class<?> toClass(java.lang.String clazz)