public static CmisACLCapabilityType convert(AclCapabilities aclCapabilities) {
if (aclCapabilities == null) {
return null;
}
CmisACLCapabilityType result = new CmisACLCapabilityType();
result.setSupportedPermissions(convert(EnumSupportedPermissions.class, aclCapabilities
.getSupportedPermissions()));
result.setPropagation(convert(EnumACLPropagation.class, aclCapabilities.getAclPropagation()));
if (aclCapabilities.getPermissions() != null) {
for (PermissionDefinition pdd : aclCapabilities.getPermissions()) {
CmisPermissionDefinition permDef = new CmisPermissionDefinition();
permDef.setDescription(pdd.getDescription());
permDef.setPermission(pdd.getId());
convertExtension(pdd, permDef);
result.getPermissions().add(permDef);
}
}
if (aclCapabilities.getPermissionMapping() != null) {
for (PermissionMapping pmd : aclCapabilities.getPermissionMapping().values()) {
CmisPermissionMapping permMap = new CmisPermissionMapping();
permMap.setKey(EnumAllowableActionsKey.fromValue(pmd.getKey()));
if (pmd.getPermissions() != null) {
for (String permission : pmd.getPermissions()) {
permMap.getPermission().add(permission);
}
}
convertExtension(pmd, permMap);
result.getMapping().add(permMap);
}
}
// handle extensions
convertExtension(aclCapabilities, result);