亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? paramchecker.java

?? java系統(tǒng)通用框架 很實(shí)用的東東 一般人都看的懂,
?? JAVA
字號:
/*****************************************************************************
* (C) Copyright 2004 。
* 保留對所有使用、復(fù)制、修改和發(fā)布整個軟件和相關(guān)文檔的權(quán)利。
* 本計(jì)算機(jī)程序受著作權(quán)法和國際公約的保護(hù),未經(jīng)授權(quán)擅自復(fù)制或
* 傳播本程序的全部或部分,可能受到嚴(yán)厲的民事和刑事制裁,并
* 在法律允許的范圍內(nèi)受到最大可能的起訴。
*/

 /*****************************************************************************
  * @作者:Golden Peng
  * @版本: 1.0
  * @時(shí)間: 2002-10-08
  */
 /*****************************************************************************
  * 修改記錄清單
  * 修改人  :
  * 修改記錄:
  * 修改時(shí)間:
  * 修改描述:
  *
  */
package com.corp.bisc.ebiz.base;

/**
 * 此處插入類型描述。
 * 創(chuàng)建日期:(2002-5-15 23:53:10)
 * @author:Administrator
 */
import java.util.*;
import org.w3c.dom.*;
import com.corp.bisc.ebiz.exception.*;

public class ParamChecker extends ObjectBase
{
	final public static String ENUM_PREFIX = "[";
	final public static String ENUM_SUBFIX = "]";
	final public static String ENUM_SEPSYM = "|";
	final public static String RANGE_PREFIX = "{";
	final public static String RANGE_SUBFIX = "}";
	final public static String RANGE_SEPSYM = "...";

	final public static int PARAM_RANGE_ENUM = 1;
	final public static int PARAM_RANGE_TOP = 2;
	final public static int PARAM_RANGE_BOTTOM = 4;

	final public static int PARAM_TYPE_INT = 1;
	final public static int PARAM_TYPE_BOOLEAN = 2;
	final public static int PARAM_TYPE_CHAR = 3;
	final public static int PARAM_TYPE_STRING = 4;
	final public static int PARAM_TYPE_FLOAT = 5;
	final public static int PARAM_TYPE_DOUBLE = 6;

	protected String paramName = null;
	protected boolean isRequired = false;
	protected String defaultValue = null;
	protected Hashtable enumValues = null;
	protected int bottomInt = 0;
	protected int topInt = 0;
	protected float bottomFloat = 0.0f;
	protected float topFloat = 0.0f;
	protected double bottomDouble = 0.0;
	protected double topDouble = 0.0;
	protected char topChar = 0;
	protected char bottomChar = 0;
	protected int valueType = PARAM_TYPE_STRING;
	protected int rangeType = 0;

/**
 * ParamChecker 構(gòu)造子注解。
 */
public ParamChecker() {
	super();
}
	public String getParamName()
	{
		return paramName;
	}
	public Object getValidValue(String value) throws InvalidParameterException
	{
		enter("getValidValue(String)");

		if (value == null)
		{
			if (isRequired)
				throw new InvalidParameterException(paramName + '=' + value);

			value = defaultValue;
		}

		if (value != null)
		{
			Object o = null;

			try
			{
				switch(valueType)
				{
				case PARAM_TYPE_CHAR:
					if (value.length() != 1)
						throw new InvalidParameterException(paramName + '=' + value);

					o = new Character(value.charAt(0));
					break;
				case PARAM_TYPE_INT:
					o = Integer.valueOf(value);
					break;
				case PARAM_TYPE_FLOAT:
					o = Float.valueOf(value);
					break;
				case PARAM_TYPE_DOUBLE:
					o = Double.valueOf(value);
					break;
				case PARAM_TYPE_BOOLEAN:
					o = Boolean.valueOf(value);
				default:
					o = value;
				}
			}
			catch(NumberFormatException e)
			{
				throw new InvalidParameterException(paramName + '=' + value);
			}

			if (hasEnums())
			{
				if (enumValues.get(value) == null)
					throw new InvalidParameterException(paramName + '=' + value);
			}
			else
			{
				boolean result = true;

				if (hasTop())
				{
					switch(valueType)
					{
					case PARAM_TYPE_CHAR:
						if (topChar < ((Character)o).charValue())
							result = false;
						break;
					case PARAM_TYPE_INT:
						if (topInt < ((Integer)o).intValue())
							result = false;
						break;
					case PARAM_TYPE_FLOAT:
						if (topFloat < ((Float)o).floatValue())
							result = false;
						break;
					case PARAM_TYPE_DOUBLE:
						if (topDouble < ((Double)o).doubleValue())
							result = false;
						break;
					}

					if (!result)
						throw new InvalidParameterException(paramName + '=' + value);
				}

				if (hasBottom())
				{
					switch(valueType)
					{
					case PARAM_TYPE_CHAR:
						if (bottomChar > ((Character)o).charValue())
							result = false;
						break;
					case PARAM_TYPE_INT:
						if (bottomInt > ((Integer)o).intValue())
							result = false;
						break;
					case PARAM_TYPE_FLOAT:
						if (bottomFloat > ((Float)o).floatValue())
							result = false;
						break;
					case PARAM_TYPE_DOUBLE:
						if (bottomDouble > ((Double)o).doubleValue())
							result = false;
						break;
					}

					if (!result)
						throw new InvalidParameterException(paramName + '=' + value);
				}
			}

			leave("getValidValue(String)");
			return o;
		}

		leave("getValidValue(String)");
		return null;
	}
	public boolean hasBottom()
	{
		return (rangeType & PARAM_RANGE_BOTTOM) != 0;
	}
	public boolean hasEnums()
	{
		return (rangeType & PARAM_RANGE_ENUM) != 0;
	}
	public boolean hasTop()
	{
		return (rangeType & PARAM_RANGE_TOP) != 0;
	}
	public void init(Node cfgNode) throws InvalidConfigException
	{
		enter("init(Node)");

		NamedNodeMap attribs = cfgNode.getAttributes();

		Node nameNode = attribs.getNamedItem("name");
		Node defVNode = attribs.getNamedItem("default");
		Node reqNode = attribs.getNamedItem("required");
		Node typeNode = attribs.getNamedItem("type");
		Node valueNode = attribs.getNamedItem("value");


		if (nameNode == null)
			throw new InvalidConfigException("action/parameters/param/@name");
		else
			paramName = nameNode.getNodeValue();

		if (defVNode != null)
			defaultValue = defVNode.getNodeValue();

		if (reqNode != null)
		{
			String reqText = reqNode.getNodeValue();
			if (reqText.equalsIgnoreCase("true"))
				isRequired = true;
			else if (reqText.equalsIgnoreCase("false"))
				isRequired = false;
			else
				throw new InvalidConfigException("action/parameters/param/[@required=" + reqText + "]");
		}

		if (typeNode != null)
		{
			String typeText = typeNode.getNodeValue();

			if (typeText.equals("int"))
				valueType = PARAM_TYPE_INT;
			else if (typeText.equals("bool"))
				valueType = PARAM_TYPE_BOOLEAN;
			else if (typeText.equals("char"))
				valueType = PARAM_TYPE_CHAR;
			else if (typeText.equals("string"))
				valueType = PARAM_TYPE_STRING;
			else if (typeText.equals("float"))
				valueType = PARAM_TYPE_FLOAT;
			else if (typeText.equals("double"))
				valueType = PARAM_TYPE_DOUBLE;
			else
				throw new InvalidConfigException("action/parameters/param/[@type=" + typeText + "]");
		}

		if (valueNode != null)
		{
			String rangeText = valueNode.getNodeValue();
			if (!parseRange(rangeText))
				throw new InvalidConfigException("action/parameters/param/[@value=" + rangeText + "]");
		}

		leave("init(Node)");
	}
	protected boolean parseRange(String rangeText)
	{
		enter("parseRange(String)");

		int len = rangeText.length();

		if (rangeText.startsWith(ENUM_PREFIX) && rangeText.endsWith(ENUM_SUBFIX))
		{
			rangeType = PARAM_RANGE_ENUM;

			String newText = rangeText.substring(ENUM_PREFIX.length() , len - ENUM_PREFIX.length() - ENUM_SUBFIX.length());
			StringTokenizer tokens = new StringTokenizer(newText , ENUM_SEPSYM);

			while(tokens.hasMoreTokens())
			{
				String token = tokens.nextToken();
				enumValues.put(token , token);
			}

			leave("parseRange(String)");
			return true;
		}
		else if (rangeText.startsWith(RANGE_PREFIX) && rangeText.endsWith(RANGE_SUBFIX))
		{
			String newText = rangeText.substring(RANGE_PREFIX.length() , len - RANGE_PREFIX.length() - RANGE_SUBFIX.length());
			int sepIndex = newText.indexOf(RANGE_SEPSYM);

			if (sepIndex == -1)
			{
				leave("parseRange(String)");
				return false;
			}

			String bottomText = newText.substring(0 , sepIndex);
			String topText = newText.substring(sepIndex + RANGE_SEPSYM.length());

			if (bottomText.length() != 0)
				rangeType |= PARAM_RANGE_BOTTOM;

			if (topText.length() != 0)
				rangeType |= PARAM_RANGE_TOP;

			try
			{
				switch(valueType)
				{
				case PARAM_TYPE_CHAR:
					if (bottomText.length() > 1 || topText.length() > 1)
					{
						leave("parseRange(String)");
						return false;
					}

					if (hasBottom())
						bottomChar = bottomText.charAt(0);

					if (hasTop())
						topChar = topText.charAt(0);

					break;
				case PARAM_TYPE_INT:

					if (hasBottom())
						bottomInt = Integer.parseInt(bottomText);

					if (hasTop())
						topInt = Integer.parseInt(topText);

					break;

				case PARAM_TYPE_FLOAT:
					if (hasBottom())
						bottomFloat = Float.parseFloat(bottomText);

					if (hasTop())
						topFloat = Float.parseFloat(topText);

					break;

				case PARAM_TYPE_DOUBLE:
					if (hasBottom())
						bottomDouble = Double.parseDouble(bottomText);

					if (hasTop())
						topDouble = Double.parseDouble(topText);

					break;

				default:
					leave("parseRange(String)");
					return false;
				}
			}
			catch(NumberFormatException e)
			{
				leave("parseRange(String)");
				return false;
			}
		}

		leave("parseRange(String)");
		return false;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品水蜜桃| 一区二区欧美在线观看| 99国产精品久久久久久久久久| 亚洲一区日韩精品中文字幕| 日韩精品在线一区二区| 欧洲av在线精品| 国产成人av一区二区| 日本一不卡视频| 亚洲人被黑人高潮完整版| 久久欧美一区二区| 欧美一区二区大片| 欧美在线free| 色网综合在线观看| 成人黄色软件下载| 国产米奇在线777精品观看| 五月综合激情网| 亚洲制服丝袜av| 日韩毛片一二三区| 国产日韩欧美在线一区| 337p粉嫩大胆色噜噜噜噜亚洲| 在线播放国产精品二区一二区四区| av成人免费在线| 不卡电影一区二区三区| 国产高清不卡二三区| 久久99精品久久久久婷婷| 日韩电影在线一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕一区三区| 国产女同互慰高潮91漫画| 精品国产一区二区三区av性色 | 日韩女优av电影在线观看| 欧美亚洲一区二区在线| 一本色道久久综合亚洲精品按摩| 不卡av电影在线播放| 国产不卡高清在线观看视频| 国产不卡视频在线播放| 国产精品亚洲午夜一区二区三区 | 国产精品自拍网站| 精品一区二区免费视频| 精品一区二区三区欧美| 国内国产精品久久| 国产成人在线看| 成人精品国产一区二区4080| 成人黄色小视频| 91麻豆福利精品推荐| 在线看不卡av| 欧美日韩国产成人在线91| 欧美一区二区久久久| 日韩欧美高清一区| 久久久.com| 综合亚洲深深色噜噜狠狠网站| 国产精品久久久久国产精品日日| 国产精品国产自产拍在线| 亚洲美女偷拍久久| 午夜影院久久久| 麻豆国产欧美日韩综合精品二区| 欧美日本一道本| 亚洲h在线观看| 精品亚洲aⅴ乱码一区二区三区| 老司机精品视频在线| 国产一区91精品张津瑜| 成人av资源在线观看| 日本韩国一区二区| 7777精品伊人久久久大香线蕉| 日韩一级片在线播放| 国产欧美综合色| 亚洲女同一区二区| 日韩成人一级大片| 国产剧情一区二区三区| 97久久精品人人做人人爽| 欧美日韩五月天| 26uuu亚洲| 亚洲女同一区二区| 麻豆精品在线观看| 成人av在线播放网址| 欧美酷刑日本凌虐凌虐| 久久久噜噜噜久久人人看| 亚洲视频一区在线| 麻豆精品在线观看| 91美女蜜桃在线| 日韩欧美激情在线| 亚洲日本电影在线| 狠狠色丁香久久婷婷综| 91久久精品国产91性色tv| 精品国免费一区二区三区| 亚洲裸体xxx| 国产乱淫av一区二区三区 | 91老师国产黑色丝袜在线| 91麻豆精品国产91久久久久| 国产精品麻豆久久久| 日韩精品1区2区3区| jvid福利写真一区二区三区| 欧美一级搡bbbb搡bbbb| 1024亚洲合集| 国产精品主播直播| 欧美男生操女生| 亚洲三级免费观看| 国产一区二区三区香蕉| 欧美精品久久天天躁| 中文字幕在线一区二区三区| 蜜臀精品久久久久久蜜臀| 在线精品亚洲一区二区不卡| 国产精品三级视频| 国产一区在线观看视频| 欧美二区乱c少妇| 亚洲久草在线视频| 丁香婷婷综合五月| 精品久久国产老人久久综合| 亚洲一区二区成人在线观看| 99久久99久久久精品齐齐| 久久这里都是精品| 久久成人免费日本黄色| 欧美日韩aaa| 亚洲一区二区三区自拍| 波多野结衣中文字幕一区| 国产午夜精品一区二区| 精品一区二区三区的国产在线播放 | 国产精品电影院| 国产剧情一区二区三区| 精品国产伦一区二区三区免费| 日韩福利视频网| 欧美三级午夜理伦三级中视频| 亚洲乱码中文字幕综合| av日韩在线网站| 中文字幕一区二区三区在线观看| 国产精品一二三四五| 久久久久久99久久久精品网站| 毛片一区二区三区| 欧美一区二区三区视频在线观看| 亚洲国产aⅴ天堂久久| 欧美三级在线看| 婷婷国产在线综合| 欧美一区二区黄色| 美女视频黄久久| 精品国产91乱码一区二区三区| 美女www一区二区| 精品国内二区三区| 国产高清成人在线| 中文天堂在线一区| 91免费看`日韩一区二区| 亚洲免费电影在线| 欧美日本一区二区三区| 五月天中文字幕一区二区| 91精品黄色片免费大全| 久久99精品国产麻豆婷婷洗澡| 欧美成人三级在线| 国产凹凸在线观看一区二区| 蜜臀久久99精品久久久画质超高清| 在线成人av影院| 久久成人羞羞网站| 国产日韩精品一区| 91在线视频播放| 亚洲最大成人综合| 91精品视频网| 国产麻豆欧美日韩一区| 国产精品国产三级国产aⅴ无密码| 色婷婷精品久久二区二区蜜臂av | 亚洲同性gay激情无套| 91浏览器在线视频| 香蕉久久一区二区不卡无毒影院| 欧美一级欧美三级在线观看| 久久成人综合网| 中文字幕亚洲区| 91精品国产丝袜白色高跟鞋| 日本不卡一区二区| 国产欧美精品一区aⅴ影院| 日本韩国欧美在线| 另类调教123区| 国产精品美女一区二区在线观看| 97成人超碰视| 日韩专区中文字幕一区二区| 久久综合九色综合97婷婷 | 欧美成人激情免费网| 成人91在线观看| 偷窥国产亚洲免费视频| 久久久亚洲精品一区二区三区 | 亚洲成人免费av| 337p日本欧洲亚洲大胆精品| 91麻豆精品在线观看| 久久99热99| 一区二区三区加勒比av| 精品国产乱码久久久久久免费| 91在线视频免费91| 老司机免费视频一区二区三区| 国产精品久久久久久久久快鸭| 欧美一区二区三区在线视频| 成人高清视频在线观看| 秋霞成人午夜伦在线观看| 亚洲三级理论片| 久久久久久久久久久久久久久99| 欧美少妇性性性| www.视频一区| 韩国精品久久久| 亚洲小说欧美激情另类| 国产精品久久久久久久蜜臀| 日韩欧美电影在线| 欧美日韩国产在线播放网站| 成人免费av网站| 国产美女一区二区| 蜜桃一区二区三区在线观看|