Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 0ab3bae

Browse files
committed
Deprecating DocumentPermissionsParser
This will work once https://github.com/marklogic/java-client-api/pull/1592/files is merged into the develop branch of the Java Client.
1 parent 9c4d6b3 commit 0ab3bae

File tree

4 files changed

+57
-42
lines changed

4 files changed

+57
-42
lines changed

src/main/java/com/marklogic/client/ext/file/PermissionsDocumentFileProcessor.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,42 @@
1515
*/
1616
package com.marklogic.client.ext.file;
1717

18-
import com.marklogic.client.ext.util.DefaultDocumentPermissionsParser;
19-
import com.marklogic.client.io.DocumentMetadataHandle;
2018
import com.marklogic.client.ext.util.DocumentPermissionsParser;
19+
import com.marklogic.client.io.DocumentMetadataHandle;
2120

2221
/**
2322
* DocumentFileProcessor that uses a DocumentPermissionsParser to parse a string of permissions (typically, a delimited
2423
* string of roles and capabilities) and adds them to each DocumentFile.
2524
*/
2625
public class PermissionsDocumentFileProcessor implements DocumentFileProcessor {
2726

28-
private String permissions;
27+
private String commaDelimitedRolesAndCapabilities;
2928
private DocumentPermissionsParser documentPermissionsParser;
3029

31-
public PermissionsDocumentFileProcessor(String permissions) {
32-
this(permissions, new DefaultDocumentPermissionsParser());
30+
public PermissionsDocumentFileProcessor(String commaDelimitedRolesAndCapabilities) {
31+
this.commaDelimitedRolesAndCapabilities = commaDelimitedRolesAndCapabilities;
3332
}
3433

35-
public PermissionsDocumentFileProcessor(String permissions, DocumentPermissionsParser documentPermissionsParser) {
36-
this.permissions = permissions;
34+
/**
35+
* @param commaDelimitedRolesAndCapabilities
36+
* @param documentPermissionsParser
37+
* @deprecated since 4.6.0
38+
*/
39+
public PermissionsDocumentFileProcessor(String commaDelimitedRolesAndCapabilities, DocumentPermissionsParser documentPermissionsParser) {
40+
this.commaDelimitedRolesAndCapabilities = commaDelimitedRolesAndCapabilities;
3741
this.documentPermissionsParser = documentPermissionsParser;
3842
}
3943

4044
@Override
4145
public DocumentFile processDocumentFile(DocumentFile documentFile) {
42-
if (permissions != null && documentPermissionsParser != null) {
46+
if (this.commaDelimitedRolesAndCapabilities != null) {
4347
DocumentMetadataHandle metadata = documentFile.getDocumentMetadata();
4448
if (metadata != null) {
45-
documentPermissionsParser.parsePermissions(permissions, metadata.getPermissions());
49+
if (this.documentPermissionsParser != null) {
50+
this.documentPermissionsParser.parsePermissions(this.commaDelimitedRolesAndCapabilities, metadata.getPermissions());
51+
} else {
52+
metadata.getPermissions().addFromDelimitedString(this.commaDelimitedRolesAndCapabilities);
53+
}
4654
}
4755
}
4856
return documentFile;

src/main/java/com/marklogic/client/ext/file/PermissionsFileDocumentFileProcessor.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package com.marklogic.client.ext.file;
1717

18-
import com.marklogic.client.ext.util.DefaultDocumentPermissionsParser;
1918
import com.marklogic.client.ext.util.DocumentPermissionsParser;
2019

2120
import java.util.Properties;
@@ -33,9 +32,15 @@ public PermissionsFileDocumentFileProcessor() {
3332
}
3433

3534
public PermissionsFileDocumentFileProcessor(String propertiesFilename) {
36-
this(propertiesFilename, new DefaultDocumentPermissionsParser());
35+
super(propertiesFilename);
3736
}
3837

38+
/**
39+
* @param propertiesFilename
40+
* @param documentPermissionsParser
41+
* @deprecated since 4.6.0
42+
*/
43+
@Deprecated
3944
public PermissionsFileDocumentFileProcessor(String propertiesFilename, DocumentPermissionsParser documentPermissionsParser) {
4045
super(propertiesFilename);
4146
this.documentPermissionsParser = documentPermissionsParser;
@@ -46,15 +51,25 @@ protected void processProperties(DocumentFile documentFile, Properties propertie
4651
String name = documentFile.getFile().getName();
4752
if (properties.containsKey(name)) {
4853
String value = getPropertyValue(properties, name);
49-
documentPermissionsParser.parsePermissions(value, documentFile.getDocumentMetadata().getPermissions());
54+
if (documentPermissionsParser != null) {
55+
documentPermissionsParser.parsePermissions(value, documentFile.getDocumentMetadata().getPermissions());
56+
} else {
57+
documentFile.getDocumentMetadata().getPermissions().addFromDelimitedString(value);
58+
}
59+
5060
}
5161

5262
if (properties.containsKey(WILDCARD_KEY)) {
5363
String value = getPropertyValue(properties, WILDCARD_KEY);
54-
documentPermissionsParser.parsePermissions(value, documentFile.getDocumentMetadata().getPermissions());
64+
if (documentPermissionsParser != null) {
65+
documentPermissionsParser.parsePermissions(value, documentFile.getDocumentMetadata().getPermissions());
66+
} else {
67+
documentFile.getDocumentMetadata().getPermissions().addFromDelimitedString(value);
68+
}
5569
}
5670
}
5771

72+
@Deprecated
5873
public void setDocumentPermissionsParser(DocumentPermissionsParser documentPermissionsParser) {
5974
this.documentPermissionsParser = documentPermissionsParser;
6075
}

src/main/java/com/marklogic/client/ext/util/DefaultDocumentPermissionsParser.java

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,20 @@
1515
*/
1616
package com.marklogic.client.ext.util;
1717

18-
import com.marklogic.client.io.DocumentMetadataHandle.Capability;
1918
import com.marklogic.client.io.DocumentMetadataHandle.DocumentPermissions;
2019

20+
/**
21+
* @deprecated since 4.6.0, will be removed in 5.0.0. Can use the new {@code addFromDelimitedString} method in
22+
* the Java Client's {@code DocumentPermissions} class in Java Client 6.3.0.
23+
*/
24+
@Deprecated
2125
public class DefaultDocumentPermissionsParser implements DocumentPermissionsParser {
2226

2327
@Override
28+
@Deprecated
2429
public void parsePermissions(String str, DocumentPermissions permissions) {
25-
if (str != null && str.trim().length() > 0) {
26-
String[] tokens = str.split(",");
27-
for (int i = 0; i < tokens.length; i += 2) {
28-
String role = tokens[i];
29-
if (i + 1 >= tokens.length) {
30-
throw new IllegalArgumentException("Unable to parse permissions string, which must be a comma-separated " +
31-
"list of role names and capabilities - i.e. role1,read,role2,update,role3,execute; string: " + str);
32-
}
33-
Capability c;
34-
try {
35-
c = Capability.getValueOf(tokens[i + 1]);
36-
} catch (Exception e) {
37-
throw new IllegalArgumentException("Unable to parse permissions string: " + str + "; cause: " + e.getMessage());
38-
}
39-
if (permissions.containsKey(role)) {
40-
permissions.get(role).add(c);
41-
} else {
42-
permissions.add(role, c);
43-
}
44-
}
45-
}
30+
// As of Java Client 6.3.0, can just defer to the client.
31+
permissions.addFromDelimitedString(str);
4632
}
4733

4834
}

src/main/java/com/marklogic/client/ext/util/DocumentPermissionsParser.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@
1717

1818
import com.marklogic.client.io.DocumentMetadataHandle.DocumentPermissions;
1919

20+
/**
21+
* @deprecated since 4.6.0, will be removed in 5.0.0. Can use the new {@code addFromDelimitedString} method in
22+
* the Java Client's {@code DocumentPermissions} class in Java Client 6.3.0.
23+
*/
24+
@Deprecated
2025
public interface DocumentPermissionsParser {
2126

22-
/**
23-
* Parse the string and add role/capability sets to the given DocumentPermissions object.
24-
*
25-
* @param str
26-
* @param permissions
27-
*/
28-
void parsePermissions(String str, DocumentPermissions permissions);
27+
/**
28+
* Parse the string and add role/capability sets to the given DocumentPermissions object.
29+
*
30+
* @param str
31+
* @param permissions
32+
*/
33+
@Deprecated
34+
void parsePermissions(String str, DocumentPermissions permissions);
2935
}

0 commit comments

Comments
 (0)