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

📄 blackentity.java

📁 短信开发用于文件交换处理转发的类模块
💻 JAVA
字号:
package com.pub.backserver.blackList;

import org.apache.log4j.*;
import org.apache.mina.common.ByteBuffer;
import com.pub.backserver.EntityHead;

/**
 * 黑名单方案:
 *
 * 1 建立黑名单服务器,使用berkeleyDB管理黑名单
 * 2 服务器 与数据库同步方案:服务器记录同步时间;数据库记录修改时间;增量同步;数据库要记录删除标志
 *
 */

public class BlackEntity extends EntityHead {

    public static final int BT_REVOKE = 0; //普通黑名单用户
    public static final int BT_BADDY = 1; //恶意黑名单用户
    public static final int BT_LEADER = 2; //领导用户
    public static final int BT_NORMAL = 3; //常规用户

    private static Logger log = Logger.getLogger(BlackEntity.class);
    private static int PackageLength = 14;
    byte flag;
    byte low;
    int hi;

    public BlackEntity(){
        super(PackageLength);
    }

    //-64~63
    public int getType() {
        int tmp = (0x7f & flag) << 25;
        return (tmp >> 25);
    }

    public void setType(int t) {
        flag &= 0x80; //clear
        flag |= t & 0x7f; //set
    }

    public String getPhone() {
        long tmp = hi;
        tmp <<= 8;
        tmp |= (low & 0xff);
        return (((flag & 0x80) == 0) ? "0" : "") + tmp;
    }

    public void setPhone(String phone) {
        if (phone == null || phone.length() < 1)
            return;
        flag &= 0x7f; //
        if (phone.charAt(0) != '0')
            flag |= 0x80;

        long tmp = 0;
        for (int i = 0; i < phone.length(); i++) {
            tmp *= 10;
            tmp += phone.charAt(i) - '0';
        }

        hi = (int) ((tmp & 0xffffffff00L) >> 8);
        low = (byte) (tmp & 0xff);
    }

    public String toString() {
        StringBuilder sb = new StringBuilder(50);
        sb.append("phone=").append(getPhone()).append(' ');
        sb.append("type=").append(getType());
        return sb.toString();
    }

    public static void main(String[] args) {
        BlackEntity br = new BlackEntity();
        br.setPhone("13400000000");
        br.setType(1);
        System.out.println(br.toString());
//    br.setType(0);
//    System.out.println(br.toString());
//    br.setPhone("08314730123");
//    br.setType(2);
//    System.out.println(br.toString());
//    br.setType(63);
//    br.setPhone("01065188989");
//    System.out.println(br.toString());
//    br.setPhone("02150807749");
//    br.setType(-64);
//    System.out.println(br.toString());

        br.increase();
        System.out.println(br.toString());
        for (int i = 0; i < 256; i++)
            br.increase();
        System.out.println(br.toString());
        for (int i = 0; i < 0x4fff; i++)
            br.increase();
        System.out.println(br.toString());
    }

    public byte getFlag() {
        return flag;
    }

    public int getHi() {
        return hi;
    }

    public byte getLow() {
        return low;
    }

    public void setLow(byte low) {
        this.low = low;
    }

    public void setHi(int hi) {
        this.hi = hi;
    }

    public void setFlag(byte flag) {
        this.flag = flag;
    }

    public void increase() {
        if (this.low == (byte) 0xff) {
            this.hi++;
            low = 0;
        } else
            low++;
    }

    public int writePackage(ByteBuffer out) throws Exception {
        super.writePackage(out);
        out.putInt(hi);
        out.put(low);
        out.put(flag);
        return 0;
    }

    public int readPackage(ByteBuffer in) throws Exception {
        super.readPackage(in);
        hi = in.getInt();
        low = in.get();
        flag = in.get();
        return 0;
    }

    public int writePackage(java.nio.ByteBuffer out) throws Exception {
        super.writePackage(out);
        out.putInt(hi);
        out.put(low);
        out.put(flag);
        return 0;
    }

    public int readPackage(java.nio.ByteBuffer in) throws Exception {
        super.readPackage(in);
        hi = in.getInt();
        low = in.get();
        flag = in.get();
        return 0;
    }

    public int getHeaderLength() {
        return HeaderLength;
    }

    public int getPackageLength() {
        return PackageLength;
    }

}

⌨️ 快捷键说明

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