/** A user admin based on a LDIF files. */
public class LdifDao extends AbstractLdapDirectoryDao {
private NavigableMap<LdapName, LdapEntry> entries = new TreeMap<>();
-
private NavigableMap<LdapName, LdapHierarchyUnit> hierarchy = new TreeMap<>();
+ private NavigableMap<LdapName, Attributes> values = new TreeMap<>();
+
public LdifDao(AbstractLdapDirectory directory) {
super(directory);
}
lowerCase.add(id);
}
+ values.put(key, attributes);
+
// analyse object classes
NamingEnumeration<?> objectClasses = attributes.get(objectClass.name()).getAll();
// System.out.println(key);
String objectClass = objectClasses.next().toString();
// System.out.println(" " + objectClass);
if (objectClass.toLowerCase().equals(inetOrgPerson.name().toLowerCase())) {
- entries.put(key, newUser(key, attributes));
+ entries.put(key, newUser(key));
break objectClasses;
} else if (objectClass.toLowerCase().equals(getDirectory().getGroupObjectClass().toLowerCase())) {
- entries.put(key, newGroup(key, attributes));
+ entries.put(key, newGroup(key));
break objectClasses;
} else if (objectClass.equalsIgnoreCase(LdapObjs.organizationalUnit.name())) {
// TODO skip if it does not contain groups or users
- hierarchy.put(key, new LdapHierarchyUnit(getDirectory(), key, attributes));
+ hierarchy.put(key, new LdapHierarchyUnit(getDirectory(), key));
break objectClasses;
}
}
@Override
public Attributes doGetAttributes(LdapName name) {
- try {
- return doGetEntry(name).getAttributes();
- } catch (NameNotFoundException e) {
- throw new IllegalStateException(name + " doe not exist in " + getDirectory().getBaseDn(), e);
- }
+ if (!values.containsKey(name))
+ throw new IllegalStateException(name + " doe not exist in " + getDirectory().getBaseDn());
+ return values.get(name);
+ }
+
+ @Override
+ public boolean checkConnection() {
+ return true;
}
@Override
- public Boolean entryExists(LdapName dn) {
+ public boolean entryExists(LdapName dn) {
return entries.containsKey(dn);// || groups.containsKey(dn);
}