/** * ======================================================== * 北京五八信息技术有限公司技术中心开发一部 * 日 期:2011-4-26 下午05:27:24 * 作 者:张纪豪 * 版 本:1.0.0 * ======================================================== * 修订日期 修订人 描述 * */ package org.howsun.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 功能描述: * * @author howsun(howsun.zhang@google.com) * @version 1.0.0 */ public class VersionGenerator { public static final Pattern PATTERN = Pattern.compile("(\\d{1,2})\\.(\\d{1,2})\\.(\\d{1,2})(.*$)"); /**主版本**/ public static final byte MAJOR_VERSION = 0; /**次版本**/ public static final byte MINOR_VERSION = 1; /**增量版本**/ public static final byte INCREMENTAL_VERSION = 2; private byte[] versions = { 0, 0, 1 }; public VersionGenerator(){ } public VersionGenerator(byte[] versions){ this.versions = versions; } public VersionGenerator(String version){ parse(version); } /** * 指定增量 * @param posit */ public void ascending(byte posit){ versions[posit]++; for (int i = versions.length - 1; i >= 0; i--) { if(versions.length == posit){ versions[i]++; } if(i > 0 && versions[i] >= 20){ versions[i] -= 20; versions[i-1]+=1; } } } /** * 从增量版本递增升级 */ public void ascending(){ ascending(INCREMENTAL_VERSION); } private void parse(String version){ Matcher m = PATTERN.matcher(version); if(m.matches()){ int size = m.groupCount(); for (int i = 1; i <= size && i < 4; i++) { versions[i-1] = Byte.parseByte(m.group(i)); } } } public byte[] getVersions() { return versions; } public String getVersion() { return this.toString(); } @Override public String toString() { String version = String.valueOf(versions[0]); for (int i = 1; i < versions.length; i++) { version += "." + versions[i]; } return version; } public static void main(String[] args) { VersionGenerator v = new VersionGenerator("0.3.12"); v.ascending(); System.out.println(v.toString()); } }