1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.common.attribute.provider;
18
19 import java.util.ArrayList;
20 import java.util.Collection;
21 import java.util.Comparator;
22 import java.util.List;
23
24 import org.opensaml.xml.util.DatatypeHelper;
25
26 import edu.internet2.middleware.shibboleth.common.attribute.BaseAttribute;
27 import edu.internet2.middleware.shibboleth.common.attribute.encoding.AttributeEncoder;
28
29
30
31
32
33
34
35
36
37
38 public class BasicAttribute<ValueType> extends BaseAttribute<ValueType> implements Cloneable {
39
40
41 private String id;
42
43
44 private ArrayList<AttributeEncoder> encoders;
45
46
47 private Collection<ValueType> values;
48
49
50 private Comparator<ValueType> comparator;
51
52
53 public BasicAttribute() {
54 encoders = new ArrayList<AttributeEncoder>(3);
55 values = new ArrayList<ValueType>(5);
56 }
57
58
59
60
61
62
63 public BasicAttribute(String attributeId) {
64 id = DatatypeHelper.safeTrimOrNullString(attributeId);
65 encoders = new ArrayList<AttributeEncoder>();
66 values = new ArrayList<ValueType>(5);
67 }
68
69
70 public List<AttributeEncoder> getEncoders() {
71 return encoders;
72 }
73
74
75 public String getId() {
76 return id;
77 }
78
79
80
81
82
83
84 public void setId(String newID) {
85 id = newID;
86 }
87
88
89 public Comparator<ValueType> getValueComparator() {
90 return comparator;
91 }
92
93
94
95
96
97
98 public void setValueComparator(Comparator<ValueType> newComparator) {
99 comparator = newComparator;
100 }
101
102
103 public Collection<ValueType> getValues() {
104 return values;
105 }
106
107
108
109
110
111
112 public void setValues(Collection<ValueType> newValues) {
113 values = newValues;
114 }
115
116
117 public BasicAttribute<ValueType> clone() {
118 BasicAttribute<ValueType> newAttribute = new BasicAttribute<ValueType>();
119
120 newAttribute.setId(getId());
121
122 newAttribute.setValueComparator(this.getValueComparator());
123
124 newAttribute.getValues().addAll(getValues());
125
126 newAttribute.getEncoders().addAll(getEncoders());
127
128 return newAttribute;
129 }
130 }