package org.infosec.ismp.model.db.status; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** * @author Rocky * @version create time:Sep 1, 2010 1:59:27 PM * */ public class Status implements Serializable { private static final long serialVersionUID = 3261750912506371988L; private final String nodeid; private final String ipAddr; private final String type;//数据库类型 private final int sessionNum; // Session数 private final int transactionNum ; // 事务数 private final double cacheHitRatio ; // Cache命中率 private final List<Workspace> workspaces ; // 表空间使用情况 private final double cpuBusyRatio; // CPU繁忙度 private final List<OracleDeadLock> oracleDeadLocks; // 死锁 private final List<OracleProcessMemory> oracleProcessMemories; // 进程内存使用情况 private final List<SqlserverDeadLock> sqlserverDeadLocks; // 死锁 private final List<SqlserverProcessMemory> sqlserverProcessMemories; // 进程内存使用情况 private Date createTime; // 创建时间 public static class Builder { private String nodeid = null; private String ipAddr = null; private String type = null; private int sessionNum = 0; private int transactionNum = 0; private double cacheHitRatio = 0.00; private List<Workspace> workspaces = new ArrayList<Workspace>(); private double cpuBusyRatio = 0.00; private List<OracleDeadLock> oracleDeadLocks = new ArrayList<OracleDeadLock>(); // 死锁 private List<OracleProcessMemory> oracleProcessMemories = new ArrayList<OracleProcessMemory>(); // 进程内存使用情况 private List<SqlserverDeadLock> sqlserverDeadLocks = new ArrayList<SqlserverDeadLock>(); // 死锁 private List<SqlserverProcessMemory> sqlserverProcessMemories = new ArrayList<SqlserverProcessMemory>(); // 进程内存使用情况 public Builder nodeid(String nodeid) { this.nodeid = nodeid; return this; } public Builder type(String type) { this.type = type; return this; } public Builder ipAddr(String ipAddr) { this.ipAddr = ipAddr; return this; } public Builder sessionNum(int val) { this.sessionNum = val; return this; } public Builder transactionNum(int val) { this.transactionNum = val; return this; } public Builder cacheHitRatio(double val) { this.cacheHitRatio = val; return this; } public Builder workspaces(List<Workspace> val) { this.workspaces = val; return this; } public Builder oracleProcessMemories(List<OracleProcessMemory> val) { this.oracleProcessMemories = val; return this; } public Builder oracleDeadLocks(List<OracleDeadLock> val) { this.oracleDeadLocks = val; return this; } public Builder cpuBusyRatio(double val) { this.cpuBusyRatio = val; return this; } public Builder sqlserverProcessMemories(List<SqlserverProcessMemory> val) { this.sqlserverProcessMemories = val; return this; } public Builder sqlserverDeadLocks(List<SqlserverDeadLock> val) { this.sqlserverDeadLocks = val; return this; } public Status build() { return new Status(this); } } private Status(Builder builder) { nodeid = builder.nodeid; ipAddr = builder.ipAddr; type = builder.type; sessionNum = builder.sessionNum; transactionNum = builder.transactionNum; cacheHitRatio = builder.cacheHitRatio; workspaces = builder.workspaces; oracleProcessMemories = builder.oracleProcessMemories; oracleDeadLocks = builder.oracleDeadLocks; sqlserverProcessMemories = builder.sqlserverProcessMemories; sqlserverDeadLocks = builder.sqlserverDeadLocks; cpuBusyRatio = builder.cpuBusyRatio; } public static long getSerialVersionUID() { return serialVersionUID; } public int getSessionNum() { return sessionNum; } public int getTransactionNum() { return transactionNum; } public double getCacheHitRatio() { return cacheHitRatio; } public List<Workspace> getWorkspaces() { return workspaces; } public String getNodeid(){ return nodeid; } public String getIpAddr() { return ipAddr; } public String getType() { return type; } public double getCpuBusyRatio() { return cpuBusyRatio; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public List<OracleDeadLock> getOracleDeadLocks() { return oracleDeadLocks; } public List<OracleProcessMemory> getOracleProcessMemories() { return oracleProcessMemories; } public List<SqlserverDeadLock> getSqlserverDeadLocks() { return sqlserverDeadLocks; } public List<SqlserverProcessMemory> getSqlserverProcessMemories() { return sqlserverProcessMemories; } public boolean equals(Object other) { if (!(other instanceof Status)) { return false; } Status rhs = (Status) other; return new EqualsBuilder().appendSuper(super.equals(other)).append( nodeid, rhs.nodeid).append( sessionNum, rhs.sessionNum).append(transactionNum, rhs.transactionNum).append(cacheHitRatio, rhs.cacheHitRatio) .append(workspaces, rhs.workspaces).append(cpuBusyRatio, rhs.cpuBusyRatio) .isEquals(); } public int hashCode() { return new HashCodeBuilder(61, 15).appendSuper(super.hashCode()) .append(nodeid).append(sessionNum).append(transactionNum) .append(cacheHitRatio).append(workspaces).append(cpuBusyRatio) .toHashCode(); } public String toString() { return new ToStringBuilder(this).appendSuper(super.toString()).append( "nodeid", nodeid).append( "sessionNum", sessionNum).append("transactionNum", transactionNum).append("cacheHitRatio", cacheHitRatio).append( "workspaces", workspaces).append("cpuBusyRatio", cpuBusyRatio).toString(); } }