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