1 package org
.argeo
.util
.directory
.ldap
;
3 import java
.util
.Arrays
;
4 import java
.util
.Dictionary
;
7 import java
.util
.StringJoiner
;
8 import java
.util
.TreeSet
;
10 import javax
.naming
.directory
.Attributes
;
11 import javax
.naming
.ldap
.LdapName
;
13 import org
.argeo
.util
.naming
.LdapAttrs
;
16 public interface LdapEntry
{
19 Attributes
getAttributes();
21 void publishAttributes(Attributes modifiedAttributes
);
23 List
<LdapName
> getReferences(String attributeId
);
25 Dictionary
<String
, Object
> getProperties();
27 boolean hasCredential(String key
, Object value
);
32 public static void addObjectClasses(Dictionary
<String
, Object
> properties
, Set
<String
> objectClasses
) {
33 String value
= properties
.get(LdapAttrs
.objectClasses
.name()).toString();
34 Set
<String
> currentObjectClasses
= new TreeSet
<>(Arrays
.asList(value
.toString().split("\n")));
35 currentObjectClasses
.addAll(objectClasses
);
36 StringJoiner values
= new StringJoiner("\n");
37 currentObjectClasses
.forEach((s
) -> values
.add(s
));
38 properties
.put(LdapAttrs
.objectClasses
.name(), values
.toString());