public static Acl convert(CmisAccessControlListType acl, Boolean isExact) {
if (acl == null) {
return null;
}
AccessControlListImpl result = new AccessControlListImpl();
List<Ace> aces = new ArrayList<Ace>();
for (CmisAccessControlEntryType entry : acl.getPermission()) {
if (entry == null) {
continue;
}
AccessControlEntryImpl ace = new AccessControlEntryImpl();
ace.setDirect(entry.isDirect());
ace.setPermissions(entry.getPermission());
AccessControlPrincipalDataImpl principal = new AccessControlPrincipalDataImpl(
entry.getPrincipal() == null ? null : entry.getPrincipal().getPrincipalId());
convertExtension(entry.getPrincipal(), principal);
ace.setPrincipal(principal);
// handle extensions
convertExtension(entry, ace);
aces.add(ace);
}
result.setAces(aces);
result.setExact(isExact);
// handle extensions
convertExtension(acl, result);
return result;