1
2
3
4
5
6
7
8
9 package org.kuali.student.contract.model.test.source;
10
11 import java.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import javax.xml.bind.annotation.XmlElement;
16 import javax.xml.bind.annotation.XmlTransient;
17
18 import org.kuali.student.contract.model.test.source.Attribute;
19 import org.kuali.student.contract.model.test.source.HasAttributes;
20
21 @SuppressWarnings("serial")
22 @XmlTransient
23 public abstract class HasAttributesInfo implements HasAttributes, Serializable {
24
25 @XmlElement
26 protected final List<AttributeInfo> attributes;
27
28 protected HasAttributesInfo() {
29 attributes = null;
30 }
31
32 protected HasAttributesInfo(HasAttributes builder) {
33 attributes = new ArrayList<AttributeInfo>();
34
35 AttributeInfo.Builder attBuilder = new AttributeInfo.Builder();
36 for (Attribute att : builder.getAttributes()) {
37 attBuilder.setKey(att.getKey());
38 attBuilder.setValue(att.getValue());
39 attBuilder.setId(att.getId());
40 attributes.add(attBuilder.build());
41 }
42 }
43
44
45
46
47 @Override
48 public List<AttributeInfo> getAttributes() {
49 return attributes;
50 }
51
52 public static class Builder implements HasAttributes {
53 private List<? extends Attribute> attributes = new ArrayList<AttributeInfo>();
54
55 public Builder() {}
56
57 public Builder(HasAttributes hasAtts) {
58 this.attributes = hasAtts.getAttributes();
59 }
60
61 @Override
62 public List<? extends Attribute> getAttributes() {
63 return attributes;
64 }
65
66 public void setAttributes(List<? extends Attribute> attributes) {
67 this.attributes = attributes;
68 }
69 }
70 }