Hop.java 3.57 KB
package com.sitech.ismp.coll.link;

import com.sitech.util.JSONUtil;
import net.sf.json.JSONObject;

import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;

/**
 * Created with IntelliJ IDEA.
 * User: Linxc
 * Date: 14-3-18
 * Time: 下午12:11
 * To change this template use File | Settings | File Templates.
 */
public class Hop {
    private String linkId;
    private int seq;
    private String ipAddr;
    private String devId;

    /** 丢包率 */
    private String packetLoss;

    private String minTime;
    private String avgTime;
    private String maxTime;

    public Hop(String linkId, JSONObject obj) {
        this.linkId = linkId;
        this.seq = Integer.parseInt(String.valueOf(obj.get("SEQ_NO")));
        this.ipAddr = String.valueOf(obj.get("IP_ADDR"));
        this.devId = String.valueOf(obj.get("DEVICE_ID"));
    }

    public Hop() {

    }

    @Override
    public String toString() {
        return JSONUtil.toJSON(this);
    }

    public Hop(List<String> list) {
        for (String line : list) {
            if (line.indexOf("SEQ") >= 0) {
                this.seq = Integer.parseInt(line.split("=")[1].trim());
                continue;
            } else if (line.indexOf("DEVICE_ID=") >= 0) {
                this.devId = line.split("=")[1].trim();
                continue;
            } else if (line.indexOf("packets transmitted") >= 0) {
                // 丢包率
                String[] lostPacketsArr = line.trim().split(",");
                for (String part : lostPacketsArr) {
                    if (part.trim().indexOf("packet loss") > 0) {
                        String[] lostArr = part.trim().split("%");
                        this.packetLoss = lostArr[0].trim();
                    }
                }
                continue;
            } else if (line.indexOf("min/avg/max") >= 0) {
                String[] temp = split(line, 3).trim().split("/");
                this.minTime = temp[0].trim();
                this.avgTime = temp[1].trim();
                this.maxTime = temp[2].trim();
                continue;
            }
        }
    }

    public String split(String str, int pos) {
        StringTokenizer st = new StringTokenizer(str);
        Vector<String> values = new Vector<String>();
        while (st.hasMoreTokens()) {
            values.add(st.nextToken());
        }
        if (pos >= 0 && pos < values.size()) {
            return values.elementAt(pos);
        }
        return "";
    }

    public String getLinkId() {
        return linkId;
    }

    public void setLinkId(String linkId) {
        this.linkId = linkId;
    }

    public int getSeq() {
        return seq;
    }

    public void setSeq(int seq) {
        this.seq = seq;
    }

    public String getIpAddr() {
        return ipAddr;
    }

    public void setIpAddr(String ipAddr) {
        this.ipAddr = ipAddr;
    }

    public String getDevId() {
        return devId;
    }

    public void setDevId(String devId) {
        this.devId = devId;
    }

    public String getPacketLoss() {
        return packetLoss;
    }

    public void setPacketLoss(String packetLoss) {
        this.packetLoss = packetLoss;
    }

    public String getMinTime() {
        return minTime;
    }

    public void setMinTime(String minTime) {
        this.minTime = minTime;
    }

    public String getAvgTime() {
        return avgTime;
    }

    public void setAvgTime(String avgTime) {
        this.avgTime = avgTime;
    }

    public String getMaxTime() {
        return maxTime;
    }

    public void setMaxTime(String maxTime) {
        this.maxTime = maxTime;
    }
}