rsanchez
2015-09-22 7d8713e88c7872b195f7e4d02ac4812536ae196b
src/main/java/net/curisit/securis/beans/RequestBean.java
....@@ -2,9 +2,7 @@
22
33 import java.util.Collections;
44 import java.util.List;
5
-
6
-import net.curisit.securis.SeCurisException;
7
-import net.curisit.securis.utils.JsonUtils;
5
+import java.util.Objects;
86
97 import com.fasterxml.jackson.annotation.JsonAutoDetect;
108 import com.fasterxml.jackson.annotation.JsonInclude;
....@@ -14,9 +12,11 @@
1412 @JsonAutoDetect
1513 @JsonInclude(Include.NON_NULL)
1614 @JsonPropertyOrder({
17
- "licenseTypeCode", "packCode", "arch", "osName", "customerCode", "macAddresses", "crcLogo"
15
+ "appCode", "activationCode", "licenseTypeCode", "packCode", "arch", "osName", "customerCode", "macAddresses", "crcLogo"
1816 })
1917 public class RequestBean {
18
+ private String appCode;
19
+ private String activationCode;
2020 private String customerCode;
2121 private String crcLogo;
2222 private String licenseTypeCode;
....@@ -24,6 +24,14 @@
2424 private List<String> macAddresses;
2525 private String osName;
2626 private String arch;
27
+
28
+ public String getActivationCode() {
29
+ return activationCode;
30
+ }
31
+
32
+ public void setActivationCode(String activationCode) {
33
+ this.activationCode = activationCode;
34
+ }
2735
2836 public String getCustomerCode() {
2937 return customerCode;
....@@ -48,9 +56,9 @@
4856 public void setMacAddresses(List<String> macAddresses) {
4957 // We need to be sure that the same mac addresses are always shown in
5058 // the same order, to generate a valid hash
51
- if (macAddresses != null) {
52
- Collections.<String> sort(macAddresses);
53
- }
59
+ if (macAddresses != null) {
60
+ Collections.<String> sort(macAddresses);
61
+ }
5462 this.macAddresses = macAddresses;
5563 }
5664
....@@ -71,13 +79,21 @@
7179 }
7280
7381 public boolean match(RequestBean rb) {
82
+ boolean result = true;
83
+ if (activationCode != null) {
84
+ result = result && activationCode.equals(rb.activationCode);
85
+ // appCode is optional
86
+ result = result && (appCode == null || appCode.equals(rb.appCode));
87
+ } else {
88
+ // If activationCode exists then we ignore other license identifiers
89
+ result = result && licenseTypeCode != null && licenseTypeCode.equals(rb.licenseTypeCode);
90
+ result = result && (customerCode != null && customerCode.equals(rb.customerCode));
91
+ result = result && (packCode != null && packCode.equals(rb.packCode));
92
+ }
7493
75
- boolean result = licenseTypeCode != null && licenseTypeCode.equals(rb.licenseTypeCode);
76
- result = result && (packCode != null && packCode.equals(rb.packCode));
7794 result = result && (arch != null && arch.equals(rb.arch));
7895 // CRC Logo validation is optional, only if request file contains it
7996 result = result && (crcLogo == null || crcLogo.equals(rb.crcLogo));
80
- result = result && (customerCode != null && customerCode.equals(rb.customerCode));
8197 result = result && (osName != null && osName.equals(rb.osName));
8298 result = result && (macAddresses != null && rb.macAddresses != null) && anyMacIsIncluded(rb.getMacAddresses());
8399
....@@ -95,6 +111,8 @@
95111 @Override
96112 public int hashCode() {
97113 int code = 0;
114
+ code += appCode != null ? appCode.hashCode() : 0;
115
+ code += activationCode != null ? activationCode.hashCode() : 0;
98116 code += licenseTypeCode != null ? licenseTypeCode.hashCode() : 0;
99117 code += arch != null ? arch.hashCode() : 0;
100118 code += crcLogo != null ? crcLogo.hashCode() : 0;
....@@ -111,14 +129,17 @@
111129 if (!(obj instanceof RequestBean))
112130 return false;
113131 RequestBean rb = (RequestBean) obj;
114
- boolean result = (rb.licenseTypeCode == null && licenseTypeCode == null)
115
- || (licenseTypeCode != null && licenseTypeCode.equals(rb.licenseTypeCode));
116
- result = result && ((rb.packCode == null && packCode == null) || (packCode != null && packCode.equals(rb.arch)));
117
- result = result && ((rb.arch == null && arch == null) || (arch != null && arch.equals(rb.arch)));
118
- result = result && ((rb.crcLogo == null && crcLogo == null) || (crcLogo != null && crcLogo.equals(rb.crcLogo)));
119
- result = result && ((rb.customerCode == null && customerCode == null) || (customerCode != null && customerCode.equals(rb.customerCode)));
120
- result = result && ((rb.osName == null && osName == null) || (osName != null && osName.equals(rb.osName)));
121
- result = result && ((rb.macAddresses == null && macAddresses == null) || (macAddresses != null && macAddresses.equals(rb.macAddresses)));
132
+
133
+ boolean result = true;
134
+ result = result && Objects.equals(appCode, rb.appCode);
135
+ result = result && Objects.equals(activationCode, rb.activationCode);
136
+ result = result && Objects.equals(licenseTypeCode, rb.licenseTypeCode);
137
+ result = result && Objects.equals(packCode, rb.packCode);
138
+ result = result && Objects.equals(arch, rb.arch);
139
+ result = result && Objects.equals(crcLogo, rb.crcLogo);
140
+ result = result && Objects.equals(customerCode, rb.customerCode);
141
+ result = result && Objects.equals(osName, rb.osName);
142
+ result = result && Objects.equals(macAddresses, rb.macAddresses);
122143 return result;
123144 }
124145
....@@ -138,13 +159,11 @@
138159 this.licenseTypeCode = licenseTypeCode;
139160 }
140161
141
- public static void main(String[] args) {
142
- String requestData = "{\n \"licenseTypeCode\": \"CI01\",\n \"packCode\": \"CIBP01\",\n \"arch\": \"amd64\",\n \"osName\": \"Windows Server 2012\",\n \"customerCode\": \"BP01\",\n \"macAddresses\": [\n \"02-71-1A-0E-5D-7C\"\n ],\n \"crcLogo\": \"153e09683eaa26d23c951f6605af5f874b533a917f73681e3e0a1f175aae3981\"\n}";
143
- try {
144
- JsonUtils.json2object(requestData, RequestBean.class);
145
- } catch (SeCurisException e) {
146
- // TODO Auto-generated catch block
147
- e.printStackTrace();
148
- }
162
+ public String getAppCode() {
163
+ return appCode;
164
+ }
165
+
166
+ public void setAppCode(String appCode) {
167
+ this.appCode = appCode;
149168 }
150169 }