From 22094368c2865dcfb6daf8366425212b721a4657 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 05 Feb 2009 17:42:14 +0000
Subject: [PATCH] Merge ASN1 branch to trunk

---
 opends/src/server/org/opends/server/api/CompressedSchema.java |   52 ++++++++++++++++++++++------------------------------
 1 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/opends/src/server/org/opends/server/api/CompressedSchema.java b/opends/src/server/org/opends/server/api/CompressedSchema.java
index 464570e..7d30c84 100644
--- a/opends/src/server/org/opends/server/api/CompressedSchema.java
+++ b/opends/src/server/org/opends/server/api/CompressedSchema.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008 Sun Microsystems, Inc.
+ *      Copyright 2009 Sun Microsystems, Inc.
  */
 package org.opends.server.api;
 
@@ -30,10 +30,7 @@
 
 import java.util.Map;
 
-import org.opends.server.types.Attribute;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.ObjectClass;
-
+import org.opends.server.types.*;
 
 
 /**
@@ -52,28 +49,27 @@
    * the same set had been previously encoded, then the cached value
    * will be used.  Otherwise, a new value will be created.
    *
-   * @param  objectClasses  The set of object classes for which to
-   *                        retrieve the corresponding byte array
-   *                        token.
-   *
-   * @return  A byte array containing the identifier assigned to the
-   *          object class set.
+   * @param  entryBuffer   The buffer to encode the object classes to.
+   * @param  objectClasses The set of object classes for which to
+   *                       retrieve the corresponding byte array
+   *                       token.
    *
    * @throws  DirectoryException  If a problem occurs while attempting
    *                              to determine the appropriate
    *                              identifier.
    */
-  public abstract byte[]
-         encodeObjectClasses(Map<ObjectClass,String> objectClasses)
+  public abstract void
+         encodeObjectClasses(ByteStringBuilder entryBuffer,
+                             Map<ObjectClass,String> objectClasses)
          throws DirectoryException;
 
 
 
   /**
-   * Decodes an object class set from the provided byte array.
+   * Decodes an object class set from the provided byte string.
    *
-   * @param  encodedObjectClasses  The byte array containing the
-   *                               object class set identifier.
+   * @param  entryBuffer         The byte string containing the
+   *                             object class set identifier.
    *
    * @return  The decoded object class set.
    *
@@ -81,7 +77,7 @@
    *                              decoded as an object class set.
    */
   public abstract Map<ObjectClass,String>
-         decodeObjectClasses(byte[] encodedObjectClasses)
+         decodeObjectClasses(ByteSequenceReader entryBuffer)
          throws DirectoryException;
 
 
@@ -90,36 +86,32 @@
    * Encodes the information in the provided attribute to a byte
    * array.
    *
-   * @param  attribute  The attribute to be encoded.
-   *
-   * @return  An encoded representation of the provided attribute.
+   * @param  entryBuffer The buffer to encode the attribute to.
+   * @param  attribute   The attribute to be encoded.
    *
    * @throws  DirectoryException  If a problem occurs while attempting
    *                              to determine the appropriate
    *                              identifier.
    */
-  public abstract byte[] encodeAttribute(Attribute attribute)
+  public abstract void encodeAttribute(ByteStringBuilder entryBuffer,
+                                       Attribute attribute)
          throws DirectoryException;
 
 
 
   /**
-   * Decodes the contents of the provided array as an attribute.
+   * Decodes the contents of the provided array as an attribute at the
+   * current position.
    *
-   * @param  encodedEntry  The byte array containing the encoded
+   * @param  entryBuffer   The byte array containing the encoded
    *                       entry.
-   * @param  startPos      The position within the array of the first
-   *                       byte for the attribute to decode.
-   * @param  length        The number of bytes contained in the
-   *                       encoded attribute.
    *
    * @return  The decoded attribute.
    *
    * @throws  DirectoryException  If the attribute could not be
    *                              decoded properly for some reason.
    */
-  public abstract Attribute decodeAttribute(byte[] encodedEntry,
-                                            int startPos, int length)
-          throws DirectoryException;
+  public abstract Attribute decodeAttribute(
+      ByteSequenceReader entryBuffer) throws DirectoryException;
 }
 

--
Gitblit v1.10.0