1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.student.contract.model.test.source;
18
19 import java.io.Serializable;
20 import java.util.ArrayList;
21 import java.util.Arrays;
22 import java.util.List;
23
24 import javax.xml.bind.annotation.XmlAccessType;
25 import javax.xml.bind.annotation.XmlAccessorType;
26 import javax.xml.bind.annotation.XmlAnyElement;
27 import javax.xml.bind.annotation.XmlAttribute;
28 import javax.xml.bind.annotation.XmlElement;
29 import javax.xml.bind.annotation.XmlElementWrapper;
30 import javax.xml.bind.annotation.XmlType;
31
32 import org.kuali.student.contract.model.test.source.ModelBuilder;
33 import org.kuali.student.contract.model.test.source.SearchParam;
34 import org.w3c.dom.Element;
35
36
37
38
39
40
41
42
43 @XmlAccessorType(XmlAccessType.FIELD)
44 @XmlType(name = "SearchParamInfo", propOrder = {"key", "values", "_futureElements"})
45 public class SearchParamInfo implements SearchParam, Serializable {
46
47 private static final long serialVersionUID = 1L;
48 @XmlAttribute
49 private final String key;
50 @XmlElementWrapper(name="values")
51 @XmlElement(name="value")
52 private final List<String> values;
53 @XmlAnyElement
54 private final List<Element> _futureElements;
55
56
57 public SearchParamInfo() {
58 this.key = null;
59 this.values = null;
60 this._futureElements = null;
61 }
62
63 public SearchParamInfo(SearchParam infc) {
64 this.key = infc.getKey();
65 if (this.values == null) {
66 this.values = null;
67 } else {
68 this.values = new ArrayList(infc.getValues());
69 }
70 this._futureElements = null;
71 }
72
73 @Override
74 public List<String> getValues() {
75 return values;
76 }
77
78 @Override
79 public String getKey() {
80 return key;
81 }
82
83 public static class Builder implements ModelBuilder<SearchParamInfo>, SearchParam {
84
85 private String key;
86 private List<String> values;
87
88 public Builder() {}
89
90 public Builder(SearchParam searchInfo) {
91 this.key = searchInfo.getKey();
92 this.values = searchInfo.getValues();
93 }
94
95 public SearchParamInfo build () {
96 return new SearchParamInfo (this);
97 }
98
99 public String getKey() {
100 return key;
101 }
102
103 public void setKey(String key) {
104 this.key = key;
105 }
106
107 public List<String> getValues() {
108 return values;
109 }
110
111 public void setValues(List<String> values) {
112 this.values = values;
113 }
114
115
116
117
118
119
120 public Builder value(String value) {
121 this.values = Arrays.asList(value);
122 return this;
123 }
124 }
125 }