protected void adaptPermissions(ContentCreateOptions options, DocumentMetadataHandle metadata) { Set<ContentPermission> contentPermissions = new HashSet<>(); DocumentMetadataHandle.DocumentPermissions permissions = metadata.getPermissions(); for (String role : permissions.keySet()) { for (DocumentMetadataHandle.Capability capability : permissions.get(role)) { ContentCapability contentCapability; if (DocumentMetadataHandle.Capability.EXECUTE.equals(capability)) { contentCapability = ContentCapability.EXECUTE; } else if (DocumentMetadataHandle.Capability.INSERT.equals(capability)) { contentCapability = ContentCapability.INSERT; } else if (DocumentMetadataHandle.Capability.READ.equals(capability)) { contentCapability = ContentCapability.READ; } else if (DocumentMetadataHandle.Capability.UPDATE.equals(capability)) { contentCapability = ContentCapability.UPDATE; } else throw new IllegalArgumentException("Unrecognized permission capability: " + capability); contentPermissions.add(new ContentPermission(contentCapability, role)); } } options.setPermissions(contentPermissions.toArray(new ContentPermission[]{})); } }