public abstract class WMSParameterValidator
extends java.lang.Object
WMS 的 GetMap 和 GetFeatureInfo 操作参数校验器。
该类根据 WMSCapabilities
对象构造需要的参数名称和正则表达式,生成 ParameterValidator
对象,使用这个对象进行基本的参数验证。
该类是一个抽象类,只构造了 WMS 1.1.1 和 WMS 1.3.0 版的 GetMap 操作通用的参数的验证表达式,以下参数没有构造正则表达式:
限定符和类型 | 字段和说明 |
---|---|
protected WMSCapabilities |
capabilities
WMS 元数据信息。
|
protected static java.lang.String |
EXCEPTION_CODE_INVALIDBBOX
无效 BBOX 异常代码。
|
protected static java.lang.String |
MSG_KEY_INVALIDBBOX
无效 BBOX 信息关键字。
|
protected ResourceManager |
resource
资源管理器。
|
protected ParameterValidator |
validator
基于正则表达式的参数校验器。
|
构造器和说明 |
---|
WMSParameterValidator(WMSCapabilities capabilities)
根据 WMS 元数据信息构造一个 WMSParameterValidator 对象。
|
WMSParameterValidator(WMSCapabilities capabilities, java.lang.String defaultBgColor)
根据 WMS 元数据信息构造一个 WMSParameterValidator 对象。
|
限定符和类型 | 方法和说明 |
---|---|
protected java.util.regex.Pattern |
createBBOXPattern()
创建验证 BBOX 参数的正则表达式。
|
protected java.util.regex.Pattern |
createBooleanPattern()
创建验证布尔字符串(true 或者 false)的正则表达式。
|
protected java.util.regex.Pattern |
createColorPattern()
创建验证颜色字符串的正则表达式。
|
protected java.util.regex.Pattern |
createElevationPattern()
创建验证 ELEVATION 参数的正则表达式。
|
protected java.util.regex.Pattern |
createLayerPattern(java.util.List<WMSLayer> layers)
创建验证 LAYERS 参数的正则表达式。
|
protected OGCParameterException |
createOGCException(ValidateResult validateResult, java.lang.String format)
根据 WMS 请求参数校验结果和异常格式,创建 OGCParameterException 异常对象。
|
protected java.util.regex.Pattern |
createPositiveIntegerPattern()
创建验证正整数的正则表达式。
|
protected java.util.regex.Pattern |
createStringArrayPattern(java.lang.String[] strArray, int flags)
创建用于验证字符串数组的正则表达式。
|
protected java.util.regex.Pattern |
createStylesPattern()
创建验证 STYLES 参数的正则表达式。
|
protected java.util.regex.Pattern |
createTimePattern()
创建验证 TIME 参数的正则表达式。
|
protected abstract java.util.Map<java.lang.String,java.util.regex.Pattern> |
initDefinePattern()
创建用于验证操作定义的参数的正则表达式。
|
protected java.util.Map<java.lang.String,OptionalParameter> |
initOptionalPattern()
创建可选参数的描述信息。
|
protected java.util.Map<java.lang.String,java.util.regex.Pattern> |
initRequiredPattern()
创建用于验证必需参数的正则表达式。
|
protected java.lang.String[] |
splitString(java.lang.String strToSplit, java.lang.String splitReg)
用指定的正则表达式的匹配分割字符串。
|
void |
validate(java.util.Map<java.lang.String,java.lang.String> paramMap)
验证 WMS 请求的关键字-值对(keyword-value pair)形式的参数。
|
protected void |
validateBBOX(java.lang.String bbox, java.lang.String exceptionFormat)
验证 BBOX 参数。
|
protected java.lang.String |
validateFormat(java.lang.String format)
验证是否支持 WMS GetMap 请求中的 FORMAT 参数所表示的图片格式。
|
protected void |
validateStyles(java.lang.String styles, java.lang.String layerNames, java.lang.String format)
验证 STYLES 参数。
|
protected static final java.lang.String MSG_KEY_INVALIDBBOX
无效 BBOX 信息关键字。
默认值为“WMS.ValidateParameter.InvalidBBOX”。
protected static final java.lang.String EXCEPTION_CODE_INVALIDBBOX
无效 BBOX 异常代码。
默认值为“InvalidBBOX”。
protected WMSCapabilities capabilities
WMS 元数据信息。
protected ResourceManager resource
资源管理器。
protected ParameterValidator validator
基于正则表达式的参数校验器。
public WMSParameterValidator(WMSCapabilities capabilities)
根据 WMS 元数据信息构造一个 WMSParameterValidator 对象。
capabilities
- WMS 元数据信息。public WMSParameterValidator(WMSCapabilities capabilities, java.lang.String defaultBgColor)
根据 WMS 元数据信息构造一个 WMSParameterValidator 对象。
capabilities
- WMS 元数据信息。public void validate(java.util.Map<java.lang.String,java.lang.String> paramMap) throws OGCParameterException
验证 WMS 请求的关键字-值对(keyword-value pair)形式的参数。
paramMap
- 该参数是一个 java.util.Map 对象,键为请求的参数名,值为参数值。OGCParameterException
- OGC 服务的参数异常。如果 WMS 请求的参数非法,抛出该异常。protected abstract java.util.Map<java.lang.String,java.util.regex.Pattern> initDefinePattern()
创建用于验证操作定义的参数的正则表达式。
protected java.util.Map<java.lang.String,OptionalParameter> initOptionalPattern()
创建可选参数的描述信息。
包括 TRANSPARENT、BGCOLOR、TIME、ELEVATION 可选参数。
OptionalParameter
。protected java.util.Map<java.lang.String,java.util.regex.Pattern> initRequiredPattern()
创建用于验证必需参数的正则表达式。
包括 LAYERS、STYLES、BBOX、WIDTH、HEIGHT、FORMAT、SLD_BODY 参数。
protected final java.util.regex.Pattern createElevationPattern()
创建验证 ELEVATION 参数的正则表达式。
目前没有对 ELEVATION 参数进行验证,返回一个可以匹配任何字符串的正则表达式。
protected final java.util.regex.Pattern createTimePattern()
创建验证 TIME 参数的正则表达式。
目前没有对 TIME 参数进行验证,返回一个可以匹配任何字符串的正则表达式。
protected final java.util.regex.Pattern createStringArrayPattern(java.lang.String[] strArray, int flags)
创建用于验证字符串数组的正则表达式。
创建的正则表达式可以匹配字符串数组中的任意一个(并且只有一个)元素的值。
strArray
- 被验证的字符串数组。flags
- 正则表达式匹配标志,可能包括 CASE_INSENSITIVE、MULTILINE、DOTALL、UNICODE_CASE、 CANON_EQ、UNIX_LINES、LITERAL 和 COMMENTS。protected final java.util.regex.Pattern createColorPattern()
创建验证颜色字符串的正则表达式。
采用不区分大小写(Pattern.CASE_INSENSITIVE)的匹配。
protected final java.util.regex.Pattern createBooleanPattern()
创建验证布尔字符串(true 或者 false)的正则表达式。
采用不区分大小写(Pattern.CASE_INSENSITIVE)的匹配。
protected final java.util.regex.Pattern createPositiveIntegerPattern()
创建验证正整数的正则表达式。
protected final java.util.regex.Pattern createBBOXPattern()
创建验证 BBOX 参数的正则表达式。
protected final java.util.regex.Pattern createStylesPattern()
创建验证 STYLES 参数的正则表达式。
目前没有对 STYLES 参数进行验证,返回一个可以匹配任何字符串的正则表达式。
protected final java.util.regex.Pattern createLayerPattern(java.util.List<WMSLayer> layers)
创建验证 LAYERS 参数的正则表达式。
图层正确性在 DefaultWMS
内部进行验证,这里返回一个匹配包含任意非空格字符串的正则表达式。
layers
- 图层列表。protected OGCParameterException createOGCException(ValidateResult validateResult, java.lang.String format)
根据 WMS 请求参数校验结果和异常格式,创建 OGCParameterException 异常对象。
validateResult
- WMS 请求参数校检结果。format
- 异常信息的格式。protected void validateBBOX(java.lang.String bbox, java.lang.String exceptionFormat) throws OGCParameterException
验证 BBOX 参数。
bbox
- BBOX 参数。exceptionFormat
- 验证 BBOX 参数错误时,抛出的异常信息的格式。OGCParameterException
- OGC 服务的参数异常。当 出现以下情况时,会抛出该异常,异常代码 Code = InvalidBBOX:
protected java.lang.String validateFormat(java.lang.String format)
验证是否支持 WMS GetMap 请求中的 FORMAT 参数所表示的图片格式。
format
- WMS GetMap 请求中的 FORMAT 参数。protected java.lang.String[] splitString(java.lang.String strToSplit, java.lang.String splitReg)
用指定的正则表达式的匹配分割字符串。
比如,字符串为 "SuperMap,iServer,WMS",splitReg 为 ",",分割结果为 {"SuperMap", "iServer", "iServer"}。当字符串为 ",," 时,splitReg 为 ",",分割结果为 {"", "", ""}。
strToSplit
- 要被分割的字符串。splitReg
- 正则表达式。protected void validateStyles(java.lang.String styles, java.lang.String layerNames, java.lang.String format) throws OGCParameterException
验证 STYLES 参数。
STYLES 暂时没有实现,如果 STYLES 参数为空,则不进行验证。
styles
- WMS 请求的地图图层的样式。layerNames
- WMS 请求的地图图层。format
- 验证 STYLES 参数错误时,抛出的异常信息的格式。OGCParameterException
- OGC 服务的参数异常。当 STYLES 参数非空时,图层个数与图层样式个数不一致时,会抛出该异常,异常代码 Code = StyleNotDefined。