1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.security.visibility;
19
20 import java.util.ArrayList;
21 import java.util.Collections;
22 import java.util.List;
23
24 import org.apache.hadoop.classification.InterfaceAudience;
25 import org.apache.hadoop.classification.InterfaceStability;
26
27
28
29
30
31 @InterfaceAudience.Public
32 @InterfaceStability.Stable
33 public class Authorizations {
34
35 private List<String> labels;
36 public Authorizations(String... labels) {
37 this.labels = new ArrayList<String>(labels.length);
38 for (String label : labels) {
39 validateLabel(label);
40 this.labels.add(label);
41 }
42 }
43
44 private void validateLabel(String label) {
45 if (!VisibilityLabelsValidator.isValidLabel(label)) {
46 throw new IllegalArgumentException("Invalid authorization label : " + label
47 + ". Authorizations cannot contain '(', ')' ,'&' ,'|', '!'" + " and cannot be empty");
48 }
49 }
50
51 public Authorizations(List<String> labels) {
52 for (String label : labels) {
53 validateLabel(label);
54 }
55 this.labels = labels;
56 }
57
58 public List<String> getLabels() {
59 return Collections.unmodifiableList(this.labels);
60 }
61
62 @Override
63 public String toString() {
64 StringBuilder sb = new StringBuilder();
65 sb.append("[ ");
66 for (String label: labels) {
67 sb.append(label);
68 sb.append(' ');
69 }
70 sb.append(']');
71 return sb.toString();
72 }
73
74 }