]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - osgi/useradmin/AggregatingAuthorization.java
1 package org
.argeo
.osgi
.useradmin
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Arrays
;
5 import java
.util
.Collection
;
6 import java
.util
.Collections
;
9 import org
.osgi
.service
.useradmin
.Authorization
;
11 class AggregatingAuthorization
implements Authorization
{
12 private final String name
;
13 private final String displayName
;
14 private final List
<String
> systemRoles
;
15 private final List
<String
> roles
;
17 public AggregatingAuthorization(String name
, String displayName
,
18 Collection
<String
> systemRoles
, String
[] roles
) {
20 this.displayName
= displayName
;
21 this.systemRoles
= Collections
.unmodifiableList(new ArrayList
<String
>(
23 this.roles
= Collections
.unmodifiableList(Arrays
.asList(roles
));
27 public String
getName() {
32 public boolean hasRole(String name
) {
33 if (systemRoles
.contains(name
))
35 if (roles
.contains(name
))
41 public String
[] getRoles() {
42 int size
= systemRoles
.size() + roles
.size();
43 List
<String
> res
= new ArrayList
<String
>(size
);
44 res
.addAll(systemRoles
);
46 return res
.toArray(new String
[size
]);
50 public int hashCode() {
52 return super.hashCode();
53 return name
.hashCode();
57 public boolean equals(Object obj
) {
58 if (!(obj
instanceof Authorization
))
60 Authorization that
= (Authorization
) obj
;
62 return that
.getName() == null;
63 return name
.equals(that
.getName());
67 public String
toString() {