package com.zy.common.HslCommunication.BasicFramework; /** * 系统的版本类 */ public class SystemVersion { /** * 根据格式化字符串的版本号初始化 * @param VersionString 格式化的字符串,例如:1.0.0或1.0.0.0503 */ public SystemVersion(String VersionString) { String[] temp = VersionString.split("\\."); if (temp.length >= 3) { m_MainVersion = Integer.parseInt(temp[0]); m_SecondaryVersion = Integer.parseInt(temp[1]); m_EditVersion = Integer.parseInt(temp[2]); if (temp.length >= 4) { m_InnerVersion = Integer.parseInt(temp[3]); } } } /** * 根据指定的数字实例化一个对象 * @param main 主版本 * @param sec 次版本 * @param edit 修订版 */ public SystemVersion(int main, int sec, int edit) { m_MainVersion = main; m_SecondaryVersion = sec; m_EditVersion = edit; } /** * 根据指定的数字实例化一个对象 * @param main 主版本 * @param sec 次版本 * @param edit 修订版 * @param inner 内部版本号 */ public SystemVersion(int main, int sec, int edit, int inner) { m_MainVersion = main; m_SecondaryVersion = sec; m_EditVersion = edit; m_InnerVersion = inner; } private int m_MainVersion = 2; /** * 主版本 * @return int数据 */ public int MainVersion() { return m_MainVersion; } private int m_SecondaryVersion = 0; /** * 次版本 * @return int数据 */ public int SecondaryVersion() { return m_SecondaryVersion; } private int m_EditVersion = 0; /** * 修订版 * @return int数据 */ public int EditVersion() { return m_EditVersion; } private int m_InnerVersion = 0; /** * 内部版本号,或者是版本号表示为年月份+内部版本的表示方式 * @return int数据 */ public int InnerVersion() { return m_InnerVersion; } /** * 根据格式化为支持返回的不同信息的版本号 * C返回1.0.0.0 * N返回1.0.0 * S返回1.0 * @param format 格式化信息 * @return 字符串数据 */ public String toString(String format) { if(format == "C") { return MainVersion()+"."+SecondaryVersion()+"."+EditVersion()+"."+InnerVersion(); } if(format == "N") { return MainVersion()+"."+SecondaryVersion()+"."+EditVersion(); } if(format == "S") { return MainVersion()+"."+SecondaryVersion(); } return toString(); } /** * 版本信息 * @return 字符串数据 */ @Override public String toString() { if(InnerVersion() == 0) { return MainVersion()+"."+SecondaryVersion()+"."+EditVersion(); } else { return MainVersion()+"."+SecondaryVersion()+"."+EditVersion()+"."+InnerVersion(); } } /** * 判断版本是否一致 * @param sv 对比的版本 * @return 是否一致 */ public boolean IsSameVersion(SystemVersion sv) { if (this.m_MainVersion != sv.m_MainVersion) { return false; } if (this.m_SecondaryVersion != sv.m_SecondaryVersion) { return false; } if (this.m_EditVersion != sv.m_EditVersion) { return false; } if (this.m_InnerVersion != sv.m_InnerVersion) { return false; } return true; } /** * 判断是不是小于指定的版本 * @param sv 对比的版本 * @return 是否小于 */ public boolean IsSmallerThan(SystemVersion sv) { if (this.m_MainVersion < sv.m_MainVersion) { return true; } else if(this.m_MainVersion > sv.m_MainVersion) { return false; } if (this.m_SecondaryVersion < sv.m_SecondaryVersion) { return true; } else if (this.m_SecondaryVersion > sv.m_SecondaryVersion) { return false; } if (this.m_EditVersion < sv.m_EditVersion) { return true; } else if (this.m_EditVersion > sv.m_EditVersion) { return false; } if (this.m_InnerVersion < sv.m_InnerVersion) { return true; } else if (this.m_InnerVersion > sv.m_InnerVersion) { return false; } return false; } }