1 package org.kuali.common.util.system;
2
3 import org.kuali.common.util.build.AwesomeBuilder;
4 import org.kuali.common.util.validate.IdiotProofImmutable;
5
6 @IdiotProofImmutable
7 public final class Specification {
8
9 private final String vendor;
10 private final String version;
11 private final String name;
12
13 private Specification(Builder builder) {
14 this.vendor = builder.vendor;
15 this.version = builder.version;
16 this.name = builder.name;
17 }
18
19 public static Builder builder() {
20 return new Builder();
21 }
22
23 public static class Builder extends AwesomeBuilder<Specification> {
24
25 private String vendor;
26 private String version;
27 private String name;
28
29 public Builder vendor(String vendor) {
30 this.vendor = vendor;
31 return this;
32 }
33
34 public Builder version(String version) {
35 this.version = version;
36 return this;
37 }
38
39 public Builder name(String name) {
40 this.name = name;
41 return this;
42 }
43
44 @Override
45 public Specification getInstance() {
46 return new Specification(this);
47 }
48
49 public String getVersion() {
50 return version;
51 }
52
53 public void setVersion(String version) {
54 this.version = version;
55 }
56
57 public String getVendor() {
58 return vendor;
59 }
60
61 public void setVendor(String vendor) {
62 this.vendor = vendor;
63 }
64
65 public String getName() {
66 return name;
67 }
68
69 public void setName(String name) {
70 this.name = name;
71 }
72
73 }
74
75 public String getVersion() {
76 return version;
77 }
78
79 public String getVendor() {
80 return vendor;
81 }
82
83 public String getName() {
84 return name;
85 }
86
87 }