]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/directory/RoleContent.java
Introduce CMS JShell
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / directory / RoleContent.java
1 package org.argeo.cms.acr.directory;
2
3 import java.util.Dictionary;
4
5 import javax.xml.namespace.QName;
6
7 import org.argeo.api.acr.Content;
8 import org.argeo.api.acr.ContentName;
9 import org.argeo.api.acr.spi.ProvidedSession;
10 import org.argeo.api.cms.directory.UserDirectory;
11 import org.osgi.service.useradmin.Role;
12
13 class RoleContent extends AbstractDirectoryContent {
14
15 private HierarchyUnitContent parent;
16 private Role role;
17
18 public RoleContent(ProvidedSession session, DirectoryContentProvider provider, HierarchyUnitContent parent,
19 Role role) {
20 super(session, provider);
21 this.parent = parent;
22 this.role = role;
23 }
24
25 @Override
26 Dictionary<String, Object> doGetProperties() {
27 return role.getProperties();
28 }
29
30 @Override
31 public QName getName() {
32 String name = ((UserDirectory) parent.getHierarchyUnit().getDirectory()).getRoleSimpleName(role);
33 return new ContentName(name);
34 }
35
36 @Override
37 public Content getParent() {
38 return parent;
39 }
40
41 @SuppressWarnings("unchecked")
42 @Override
43 public <A> A adapt(Class<A> clss) {
44 if (Role.class.isAssignableFrom(clss))
45 return (A) role;
46 return super.adapt(clss);
47 }
48
49 }