com.bstek.dorado.config.text
public abstract class DispatchableTextParser extends java.lang.Object implements TextParser
头信息 属性名1:属性值1; 属性名2:属性值2; 属性名3:属性值3
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
HEADER_ATTRIBUTE
返回的解析结果中用于保存头信息的特殊属性的属性名。
|
static java.lang.String |
WILDCARD
默认解析器的约束条件。
该约束条件表示如果根据某约束条件无法找到匹配的解析器,那么就使用与WILDCARD相关的解析器。 |
Constructor and Description |
---|
DispatchableTextParser() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
dispatchAttribute(java.lang.String constraint,
char[] charArray,
TextParseContext context)
根据传入的约束条件将字符串中某属性的解析任务分发给匹配的子解析器。
|
protected TextParser |
findAttributeParser(java.lang.String constraint)
根据约束条件返回一个匹配的属性解析器。
|
protected TextParser |
findSubParser(java.lang.String constraint,
TextParseContext context)
根据约束条件返回一个匹配的子解析器。
|
java.util.Map<java.lang.String,TextParser> |
getAttributeParsers()
返回所有已注册的属性解析器。其中Map的键值是约束条件,值是属性解析器。
|
java.util.Map<java.lang.String,TextParser> |
getSubParsers()
返回所有已注册的子解析器。 其中Map的键值是约束条件,值是子解析器。
|
protected boolean |
isIgnoredChar(char c)
判断某字符是否一个应被忽略的字符。
当解析属性值的内容时不会作此判断。 |
protected boolean |
isValidPropertyNameChar(char c)
判断某字符是否一个有效的属性名称字符。
|
java.lang.Object |
parse(char[] charArray,
TextParseContext context)
解析给定的字符串,并将解析到的所有属性及值保存到Map集合中返回。
|
protected java.lang.String |
parseHeader(char[] charArray,
TextParseContext context) |
protected java.util.Map<java.lang.String,java.lang.Object> |
parseToAttributes(char[] charArray,
TextParseContext context)
将文本解析成一个包含各个属性值的Map集合。其中Map的键位属性名,值为属性值。 如果文本包含头信息的话,那么头信息将被包存在
HEADER_ATTRIBUTE 代表的特殊属性名中。 |
void |
registerAttributeParser(java.lang.String constraint,
TextParser parser)
向当前解析器中注册一个属性解析器。
|
void |
registerSubParser(java.lang.String constraint,
TextParser parser)
向当前解析器中注册一个子解析器。
|
boolean |
supportsHeader()
返回要解析的字符串是否包含一个头信息。
如果解析的字符串中包含头信息,那么在默认情况下头信息中的值将被处理为$header属性的值。 |
public static final java.lang.String HEADER_ATTRIBUTE
public static final java.lang.String WILDCARD
public boolean supportsHeader()
public void registerAttributeParser(java.lang.String constraint, TextParser parser)
constraint
- 要注册的属性解析器的约束条件。如果此参数的值为null,那么系统将使用WILDCARD
作为内部使用的约束条件。parser
- 属性解析器public java.util.Map<java.lang.String,TextParser> getAttributeParsers()
protected TextParser findAttributeParser(java.lang.String constraint)
constraint
- 约束条件。
如果无法直接通过约束条件找到一个匹配的子解析器,那么此方法将尝试返回WILDCARD相关的子解析器。public void registerSubParser(java.lang.String constraint, TextParser parser)
constraint
- 要注册的子解析器的约束条件。 如果此参数的值为null,那么系统将使用WILDCARD作为内部使用的约束条件。parser
- 子解析器public java.util.Map<java.lang.String,TextParser> getSubParsers()
protected TextParser findSubParser(java.lang.String constraint, TextParseContext context) throws java.lang.Exception
constraint
- 约束条件。
如果无法直接通过约束条件找到一个匹配的子解析器,那么此方法将尝试返回WILDCARD相关的子解析器。\\context
- java.lang.Exception
protected boolean isValidPropertyNameChar(char c)
protected boolean isIgnoredChar(char c)
public java.lang.Object parse(char[] charArray, TextParseContext context) throws java.lang.Exception
parse
in interface TextParser
charArray
- 要解析的字符串context
- 解析的上下文对象java.lang.Exception
protected java.util.Map<java.lang.String,java.lang.Object> parseToAttributes(char[] charArray, TextParseContext context) throws java.lang.Exception
HEADER_ATTRIBUTE
代表的特殊属性名中。java.lang.Exception
protected java.lang.String parseHeader(char[] charArray, TextParseContext context) throws TextParseException
TextParseException
protected java.lang.Object dispatchAttribute(java.lang.String constraint, char[] charArray, TextParseContext context) throws java.lang.Exception
constraint
- 约束条件。charArray
- 要解析字符串。context
- 解析的上下文对象。java.lang.Exception
Copyright © 2001-2011 www.BSTEK.com All Rights Reserved.