From fdd9be22de1808af9159a95ae6dd64e6573f5310 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 29 Mar 2013 14:49:41 +0000
Subject: [PATCH] Very minor code cleanup to LDIF package:

---
 opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFReader.java |  242 ++++++++++++++++++++++++------------------------
 1 files changed, 121 insertions(+), 121 deletions(-)

diff --git a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFReader.java b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFReader.java
index b455c06..fe50021 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFReader.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFReader.java
@@ -22,18 +22,31 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011 ForgeRock AS
+ *      Portions copyright 2011-2013 ForgeRock AS
  */
 
 package org.forgerock.opendj.ldif;
 
 import static com.forgerock.opendj.util.StaticUtils.toLowerCase;
-import static org.forgerock.opendj.ldap.CoreMessages.*;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_COULD_NOT_BASE64_DECODE_ATTR;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_COULD_NOT_BASE64_DECODE_DN;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_INVALID_DN;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_INVALID_LEADING_SPACE;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_INVALID_URL;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_MALFORMED_ATTRIBUTE_NAME;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_MULTI_VALUED_SINGLE_VALUED_ATTRIBUTE;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_NO_ATTR_NAME;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_NO_DN;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_UNEXPECTED_BINARY_OPTION;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_UNKNOWN_ATTRIBUTE_TYPE;
+import static org.forgerock.opendj.ldap.CoreMessages.ERR_LDIF_URL_IO_ERROR;
+import static org.forgerock.opendj.ldap.CoreMessages.WARN_LDIF_DUPLICATE_ATTRIBUTE_VALUE;
 
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.Reader;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -63,7 +76,6 @@
 abstract class AbstractLDIFReader extends AbstractLDIFStream {
     static final class KeyValuePair {
         String key;
-
         String value;
     }
 
@@ -94,9 +106,7 @@
 
     static final class LDIFRecord {
         final Iterator<String> iterator;
-
         final LinkedList<String> ldifLines;
-
         final long lineNumber;
 
         private LDIFRecord(final long lineNumber, final LinkedList<String> ldifLines) {
@@ -110,22 +120,15 @@
      * LDIF output stream writer implementation.
      */
     private static final class LDIFReaderInputStreamImpl implements LDIFReaderImpl {
-
         private BufferedReader reader;
 
-        /**
-         * Creates a new LDIF input stream reader implementation.
-         *
-         * @param in
-         *            The input stream to use.
-         */
-        LDIFReaderInputStreamImpl(final InputStream in) {
-            this.reader = new BufferedReader(new InputStreamReader(in));
+        LDIFReaderInputStreamImpl(final Reader reader) {
+            this.reader =
+                    reader instanceof BufferedReader ? (BufferedReader) reader
+                            : new BufferedReader(reader);
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void close() throws IOException {
             if (reader != null) {
                 reader.close();
@@ -133,9 +136,7 @@
             }
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public String readLine() throws IOException {
             String line = null;
             if (reader != null) {
@@ -153,29 +154,18 @@
      * LDIF output stream writer implementation.
      */
     private static final class LDIFReaderListImpl implements LDIFReaderImpl {
-
         private final Iterator<String> iterator;
 
-        /**
-         * Creates a new LDIF list reader.
-         *
-         * @param ldifLines
-         *            The string list.
-         */
         LDIFReaderListImpl(final List<String> ldifLines) {
             this.iterator = ldifLines.iterator();
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void close() throws IOException {
             // Nothing to do.
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public String readLine() throws IOException {
             if (iterator.hasNext()) {
                 return iterator.next();
@@ -186,43 +176,50 @@
     }
 
     RejectedLDIFListener rejectedRecordListener = RejectedLDIFListener.FAIL_FAST;
-
     Schema schema = Schema.getDefaultSchema().asNonStrictSchema();
-
     SchemaValidationPolicy schemaValidationPolicy = SchemaValidationPolicy.ignoreAll();
-
     private final LDIFReaderImpl impl;
-
     private long lineNumber = 0;
 
-    /**
-     * Creates a new LDIF entry reader whose source is the provided input
-     * stream.
-     *
-     * @param in
-     *            The input stream to use.
-     */
     AbstractLDIFReader(final InputStream in) {
-        Validator.ensureNotNull(in);
-        this.impl = new LDIFReaderInputStreamImpl(in);
+        this(new InputStreamReader(in));
     }
 
-    /**
-     * Creates a new LDIF entry reader which will read lines of LDIF from the
-     * provided list.
-     *
-     * @param ldifLines
-     *            The list from which lines of LDIF should be read.
-     */
     AbstractLDIFReader(final List<String> ldifLines) {
         Validator.ensureNotNull(ldifLines);
         this.impl = new LDIFReaderListImpl(ldifLines);
     }
 
+    AbstractLDIFReader(final Reader reader) {
+        this.impl = new LDIFReaderInputStreamImpl(reader);
+    }
+
     final void close0() throws IOException {
         impl.close();
     }
 
+    final void handleMalformedRecord(final LDIFRecord record, final LocalizableMessage message)
+            throws DecodeException {
+        rejectedRecordListener.handleMalformedRecord(record.lineNumber, record.ldifLines, message);
+    }
+
+    final void handleSchemaValidationFailure(final LDIFRecord record,
+            final List<LocalizableMessage> messages) throws DecodeException {
+        rejectedRecordListener.handleSchemaValidationFailure(record.lineNumber, record.ldifLines,
+                messages);
+    }
+
+    final void handleSchemaValidationWarning(final LDIFRecord record,
+            final List<LocalizableMessage> messages) throws DecodeException {
+        rejectedRecordListener.handleSchemaValidationWarning(record.lineNumber, record.ldifLines,
+                messages);
+    }
+
+    final void handleSkippedRecord(final LDIFRecord record, final LocalizableMessage message)
+            throws DecodeException {
+        rejectedRecordListener.handleSkippedRecord(record.lineNumber, record.ldifLines, message);
+    }
+
     final int parseColonPosition(final LDIFRecord record, final String ldifLine)
             throws DecodeException {
         final int colonPos = ldifLine.indexOf(":");
@@ -237,11 +234,12 @@
     final ByteString parseSingleValue(final LDIFRecord record, final String ldifLine,
             final DN entryDN, final int colonPos, final String attrName) throws DecodeException {
 
-        // Look at the character immediately after the colon. If there is
-        // none, then assume an attribute with an empty value. If it is
-        // another 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.
+        /*
+         * Look at the character immediately after the colon. If there is none,
+         * then assume an attribute with an empty value. If it is another 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.
+         */
         final int length = ldifLine.length();
         ByteString value;
         if (colonPos == length - 1) {
@@ -249,8 +247,10 @@
         } else {
             final char c = ldifLine.charAt(colonPos + 1);
             if (c == ':') {
-                // The value is base64-encoded. Find the first non-blank
-                // character, take the rest of the line, and base64-decode it.
+                /*
+                 * The value is base64-encoded. Find the first non-blank
+                 * character, take the rest of the line, and base64-decode it.
+                 */
                 int pos = colonPos + 2;
                 while (pos < length && ldifLine.charAt(pos) == ' ') {
                     pos++;
@@ -259,15 +259,19 @@
                 try {
                     value = ByteString.valueOfBase64(ldifLine.substring(pos));
                 } catch (final LocalizedIllegalArgumentException e) {
-                    // The value did not have a valid base64-encoding.
+                    /*
+                     * The value did not have a valid base64-encoding.
+                     */
                     final LocalizableMessage message =
                             ERR_LDIF_COULD_NOT_BASE64_DECODE_ATTR.get(entryDN.toString(),
                                     record.lineNumber, ldifLine, e.getMessageObject());
                     throw DecodeException.error(message);
                 }
             } else if (c == '<') {
-                // Find the first non-blank character, decode the rest of the
-                // line as a URL, and read its contents.
+                /*
+                 * Find the first non-blank character, decode the rest of the
+                 * line as a URL, and read its contents.
+                 */
                 int pos = colonPos + 2;
                 while (pos < length && ldifLine.charAt(pos) == ' ') {
                     pos++;
@@ -298,8 +302,10 @@
 
                     value = builder.toByteString();
                 } catch (final Exception e) {
-                    // We were unable to read the contents of that URL for some
-                    // reason.
+                    /*
+                     * We were unable to read the contents of that URL for some
+                     * reason.
+                     */
                     final LocalizableMessage message =
                             ERR_LDIF_URL_IO_ERROR.get(entryDN.toString(), record.lineNumber,
                                     attrName, String.valueOf(contentURL), String.valueOf(e));
@@ -314,8 +320,10 @@
                     }
                 }
             } else {
-                // The rest of the line should be the value. Skip over any
-                // spaces and take the rest of the line as the value.
+                /*
+                 * The rest of the line should be the value. Skip over any
+                 * spaces and take the rest of the line as the value.
+                 */
                 int pos = colonPos + 1;
                 while (pos < length && ldifLine.charAt(pos) == ' ') {
                     pos++;
@@ -332,13 +340,11 @@
         final StringBuilder lastLineBuilder = new StringBuilder();
         final LinkedList<String> ldifLines = new LinkedList<String>();
         long recordLineNumber = 0;
-
         final int stateStart = 0;
         final int stateStartCommentLine = 1;
         final int stateGotLDIFLine = 2;
         final int stateGotCommentLine = 3;
         final int appendingLDIFLine = 4;
-
         int state = stateStart;
 
         while (true) {
@@ -355,8 +361,10 @@
                     // This is a comment at the start of the LDIF record.
                     state = stateStartCommentLine;
                 } else if (isContinuationLine(line)) {
-                    // Fatal: got a continuation line at the start of the
-                    // record.
+                    /*
+                     * Fatal: got a continuation line at the start of the
+                     * record.
+                     */
                     final LocalizableMessage message =
                             ERR_LDIF_INVALID_LEADING_SPACE.get(lineNumber, line);
                     throw DecodeException.fatalError(message);
@@ -473,9 +481,10 @@
                 schemaErrors.add(message);
                 return true;
             default: // Ignore
-                // This should not happen: we should be using a non-strict
-                // schema for
-                // this policy.
+                /*
+                 * This should not happen: we should be using a non-strict
+                 * schema for this policy.
+                 */
                 throw new IllegalStateException("Schema is not consistent with policy", e);
             }
         } catch (final LocalizedIllegalArgumentException e) {
@@ -489,9 +498,11 @@
         final ByteString value =
                 parseSingleValue(record, ldifLine, entry.getName(), colonPos, attrDescr);
 
-        // Skip the attribute if requested before performing any schema
-        // checking: the attribute may have been excluded because it is
-        // known to violate the schema.
+        /*
+         * Skip the attribute if requested before performing any schema
+         * checking: the attribute may have been excluded because it is known to
+         * violate the schema.
+         */
         if (isAttributeExcluded(attributeDescription)) {
             return true;
         }
@@ -515,7 +526,7 @@
         final boolean checkAttributeValues =
                 schemaValidationPolicy.checkAttributeValues().needsChecking();
         if (checkAttributeValues) {
-            LocalizableMessageBuilder builder = new LocalizableMessageBuilder();
+            final LocalizableMessageBuilder builder = new LocalizableMessageBuilder();
             if (!syntax.valueIsAcceptable(value, builder)) {
                 schemaErrors.add(builder.toMessage());
                 if (schemaValidationPolicy.checkAttributeValues().isReject()) {
@@ -586,10 +597,11 @@
             throw DecodeException.error(message);
         }
 
-        // Look at the character immediately after the colon. If there is
-        // none, then assume the null DN. If it is another colon, then the
-        // DN must be base64-encoded. Otherwise, it may be one or more
-        // spaces.
+        /*
+         * Look at the character immediately after the colon. If there is none,
+         * then assume the null DN. If it is another colon, then the DN must be
+         * base64-encoded. Otherwise, it may be one or more spaces.
+         */
         final int length = ldifLine.length();
         if (colonPos == length - 1) {
             return DN.rootDN();
@@ -598,8 +610,10 @@
         String dnString = null;
 
         if (ldifLine.charAt(colonPos + 1) == ':') {
-            // The DN is base64-encoded. Find the first non-blank character
-            // and take the rest of the line and base64-decode it.
+            /*
+             * The DN is base64-encoded. Find the first non-blank character and
+             * take the rest of the line and base64-decode it.
+             */
             int pos = colonPos + 2;
             while (pos < length && ldifLine.charAt(pos) == ' ') {
                 pos++;
@@ -616,8 +630,10 @@
                 throw DecodeException.error(message);
             }
         } else {
-            // The rest of the value should be the DN. Skip over any spaces
-            // and attempt to decode the rest of the line as the DN.
+            /*
+             * The rest of the value should be the DN. Skip over any spaces and
+             * attempt to decode the rest of the line as the DN.
+             */
             int pos = colonPos + 1;
             while (pos < length && ldifLine.charAt(pos) == ' ') {
                 pos++;
@@ -645,8 +661,10 @@
         }
         pair.key = ldifLine.substring(0, colonPos);
 
-        // Look at the character immediately after the colon. If there is
-        // none, then no value was specified. Throw an exception
+        /*
+         * Look at the character immediately after the colon. If there is none,
+         * then no value was specified. Throw an exception
+         */
         final int length = ldifLine.length();
         if (colonPos == length - 1) {
             pair.key = null;
@@ -654,8 +672,10 @@
         }
 
         if (allowBase64 && ldifLine.charAt(colonPos + 1) == ':') {
-            // The value is base64-encoded. Find the first non-blank
-            // character, take the rest of the line, and base64-decode it.
+            /*
+             * The value is base64-encoded. Find the first non-blank character,
+             * take the rest of the line, and base64-decode it.
+             */
             int pos = colonPos + 2;
             while (pos < length && ldifLine.charAt(pos) == ' ') {
                 pos++;
@@ -668,9 +688,11 @@
                 return ldifLine;
             }
         } else {
-            // The rest of the value should be the changetype. Skip over any
-            // spaces and attempt to decode the rest of the line as the
-            // changetype string.
+            /*
+             * The rest of the value should be the changetype. Skip over any
+             * spaces and attempt to decode the rest of the line as the
+             * changetype string.
+             */
             int pos = colonPos + 1;
             while (pos < length && ldifLine.charAt(pos) == ' ') {
                 pos++;
@@ -682,33 +704,12 @@
         return ldifLine;
     }
 
-    final void handleMalformedRecord(final LDIFRecord record, final LocalizableMessage message)
-            throws DecodeException {
-        rejectedRecordListener.handleMalformedRecord(record.lineNumber, record.ldifLines, message);
-    }
-
-    final void handleSchemaValidationFailure(final LDIFRecord record,
-            final List<LocalizableMessage> messages) throws DecodeException {
-        rejectedRecordListener.handleSchemaValidationFailure(record.lineNumber, record.ldifLines,
-                messages);
-    }
-
-    final void handleSchemaValidationWarning(final LDIFRecord record,
-            final List<LocalizableMessage> messages) throws DecodeException {
-        rejectedRecordListener.handleSchemaValidationWarning(record.lineNumber, record.ldifLines,
-                messages);
-    }
-
-    final void handleSkippedRecord(final LDIFRecord record, final LocalizableMessage message)
-            throws DecodeException {
-        rejectedRecordListener.handleSkippedRecord(record.lineNumber, record.ldifLines, message);
-    }
-
-    // Determine whether the provided line is a continuation line. Note
-    // that while RFC 2849 technically only allows a space in this
-    // position, both OpenLDAP and the Sun Java System Directory Server
-    // allow a tab as well, so we will too for compatibility reasons. See
-    // issue #852 for details.
+    /*
+     * Determine whether the provided line is a continuation line. Note that
+     * while RFC 2849 technically only allows a space in this position, both
+     * OpenLDAP and the Sun Java System Directory Server allow a tab as well, so
+     * we will too for compatibility reasons. See issue #852 for details.
+     */
     private boolean isContinuationLine(final String line) {
         return line.charAt(0) == ' ' || line.charAt(0) == '\t';
     }
@@ -720,5 +721,4 @@
         }
         return line;
     }
-
 }

--
Gitblit v1.10.0