📄 mocommandobject.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 + -