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

matthew_swift
01.35.2010 96483a719fbc07f7b1ab1e1aed482743634a615e
Split Types utility class into Attributes and Entries sub-classes so that they are easier to find.
1 files added
1 files renamed
5 files modified
697 ■■■■ changed files
sdk/src/org/opends/sdk/AbstractEntry.java 5 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/Attributes.java 312 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/Entries.java 351 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/controls/PostReadResponseControl.java 6 ●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/controls/PreReadResponseControl.java 6 ●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java 5 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/TypesTestCase.java 12 ●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/AbstractEntry.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.sdk;
@@ -311,7 +311,8 @@
  public boolean removeAttribute(final AttributeDescription attributeDescription)
      throws UnsupportedOperationException, NullPointerException
  {
    return removeAttribute(Types.emptyAttribute(attributeDescription), null);
    return removeAttribute(
        Attributes.emptyAttribute(attributeDescription), null);
  }
sdk/src/org/opends/sdk/Attributes.java
File was renamed from sdk/src/org/opends/sdk/Types.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2010 Sun Microsystems, Inc.
 */
package org.opends.sdk;
@@ -35,18 +35,15 @@
import org.opends.sdk.schema.AttributeType;
import com.sun.opends.sdk.util.Function;
import com.sun.opends.sdk.util.Iterables;
import com.sun.opends.sdk.util.Iterators;
import com.sun.opends.sdk.util.Validator;
/**
 * This class contains methods for creating and manipulating attributes,
 * entries, and other types of object.
 * This class contains methods for creating and manipulating attributes.
 */
public final class Types
public final class Attributes
{
  /**
@@ -546,286 +543,6 @@
  private static final class UnmodifiableEntry implements Entry
  {
    private final Entry entry;
    private UnmodifiableEntry(final Entry entry)
    {
      this.entry = entry;
    }
    /**
     * {@inheritDoc}
     */
    public boolean addAttribute(final Attribute attribute)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public boolean addAttribute(final Attribute attribute,
        final Collection<ByteString> duplicateValues)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry addAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public Entry clearAttributes() throws UnsupportedOperationException
    {
      throw new UnsupportedOperationException();
    }
    public boolean containsAttribute(final Attribute attribute,
        final Collection<ByteString> missingValues) throws NullPointerException
    {
      return entry.containsAttribute(attribute, missingValues);
    }
    public boolean containsAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        NullPointerException
    {
      return entry.containsAttribute(attributeDescription, values);
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(final Object object)
    {
      return (object == this || entry.equals(object));
    }
    public Iterable<Attribute> getAllAttributes()
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(), UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    public Iterable<Attribute> getAllAttributes(
        final AttributeDescription attributeDescription)
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(attributeDescription),
          UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    /**
     * {@inheritDoc}
     */
    public Iterable<Attribute> getAllAttributes(
        final String attributeDescription)
        throws LocalizedIllegalArgumentException, NullPointerException
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(attributeDescription),
          UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    public Attribute getAttribute(
        final AttributeDescription attributeDescription)
    {
      final Attribute attribute = entry.getAttribute(attributeDescription);
      if (attribute != null)
      {
        return unmodifiableAttribute(attribute);
      }
      else
      {
        return null;
      }
    }
    /**
     * {@inheritDoc}
     */
    public Attribute getAttribute(final String attributeDescription)
        throws LocalizedIllegalArgumentException, NullPointerException
    {
      final Attribute attribute = entry.getAttribute(attributeDescription);
      if (attribute != null)
      {
        return unmodifiableAttribute(attribute);
      }
      else
      {
        return null;
      }
    }
    public int getAttributeCount()
    {
      return entry.getAttributeCount();
    }
    /**
     * {@inheritDoc}
     */
    public DN getName()
    {
      return entry.getName();
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode()
    {
      return entry.hashCode();
    }
    /**
     * {@inheritDoc}
     */
    public boolean removeAttribute(final Attribute attribute,
        final Collection<ByteString> missingValues)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public boolean removeAttribute(
        final AttributeDescription attributeDescription)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry removeAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public boolean replaceAttribute(final Attribute attribute)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry replaceAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public Entry setName(final DN dn) throws UnsupportedOperationException,
        NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry setName(final String dn)
        throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public String toString()
    {
      return entry.toString();
    }
  }
  private static final Function<Attribute, Attribute, Void>
    UNMODIFIABLE_ATTRIBUTE_FUNCTION = new Function<Attribute, Attribute, Void>()
  {
    public Attribute apply(final Attribute value, final Void p)
    {
      return unmodifiableAttribute(value);
    }
  };
  /**
   * Returns a read-only empty attribute having the specified attribute
   * description.
@@ -902,29 +619,8 @@
  /**
   * Returns a read-only view of {@code entry} and its attributes. Query
   * operations on the returned entry and its attributes"read-through" to the
   * underlying entry or attribute, and attempts to modify the returned entry
   * and its attributes either directly or indirectly via an iterator result in
   * an {@code UnsupportedOperationException}.
   *
   * @param entry
   *          The entry for which a read-only view is to be returned.
   * @return A read-only view of {@code entry}.
   * @throws NullPointerException
   *           If {@code entry} was {@code null}.
   */
  public static final Entry unmodifiableEntry(final Entry entry)
      throws NullPointerException
  {
    return new UnmodifiableEntry(entry);
  }
  // Prevent instantiation.
  private Types()
  private Attributes()
  {
    // Nothing to do.
  }
sdk/src/org/opends/sdk/Entries.java
New file
@@ -0,0 +1,351 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2010 Sun Microsystems, Inc.
 */
package org.opends.sdk;
import java.util.Collection;
import com.sun.opends.sdk.util.Function;
import com.sun.opends.sdk.util.Iterables;
/**
 * This class contains methods for creating and manipulating entries.
 */
public final class Entries
{
  private static final class UnmodifiableEntry implements Entry
  {
    private final Entry entry;
    private UnmodifiableEntry(final Entry entry)
    {
      this.entry = entry;
    }
    /**
     * {@inheritDoc}
     */
    public boolean addAttribute(final Attribute attribute)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public boolean addAttribute(final Attribute attribute,
        final Collection<ByteString> duplicateValues)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry addAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public Entry clearAttributes() throws UnsupportedOperationException
    {
      throw new UnsupportedOperationException();
    }
    public boolean containsAttribute(final Attribute attribute,
        final Collection<ByteString> missingValues) throws NullPointerException
    {
      return entry.containsAttribute(attribute, missingValues);
    }
    public boolean containsAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        NullPointerException
    {
      return entry.containsAttribute(attributeDescription, values);
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(final Object object)
    {
      return (object == this || entry.equals(object));
    }
    public Iterable<Attribute> getAllAttributes()
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(), UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    public Iterable<Attribute> getAllAttributes(
        final AttributeDescription attributeDescription)
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(attributeDescription),
          UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    /**
     * {@inheritDoc}
     */
    public Iterable<Attribute> getAllAttributes(
        final String attributeDescription)
        throws LocalizedIllegalArgumentException, NullPointerException
    {
      return Iterables.unmodifiable(Iterables.transform(entry
          .getAllAttributes(attributeDescription),
          UNMODIFIABLE_ATTRIBUTE_FUNCTION));
    }
    public Attribute getAttribute(
        final AttributeDescription attributeDescription)
    {
      final Attribute attribute = entry.getAttribute(attributeDescription);
      if (attribute != null)
      {
        return Attributes.unmodifiableAttribute(attribute);
      }
      else
      {
        return null;
      }
    }
    /**
     * {@inheritDoc}
     */
    public Attribute getAttribute(final String attributeDescription)
        throws LocalizedIllegalArgumentException, NullPointerException
    {
      final Attribute attribute = entry.getAttribute(attributeDescription);
      if (attribute != null)
      {
        return Attributes.unmodifiableAttribute(attribute);
      }
      else
      {
        return null;
      }
    }
    public int getAttributeCount()
    {
      return entry.getAttributeCount();
    }
    /**
     * {@inheritDoc}
     */
    public DN getName()
    {
      return entry.getName();
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode()
    {
      return entry.hashCode();
    }
    /**
     * {@inheritDoc}
     */
    public boolean removeAttribute(final Attribute attribute,
        final Collection<ByteString> missingValues)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public boolean removeAttribute(
        final AttributeDescription attributeDescription)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry removeAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public boolean replaceAttribute(final Attribute attribute)
        throws UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry replaceAttribute(final String attributeDescription,
        final Object... values) throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    public Entry setName(final DN dn) throws UnsupportedOperationException,
        NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    public Entry setName(final String dn)
        throws LocalizedIllegalArgumentException,
        UnsupportedOperationException, NullPointerException
    {
      throw new UnsupportedOperationException();
    }
    /**
     * {@inheritDoc}
     */
    @Override
    public String toString()
    {
      return entry.toString();
    }
  }
  private static final Function<Attribute, Attribute, Void>
    UNMODIFIABLE_ATTRIBUTE_FUNCTION = new Function<Attribute, Attribute, Void>()
  {
    public Attribute apply(final Attribute value, final Void p)
    {
      return Attributes.unmodifiableAttribute(value);
    }
  };
  /**
   * Returns a read-only view of {@code entry} and its attributes. Query
   * operations on the returned entry and its attributes"read-through" to the
   * underlying entry or attribute, and attempts to modify the returned entry
   * and its attributes either directly or indirectly via an iterator result in
   * an {@code UnsupportedOperationException}.
   *
   * @param entry
   *          The entry for which a read-only view is to be returned.
   * @return A read-only view of {@code entry}.
   * @throws NullPointerException
   *           If {@code entry} was {@code null}.
   */
  public static final Entry unmodifiableEntry(final Entry entry)
      throws NullPointerException
  {
    return new UnmodifiableEntry(entry);
  }
  // Prevent instantiation.
  private Entries()
  {
    // Nothing to do.
  }
}
sdk/src/org/opends/sdk/controls/PostReadResponseControl.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.sdk.controls;
@@ -121,7 +121,7 @@
       * rather than an Entry. Can we assume that the response will not contain
       * a nested set of controls?
       */
      return new PostReadResponseControl(control.isCritical(), Types
      return new PostReadResponseControl(control.isCritical(), Entries
          .unmodifiableEntry(searchEntry));
    }
@@ -155,7 +155,7 @@
     * SearchResultEntry rather than an Entry. Can we assume that the response
     * will not contain a nested set of controls?
     */
    return new PostReadResponseControl(false, Types.unmodifiableEntry(entry));
    return new PostReadResponseControl(false, Entries.unmodifiableEntry(entry));
  }
sdk/src/org/opends/sdk/controls/PreReadResponseControl.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.sdk.controls;
@@ -121,7 +121,7 @@
       * rather than an Entry. Can we assume that the response will not contain
       * a nested set of controls?
       */
      return new PreReadResponseControl(control.isCritical(), Types
      return new PreReadResponseControl(control.isCritical(), Entries
          .unmodifiableEntry(searchEntry));
    }
@@ -155,7 +155,7 @@
     * SearchResultEntry rather than an Entry. Can we assume that the response
     * will not contain a nested set of controls?
     */
    return new PreReadResponseControl(false, Types.unmodifiableEntry(entry));
    return new PreReadResponseControl(false, Entries.unmodifiableEntry(entry));
  }
sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java
@@ -157,7 +157,8 @@
  private LDAPServer()
  {
    // Add the root dse first.
    entryMap.put(DN.rootDN(), Types.unmodifiableEntry(new LinkedHashMapEntry()));
    entryMap.put(DN.rootDN(),
        Entries.unmodifiableEntry(new LinkedHashMapEntry()));
    for (int i = 0; i < 1000; i++)
    {
      final String dn = String.format("uid=user.%d,ou=people,o=test", i);
@@ -169,7 +170,7 @@
      final Entry e = new LinkedHashMapEntry("dn: " + dn,
          "objectclass: person", "objectclass: inetorgperson",
          "objectclass: top", cn, sn, uid);
      entryMap.put(d, Types.unmodifiableEntry(e));
      entryMap.put(d, Entries.unmodifiableEntry(e));
    }
  }
sdk/tests/unit-tests-testng/src/org/opends/sdk/TypesTestCase.java
@@ -87,10 +87,10 @@
        Schema.getCoreSchema());
    final AttributeDescription desc2 = AttributeDescription.valueOf(desc,
        Schema.getCoreSchema());
    final Attribute attr1 = Types.emptyAttribute(desc1);
    final Attribute attr1 = Attributes.emptyAttribute(desc1);
    try
    {
      Types.renameAttribute(attr1, desc2);
      Attributes.renameAttribute(attr1, desc2);
    }
    catch (final Exception e)
    {
@@ -114,7 +114,7 @@
  {
    final AttributeDescription desc = AttributeDescription.valueOf(attrDesc,
        Schema.getCoreSchema());
    final Attribute attr = Types.emptyAttribute(desc);
    final Attribute attr = Attributes.emptyAttribute(desc);
    assertTrue(attr.isEmpty());
  }
@@ -130,10 +130,10 @@
  {
    final AttributeDescription desc = AttributeDescription.valueOf(attrDesc,
        Schema.getCoreSchema());
    final Attribute attr = Types.emptyAttribute(desc);
    final Attribute attr = Attributes.emptyAttribute(desc);
    attr.add("test"); // should go through.
    // Make it unmodifiable.
    final Attribute attr1 = Types.unmodifiableAttribute(attr);
    final Attribute attr1 = Attributes.unmodifiableAttribute(attr);
    attr1.add("test");
  }
@@ -150,7 +150,7 @@
    final Entry entry = new LinkedHashMapEntry("cn=test");
    // add a value.
    entry.clearAttributes();
    final Entry entry1 = Types.unmodifiableEntry(entry);
    final Entry entry1 = Entries.unmodifiableEntry(entry);
    entry1.clearAttributes();
  }
}