1 /**
2 * Portions of this software was developed by employees of the National Institute
3 * of Standards and Technology (NIST), an agency of the Federal Government and is
4 * being made available as a public service. Pursuant to title 17 United States
5 * Code Section 105, works of NIST employees are not subject to copyright
6 * protection in the United States. This software may be subject to foreign
7 * copyright. Permission in the United States and in foreign countries, to the
8 * extent that NIST may hold copyright, to use, copy, modify, create derivative
9 * works, and distribute this software and its documentation without fee is hereby
10 * granted on a non-exclusive basis, provided that this notice and disclaimer
11 * of warranty appears in all copies.
12 *
13 * THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER
14 * EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY
15 * THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM
17 * INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE
18 * SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT
19 * SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT,
20 * INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM,
21 * OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY,
22 * CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR
23 * PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT
24 * OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.
25 */
26
27 package gov.nist.secauto.swid.builder.resource.firmware;
28
29 import gov.nist.secauto.swid.builder.util.Util;
30
31 import java.util.Objects;
32
33 public class DeviceIdentifier {
34 private final String vendor;
35 private String type;
36 private final String model;
37 private String clazz;
38 private String rfc4122;
39 private byte[] ieee8021ar;
40
41 /**
42 * Construct a new device identifier.
43 *
44 * @param vendor
45 * the device vendor string
46 * @param model
47 * the device model string
48 */
49 public DeviceIdentifier(String vendor, String model) {
50 super();
51 Util.requireNonEmpty(vendor, "vendor");
52 Util.requireNonEmpty(vendor, "model");
53 this.vendor = vendor;
54 this.model = model;
55 }
56
57 /**
58 * Retrieve the vendor string.
59 *
60 * @return the vendor
61 */
62 public String getVendor() {
63 return vendor;
64 }
65
66 /**
67 * Retrieve the type string.
68 *
69 * @return the type
70 */
71 public String getType() {
72 return type;
73 }
74
75 /**
76 * Set the type.
77 *
78 * @param type
79 * the type to set
80 */
81 public void setType(String type) {
82 Util.requireNonEmpty(type);
83 this.type = type;
84 }
85
86 /**
87 * Retrieve the model string.
88 *
89 * @return the model
90 */
91 public String getModel() {
92 return model;
93 }
94
95 /**
96 * Retrieve the class string.
97 *
98 * @return the clazz
99 */
100 public String getClazz() {
101 return clazz;
102 }
103
104 /**
105 * Set the class string.
106 *
107 * @param clazz
108 * the clazz to set
109 */
110 public void setClazz(String clazz) {
111 Util.requireNonEmpty(clazz);
112 this.clazz = clazz;
113 }
114
115 /**
116 * @return the rfc4122
117 */
118 public String getRfc4122() {
119 return rfc4122;
120 }
121
122 /**
123 * @param rfc4122
124 * the rfc4122 to set
125 */
126 public void setRfc4122(String rfc4122) {
127 Util.requireNonEmpty(rfc4122);
128 this.rfc4122 = rfc4122;
129 }
130
131 /**
132 * @return the ieee8021ar
133 */
134 public byte[] getIeee8021ar() {
135 return ieee8021ar;
136 }
137
138 /**
139 * @param ieee8021ar
140 * the ieee8021ar to set
141 */
142 public void setIeee8021ar(byte[] ieee8021ar) {
143 Objects.requireNonNull(ieee8021ar, "ieee8021ar");
144 this.ieee8021ar = ieee8021ar;
145 }
146
147 }