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/util/LDIFReader.java |   70 ++++++++++++-----------------------
 1 files changed, 24 insertions(+), 46 deletions(-)

diff --git a/opends/src/server/org/opends/server/util/LDIFReader.java b/opends/src/server/org/opends/server/util/LDIFReader.java
index b350ceb..daba4f9 100644
--- a/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.util;
 import org.opends.messages.Message;
@@ -38,7 +38,6 @@
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -49,25 +48,11 @@
 
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PluginConfigManager;
-import org.opends.server.protocols.asn1.ASN1OctetString;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.protocols.ldap.LDAPModification;
-import org.opends.server.types.AcceptRejectWarn;
-import org.opends.server.types.Attribute;
-import org.opends.server.types.AttributeBuilder;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AttributeValue;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.Entry;
 
 
-import org.opends.server.types.LDIFImportConfig;
-import org.opends.server.types.ModificationType;
-import org.opends.server.types.ObjectClass;
-import org.opends.server.types.RawModification;
-import org.opends.server.types.RDN;
+import org.opends.server.types.*;
 import org.opends.server.api.plugin.PluginResult;
 
 
@@ -264,7 +249,7 @@
       // import.
       Entry entry =  new Entry(entryDN, objectClasses, userAttributes,
                                operationalAttributes);
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, entry);
+      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, entry.toString());
 
       try
       {
@@ -857,7 +842,7 @@
     final String lowerName = toLowerCase(attrName);
 
     // Now parse the attribute value.
-    ASN1OctetString value = parseSingleValue(lines, line, entryDN,
+    ByteString value = parseSingleValue(lines, line, entryDN,
         colonPos, attrName);
 
     // See if this is an objectclass or an attribute.  Then get the
@@ -874,7 +859,7 @@
         return;
       }
 
-      String ocName      = value.stringValue();
+      String ocName      = value.toString();
       String lowerOCName = toLowerCase(ocName);
 
       ObjectClass objectClass = DirectoryServer.getObjectClass(lowerOCName);
@@ -932,7 +917,7 @@
         {
           Message message = WARN_LDIF_VALUE_VIOLATES_SYNTAX.get(
                   String.valueOf(entryDN),
-                  lastEntryLineNumber, value.stringValue(),
+                  lastEntryLineNumber, value.toString(),
                   attrName, invalidReason.toString());
           if (DirectoryServer.getSyntaxEnforcementPolicy() ==
                    AcceptRejectWarn.WARN)
@@ -948,7 +933,8 @@
         }
       }
 
-      AttributeValue attributeValue = new AttributeValue(attrType, value);
+      AttributeValue attributeValue =
+          AttributeValues.create(attrType, value);
       List<Attribute> attrList;
       if (attrType.isOperational())
       {
@@ -1001,7 +987,7 @@
                   Message message = WARN_LDIF_DUPLICATE_ATTR.get(
                           String.valueOf(entryDN),
                           lastEntryLineNumber, attrName,
-                          value.stringValue());
+                          value.toString());
                   logToRejectWriter(lines, message);
                   throw new LDIFException(message, lastEntryLineNumber,
                                           true);
@@ -1013,7 +999,7 @@
               Message message = WARN_LDIF_DUPLICATE_ATTR.get(
                       String.valueOf(entryDN),
                       lastEntryLineNumber, attrName,
-                      value.stringValue());
+                      value.toString());
               logToRejectWriter(lines, message);
               throw new LDIFException(message, lastEntryLineNumber,
                                       true);
@@ -1088,12 +1074,12 @@
     }
 
     //  Now parse the attribute value.
-    ASN1OctetString value = parseSingleValue(lines, line, entryDN,
+    ByteString value = parseSingleValue(lines, line, entryDN,
         colonPos, attrName);
 
     AttributeBuilder builder = new AttributeBuilder(attribute, true);
     AttributeType attrType = attribute.getAttributeType();
-    builder.add(new AttributeValue(attrType, value));
+    builder.add(AttributeValues.create(attrType, value));
 
     return builder.toAttribute();
   }
@@ -1406,7 +1392,7 @@
   {
     Attribute attr =
       readSingleValueAttribute(lines, line, entryDN, attributeName);
-    return attr.iterator().next().getStringValue();
+    return attr.iterator().next().getValue().toString();
   }
 
 
@@ -1436,7 +1422,7 @@
       String name = attr.getName();
 
       // Get the attribute description
-      String attrDescr = attr.iterator().next().getStringValue();
+      String attrDescr = attr.iterator().next().getValue().toString();
 
       String lowerName = toLowerCase(name);
       if (lowerName.equals("add"))
@@ -1541,7 +1527,7 @@
     AttributeType ocType = DirectoryServer.getObjectClassAttributeType();
     AttributeBuilder builder = new AttributeBuilder(ocType, "objectClass");
     for (String value : objectClasses.values()) {
-      AttributeValue av = new AttributeValue(ocType, value);
+      AttributeValue av = AttributeValues.create(ocType, value);
       builder.add(av);
     }
     List<Attribute> ocAttrList = new ArrayList<Attribute>(1);
@@ -1597,7 +1583,7 @@
    * @throws LDIFException
    *           If an error occurred when parsing the attribute value.
    */
-  private ASN1OctetString parseSingleValue(
+  private ByteString parseSingleValue(
       LinkedList<StringBuilder> lines,
       StringBuilder line,
       DN entryDN,
@@ -1609,10 +1595,10 @@
     // colon, then the value must be base64-encoded. If it is a less-than
     // sign, then assume that it is a URL. Otherwise, it is a regular value.
     int length = line.length();
-    ASN1OctetString value;
+    ByteString value;
     if (colonPos == (length-1))
     {
-      value = new ASN1OctetString();
+      value = ByteString.empty();
     }
     else
     {
@@ -1629,7 +1615,7 @@
 
         try
         {
-          value = new ASN1OctetString(Base64.decode(line.substring(pos)));
+          value = ByteString.wrap(Base64.decode(line.substring(pos)));
         }
         catch (Exception e)
         {
@@ -1680,19 +1666,19 @@
 
 
         InputStream inputStream = null;
-        ByteArrayOutputStream outputStream = null;
+        ByteStringBuilder builder = null;
         try
         {
-          outputStream = new ByteArrayOutputStream();
+          builder = new ByteStringBuilder();
           inputStream  = contentURL.openConnection().getInputStream();
 
           int bytesRead;
           while ((bytesRead = inputStream.read(buffer)) > 0)
           {
-            outputStream.write(buffer, 0, bytesRead);
+            builder.append(buffer, 0, bytesRead);
           }
 
-          value = new ASN1OctetString(outputStream.toByteArray());
+          value = builder.toByteString();
         }
         catch (Exception e)
         {
@@ -1713,14 +1699,6 @@
         }
         finally
         {
-          if (outputStream != null)
-          {
-            try
-            {
-              outputStream.close();
-            } catch (Exception e) {}
-          }
-
           if (inputStream != null)
           {
             try
@@ -1740,7 +1718,7 @@
           pos++;
         }
 
-        value = new ASN1OctetString(line.substring(pos));
+        value = ByteString.valueOf(line.substring(pos));
       }
     }
     return value;

--
Gitblit v1.10.0