⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mocommandobject.java

📁 采用JAVA开发
💻 JAVA
字号:
package com.gctech.sms.vo;

import java.io.*;
import java.util.regex.*;
public class MoCommandObject implements Serializable {

	//数据库ID
	private String ID;
	//状态
	private int status;
	//业务处理类名
	private String className;
	//长代码
	private String longCode;
	//关键字
	private String keyWord;
	//级别
	private int level;
	//网关
	private int gateway;

	public String getID() {
		return ID;
	}
	public void setID(String ID) {
		this.ID = ID;
	}
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	public String getLongCode() {
		return longCode;
	}
	public void setLongCode(String longCode) {
		this.longCode = longCode;
	}
	public String getKeyWord() {
		return keyWord;
	}
	public void setKeyWord(String keyWord) {
		this.keyWord = keyWord;
	}
	public int getLevel() {
		return level;
	}
	public void setLevel(int level) {
		this.level = level;
	}
	private void writeObject(ObjectOutputStream oos) throws IOException {
		oos.defaultWriteObject();
	}
	private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
		ois.defaultReadObject();
	}
	public int getGateway() {
		return gateway;
	}
	public void setGateway(int gateway) {
		this.gateway = gateway;
	}

	Pattern p = null;
	boolean hasXLongCode = false;
	boolean hasXKeyWord = false;
	public void make() {
		StringBuffer sb = new StringBuffer();
		if (longCode == null)
			longCode = "";
		if (longCode.indexOf("*") != -1) {

			sb.append("(").append(longCode);
			sb.setLength(sb.length() - 1);
			sb.append("\\d*)");
			hasXLongCode = true;
		} else {
			sb.append("(").append(longCode).append(")");
		}
		sb.append(":");
		if (keyWord == null)
			keyWord = "";
		if (keyWord.indexOf("*") != -1) {
			sb.append("(").append(keyWord);
			sb.setLength(sb.length() - 1);
			sb.append(".*)");
			hasXKeyWord = true;
		} else {
			sb.append("(").append(keyWord).append(")");
		}
		p = Pattern.compile(sb.toString());

	}

	public boolean match(int gw, String longCode, String keyWord) {
		make();
		if (this.gateway != gw) {
			return false;
		}
		return p.matcher(new StringBuffer(longCode).append(":").append(keyWord)).matches();

	}

	public int compareTo(MoCommandObject c) {

		//比较优先级
		if (c.level < this.level)
			return 1;
		else if (c.level > this.level)
			return -1;
		else {
			//优先级相等,比较长代码精确优先
			if (c.hasXLongCode && !this.hasXLongCode)
				return 1;
			else if (!c.hasXLongCode && this.hasXLongCode)
				return -1;
			//同样精确度,则比较长度,长的优先
			else if (c.longCode.length() < this.longCode.length())
				return 1;
			else if (c.longCode.length() > this.longCode.length())
				return -1;
			else {

				//长代码相等,比较关键字
				if (c.hasXKeyWord && !this.hasXKeyWord)
					return 1;
				else if (!c.hasXKeyWord && this.hasXKeyWord)
					return -1;
				else if (c.keyWord.length() < this.keyWord.length())
					return 1;
				else if (c.keyWord.length() > this.keyWord.length())
					return -1;
				else
					return 0;
			}
		}

	}

	public boolean equals(Object parm1) {
		//网关,长代码,关键字
		if (parm1 instanceof MoCommandObject) {
			MoCommandObject that = (MoCommandObject) parm1;
			return (that.gateway == this.gateway)
				&& ((that.longCode == null && this.longCode == null) || that.longCode.equals(this.longCode))
				&& (("*".equals(this.keyWord)) || "*".equals(this.longCode) || this.keyWord.equals(that.keyWord));
		} else {
			return false;
		}
	}
	public int hashCode() {
		return super.hashCode();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -