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.resolver.provider.attributeDefinition;
19
20 import java.util.List;
21 import java.util.Locale;
22 import java.util.Map;
23
24 import edu.internet2.middleware.shibboleth.common.attribute.BaseAttribute;
25 import edu.internet2.middleware.shibboleth.common.attribute.encoding.AttributeEncoder;
26 import edu.internet2.middleware.shibboleth.common.attribute.resolver.AttributeResolutionException;
27 import edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.ShibbolethResolutionContext;
28
29
30
31
32
33 public class ContextualAttributeDefinition implements AttributeDefinition {
34
35
36 private AttributeDefinition definition;
37
38
39 private BaseAttribute attribute;
40
41
42
43
44
45
46 public ContextualAttributeDefinition(AttributeDefinition newDefinition) {
47 definition = newDefinition;
48 }
49
50
51 public boolean equals(Object obj) {
52 return definition.equals(obj);
53 }
54
55
56 public List<AttributeEncoder> getAttributeEncoders() {
57 return definition.getAttributeEncoders();
58 }
59
60
61 public List<String> getDependencyIds() {
62 return definition.getDependencyIds();
63 }
64
65
66 public Map<Locale, String> getDisplayDescriptions() {
67 return definition.getDisplayDescriptions();
68 }
69
70
71 public Map<Locale, String> getDisplayNames() {
72 return definition.getDisplayNames();
73 }
74
75
76 public String getId() {
77 return definition.getId();
78 }
79
80
81 public int hashCode() {
82 return definition.hashCode();
83 }
84
85
86 public boolean isDependencyOnly() {
87 return definition.isDependencyOnly();
88 }
89
90
91 public BaseAttribute resolve(ShibbolethResolutionContext resolutionContext) throws AttributeResolutionException {
92 if (attribute == null) {
93 attribute = definition.resolve(resolutionContext);
94 }
95
96 return attribute;
97 }
98
99
100 public void validate() throws AttributeResolutionException {
101 definition.validate();
102 }
103 }