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 public class BasicAttribute<ValueType> extends BaseAttribute<ValueType> implements Cloneable {
35
36
37 private String id;
38
39
40 private ArrayList<AttributeEncoder> encoders;
41
42
43 private Collection<ValueType> values;
44
45
46 private Comparator<ValueType> comparator;
47
48
49 public BasicAttribute() {
50 encoders = new ArrayList<AttributeEncoder>(3);
51 values = new ArrayList<ValueType>(5);
52 }
53
54
55
56
57
58
59 public BasicAttribute(String attributeId) {
60 id = DatatypeHelper.safeTrimOrNullString(attributeId);
61 encoders = new ArrayList<AttributeEncoder>();
62 values = new ArrayList<ValueType>(5);
63 }
64
65
66 public List<AttributeEncoder> getEncoders() {
67 return encoders;
68 }
69
70
71 public String getId() {
72 return id;
73 }
74
75
76
77
78
79
80 public void setId(String newID) {
81 id = newID;
82 }
83
84
85 public Comparator<ValueType> getValueComparator() {
86 return comparator;
87 }
88
89
90
91
92
93
94 public void setValueComparator(Comparator<ValueType> newComparator) {
95 comparator = newComparator;
96 }
97
98
99 public Collection<ValueType> getValues() {
100 return values;
101 }
102
103
104
105
106
107
108 public void setValues(Collection<ValueType> newValues) {
109 values = newValues;
110 }
111
112
113 public BasicAttribute<ValueType> clone() {
114 BasicAttribute<ValueType> newAttribute = new BasicAttribute<ValueType>();
115
116 newAttribute.setId(getId());
117
118 newAttribute.setValueComparator(this.getValueComparator());
119
120 newAttribute.getValues().addAll(getValues());
121
122 newAttribute.getEncoders().addAll(getEncoders());
123
124 return newAttribute;
125 }
126 }