+ class DeviceVersion implements Comparable<DeviceVersion> {\r
+ private static final long serialVersionUID = -7251276716604249440L;\r
+ private int svMajorVersion = 0;\r
+ private int svMinorVersion = 0;\r
+ private int svPatchVersion = 0;\r
+ private boolean isGenericVersion = false;\r
+\r
+ public DeviceVersion(String swVersion, String hwVersion) {\r
+ super();\r
+ setSwVersion(swVersion);\r
+ this.hwVersion = hwVersion;\r
+ }\r
+\r
+ public String getSwVersion() {\r
+ return svMajorVersion + "." + svMinorVersion + "." + svPatchVersion;\r
+ }\r
+\r
+ public void setSwVersion(String swVersion) {\r
+ // TODO: conversion to integers\r
+\r
+ if (swVersion.indexOf(".") > 0) {\r
+ String[] verArray = swVersion.split("\\.");\r
+\r
+\r
+ for (int i = 0; i < verArray.length; i++) {\r
+\r
+ if (verArray[i].equals("*")) {\r
+ verArray[i] = "0";\r
+ }\r
+ }\r
+ svMajorVersion = Integer.parseInt(verArray[0]);\r
+ svMinorVersion = Integer.parseInt(verArray[1]);\r
+ svPatchVersion = Integer.parseInt(verArray[2]);\r
+\r
+ } else if (swVersion.indexOf("x") > 0) {\r
+ swVersion = "*";\r
+ } else if (swVersion.equals("*")) {\r
+ isGenericVersion = true;\r
+ }\r
+ }\r
+\r
+ public String getHwVersion() {\r
+ return hwVersion;\r
+ }\r
+\r
+ public void setHwVersion(String hwVersion) {\r
+ this.hwVersion = hwVersion;\r
+ }\r
+\r
+ private String hwVersion;\r
+\r
+ public int getSvMajorVersion() {\r
+ return svMajorVersion;\r
+ }\r
+\r
+ public void setSvMajorVersion(int svMajorVersion) {\r
+ this.svMajorVersion = svMajorVersion;\r
+ }\r
+\r
+ public int getSvMinorVersion() {\r
+ return svMinorVersion;\r
+ }\r
+\r
+ public void setSvMinorVersion(int svMinorVersion) {\r
+ this.svMinorVersion = svMinorVersion;\r
+ }\r
+\r
+ public int getSvPatchVersion() {\r
+ return svPatchVersion;\r
+ }\r
+\r
+ public void setSvPatchVersion(int svPatchVersion) {\r
+ this.svPatchVersion = svPatchVersion;\r
+ }\r
+\r
+ public boolean isGenericVersion() {\r
+ return isGenericVersion;\r
+ }\r
+\r
+ public void setGenericVersion(boolean isGenericVersion) {\r
+ this.isGenericVersion = isGenericVersion;\r
+ }\r
+\r
+ @Override\r
+ public int compareTo(DeviceVersion o) {\r
+\r
+ if (svMajorVersion != o.svMajorVersion) {\r
+ return (svMajorVersion - o.svMajorVersion);\r
+ } else if (svMinorVersion != o.svMinorVersion) {\r
+ return svMinorVersion - o.svMinorVersion;\r
+ } else {\r
+ return svPatchVersion - o.svPatchVersion;\r
+ }\r
+ }\r
+ }\r
+\r