mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Nicolas Capponi
25.18.2014 89d4b5f3d862c3697d7421233a969db05a9b641b
Add methods to convert from/to server Entry class to/from
SDK Entry class

Purpose is to ease migration to OpenDJ 3 server by minimizing
code that breaks.
2 files modified
62 ■■■■■ changed files
opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java 44 ●●●●● patch | view | raw | blame | history
opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java 18 ●●●●● patch | view | raw | blame | history
opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
@@ -41,6 +41,7 @@
import org.forgerock.opendj.ldap.DecodeException;
import org.forgerock.opendj.ldap.ErrorResultException;
import org.forgerock.opendj.ldap.LinkedAttribute;
import org.forgerock.opendj.ldap.LinkedHashMapEntry;
import org.forgerock.opendj.ldap.RDN;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.controls.Control;
@@ -71,6 +72,28 @@
    }
    /**
     * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.Entry} to OpenDJ
     * server {@link org.opends.server.types.Entry}.
     *
     * @param sdkEntry
     *          SDK entry to convert
     * @return the converted entry
     */
    public static org.opends.server.types.Entry to(
            final org.forgerock.opendj.ldap.Entry sdkEntry) {
        if (sdkEntry != null) {
            org.opends.server.types.Entry entry =
                new org.opends.server.types.Entry(to(sdkEntry.getName()), null, null, null);
            List<AttributeValue> duplicateValues = new ArrayList<AttributeValue>();
            for (org.opends.server.types.Attribute attribute : toAttributes(sdkEntry.getAllAttributes())) {
                entry.addAttribute(attribute, duplicateValues);
            }
            return entry;
        }
        return null;
    }
    /**
     * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.responses.SearchResultEntry} to OpenDJ
     * server {@link org.opends.server.types.SearchResultEntry}.
     *
@@ -494,6 +517,27 @@
    }
    /**
     * Converts from OpenDJ server
     * {@link org.opends.server.types.Entry} to OpenDJ LDAP SDK
     * {@link org.forgerock.opendj.ldap.Entry}.
     *
     * @param srvResultEntry
     *          value to convert
     * @return the converted value
     */
    public static org.forgerock.opendj.ldap.Entry from(
        final org.opends.server.types.Entry srvResultEntry) {
        final org.forgerock.opendj.ldap.Entry entry = new LinkedHashMapEntry(srvResultEntry.getName().toString());
        if (srvResultEntry.getAttributes() != null) {
            for (org.opends.server.types.Attribute a : srvResultEntry.getAttributes()) {
                entry.addAttribute(from(a));
            }
        }
        return entry;
    }
    /**
     * Populates the result object with the operation details and return the
     * result object if it was successful. Otherwise, it throws an
     * {@link ErrorResultException}.
opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
@@ -37,6 +37,7 @@
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.Filter;
import org.forgerock.opendj.ldap.LinkedAttribute;
import org.forgerock.opendj.ldap.LinkedHashMapEntry;
import org.forgerock.opendj.ldap.Modification;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
@@ -135,6 +136,23 @@
    }
    /**
     * Converts a SDK {@link Entry} to an LDAP Server
     * {@link Entry}.
     */
    @Test()
    public final void testToEntry() throws Exception {
        org.forgerock.opendj.ldap.Entry entry =
            new LinkedHashMapEntry(org.forgerock.opendj.ldap.DN
                .valueOf("uid=scarter,ou=People,dc=example,dc=com"));
        entry.addAttribute(new LinkedAttribute("test", "value1"));
        entry.addAttribute(new LinkedAttribute("Another", ByteString.valueOf("myValue")));
        org.opends.server.types.Entry result = to(entry);
        assertThat(result.getName().toString()).isEqualTo(entry.getName().toString());
        assertThat(result.getAttributes()).hasSize(2);
    }
    /**
     * Converts a SDK Distinguished Name to a LDAP server Distinguish Name. Needs
     * a running server to work.
     *