From 263d085885df024dca9250cc03c807912b0a7662 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 24 Apr 2012 22:33:21 +0000
Subject: [PATCH] Reformat to comply with new Checkstyle rules.
---
opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFWriter.java | 766 ++++++++++++++++++++++++----------------------------------
1 files changed, 324 insertions(+), 442 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFWriter.java b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFWriter.java
index 3201b7e..be8d3a9 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFWriter.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/AbstractLDIFWriter.java
@@ -6,17 +6,16 @@
* (the "License"). You may not use this file except in compliance
* with the License.
*
- * You can obtain a copy of the license at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* 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/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * 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
@@ -28,8 +27,6 @@
package org.forgerock.opendj.ldif;
-
-
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
@@ -45,503 +42,388 @@
import com.forgerock.opendj.util.Base64;
import com.forgerock.opendj.util.Validator;
-
-
/**
* Common LDIF writer functionality.
*/
-abstract class AbstractLDIFWriter extends AbstractLDIFStream
-{
-
- /**
- * LDIF writer implementation interface.
- */
- interface LDIFWriterImpl
- {
+abstract class AbstractLDIFWriter extends AbstractLDIFStream {
/**
- * Closes any resources associated with this LDIF writer implementation.
- *
- * @throws IOException
- * If an error occurs while closing.
+ * LDIF writer implementation interface.
*/
- void close() throws IOException;
+ interface LDIFWriterImpl {
+ /**
+ * Closes any resources associated with this LDIF writer implementation.
+ *
+ * @throws IOException
+ * If an error occurs while closing.
+ */
+ void close() throws IOException;
+ /**
+ * Flushes this LDIF writer implementation so that any buffered data is
+ * written immediately to underlying stream, flushing the stream if it
+ * is also {@code Flushable}.
+ * <p>
+ * If the intended destination of this stream is an abstraction provided
+ * by the underlying operating system, for example a file, then flushing
+ * the stream guarantees only that bytes previously written to the
+ * stream are passed to the operating system for writing; it does not
+ * guarantee that they are actually written to a physical device such as
+ * a disk drive.
+ *
+ * @throws IOException
+ * If an error occurs while flushing.
+ */
+ void flush() throws IOException;
+
+ /**
+ * Prints the provided {@code CharSequence}. Implementations must not
+ * add a new-line character sequence.
+ *
+ * @param s
+ * The {@code CharSequence} to be printed.
+ * @throws IOException
+ * If an error occurs while printing {@code s}.
+ */
+ void print(CharSequence s) throws IOException;
+
+ /**
+ * Prints a new-line character sequence.
+ *
+ * @throws IOException
+ * If an error occurs while printing the new-line character
+ * sequence.
+ */
+ void println() throws IOException;
+ }
/**
- * Flushes this LDIF writer implementation so that any buffered data is
- * written immediately to underlying stream, flushing the stream if it is
- * also {@code Flushable}.
- * <p>
- * If the intended destination of this stream is an abstraction provided by
- * the underlying operating system, for example a file, then flushing the
- * stream guarantees only that bytes previously written to the stream are
- * passed to the operating system for writing; it does not guarantee that
- * they are actually written to a physical device such as a disk drive.
- *
- * @throws IOException
- * If an error occurs while flushing.
+ * LDIF string list writer implementation.
*/
- void flush() throws IOException;
+ private static final class LDIFWriterListImpl implements LDIFWriterImpl {
+ private final StringBuilder builder = new StringBuilder();
+ private final List<String> ldifLines;
+
+ /**
+ * Creates a new LDIF list writer.
+ *
+ * @param ldifLines
+ * The string list.
+ */
+ LDIFWriterListImpl(final List<String> ldifLines) {
+ this.ldifLines = ldifLines;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void close() throws IOException {
+ // Nothing to do.
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void flush() throws IOException {
+ // Nothing to do.
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void print(final CharSequence s) throws IOException {
+ builder.append(s);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void println() throws IOException {
+ ldifLines.add(builder.toString());
+ builder.setLength(0);
+ }
+ }
/**
- * Prints the provided {@code CharSequence}. Implementations must not add a
- * new-line character sequence.
- *
- * @param s
- * The {@code CharSequence} to be printed.
- * @throws IOException
- * If an error occurs while printing {@code s}.
+ * LDIF output stream writer implementation.
*/
- void print(CharSequence s) throws IOException;
+ private static final class LDIFWriterOutputStreamImpl implements LDIFWriterImpl {
+ private final BufferedWriter writer;
+ /**
+ * Creates a new LDIF output stream writer.
+ *
+ * @param out
+ * The output stream.
+ */
+ LDIFWriterOutputStreamImpl(final OutputStream out) {
+ this.writer = new BufferedWriter(new OutputStreamWriter(out));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void close() throws IOException {
+ writer.close();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void flush() throws IOException {
+ writer.flush();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void print(final CharSequence s) throws IOException {
+ writer.append(s);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void println() throws IOException {
+ writer.newLine();
+ }
+ }
+
+ // Regular expression used for splitting comments on line-breaks.
+ private static final Pattern SPLIT_NEWLINE = Pattern.compile("\\r?\\n");
+
+ boolean addUserFriendlyComments = false;
+
+ final LDIFWriterImpl impl;
+
+ int wrapColumn = 0;
+
+ private final StringBuilder builder = new StringBuilder(80);
+
+ Schema schema = Schema.getDefaultSchema();
/**
- * Prints a new-line character sequence.
- *
- * @throws IOException
- * If an error occurs while printing the new-line character
- * sequence.
- */
- void println() throws IOException;
- }
-
-
-
- /**
- * LDIF string list writer implementation.
- */
- private static final class LDIFWriterListImpl implements LDIFWriterImpl
- {
-
- private final StringBuilder builder = new StringBuilder();
-
- private final List<String> ldifLines;
-
-
-
- /**
- * Creates a new LDIF list writer.
+ * Creates a new LDIF entry writer which will append lines of LDIF to the
+ * provided list.
*
* @param ldifLines
- * The string list.
+ * The list to which lines of LDIF should be appended.
*/
- LDIFWriterListImpl(final List<String> ldifLines)
- {
- this.ldifLines = ldifLines;
+ public AbstractLDIFWriter(final List<String> ldifLines) {
+ Validator.ensureNotNull(ldifLines);
+ this.impl = new LDIFWriterListImpl(ldifLines);
}
-
-
/**
- * {@inheritDoc}
- */
- public void close() throws IOException
- {
- // Nothing to do.
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public void flush() throws IOException
- {
- // Nothing to do.
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public void print(final CharSequence s) throws IOException
- {
- builder.append(s);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public void println() throws IOException
- {
- ldifLines.add(builder.toString());
- builder.setLength(0);
- }
- }
-
-
-
- /**
- * LDIF output stream writer implementation.
- */
- private static final class LDIFWriterOutputStreamImpl implements
- LDIFWriterImpl
- {
-
- private final BufferedWriter writer;
-
-
-
- /**
- * Creates a new LDIF output stream writer.
+ * Creates a new LDIF entry writer whose destination is the provided output
+ * stream.
*
* @param out
- * The output stream.
+ * The output stream to use.
*/
- LDIFWriterOutputStreamImpl(final OutputStream out)
- {
- this.writer = new BufferedWriter(new OutputStreamWriter(out));
+ public AbstractLDIFWriter(final OutputStream out) {
+ Validator.ensureNotNull(out);
+ this.impl = new LDIFWriterOutputStreamImpl(out);
}
-
-
- /**
- * {@inheritDoc}
- */
- public void close() throws IOException
- {
- writer.close();
+ final void close0() throws IOException {
+ flush0();
+ impl.close();
}
-
-
- /**
- * {@inheritDoc}
- */
- public void flush() throws IOException
- {
- writer.flush();
+ final void flush0() throws IOException {
+ impl.flush();
}
+ final void writeComment0(final CharSequence comment) throws IOException {
+ Validator.ensureNotNull(comment);
+ // First, break up the comment into multiple lines to preserve the
+ // original spacing that it contained.
+ final String[] lines = SPLIT_NEWLINE.split(comment);
- /**
- * {@inheritDoc}
- */
- public void print(final CharSequence s) throws IOException
- {
- writer.append(s);
- }
+ // Now iterate through the lines and write them out, prefixing and
+ // wrapping them as necessary.
+ for (final String line : lines) {
+ if (!shouldWrap()) {
+ impl.print("# ");
+ impl.print(line);
+ impl.println();
+ } else {
+ final int breakColumn = wrapColumn - 2;
+ if (line.length() <= breakColumn) {
+ impl.print("# ");
+ impl.print(line);
+ impl.println();
+ } else {
+ int startPos = 0;
+ outerLoop:
+ while (startPos < line.length()) {
+ if (startPos + breakColumn >= line.length()) {
+ impl.print("# ");
+ impl.print(line.substring(startPos));
+ impl.println();
+ startPos = line.length();
+ } else {
+ final int endPos = startPos + breakColumn;
+ int i = endPos - 1;
+ while (i > startPos) {
+ if (line.charAt(i) == ' ') {
+ impl.print("# ");
+ impl.print(line.substring(startPos, i));
+ impl.println();
- /**
- * {@inheritDoc}
- */
- public void println() throws IOException
- {
- writer.newLine();
- }
- }
+ startPos = i + 1;
+ continue outerLoop;
+ }
+ i--;
+ }
+ // If we've gotten here, then there are no spaces on
+ // the
+ // entire line. If that happens, then we'll have to
+ // break
+ // in the middle of a word.
+ impl.print("# ");
+ impl.print(line.substring(startPos, endPos));
+ impl.println();
- // Regular expression used for splitting comments on line-breaks.
- private static final Pattern SPLIT_NEWLINE = Pattern.compile("\\r?\\n");
-
- boolean addUserFriendlyComments = false;
-
- final LDIFWriterImpl impl;
-
- int wrapColumn = 0;
-
- private final StringBuilder builder = new StringBuilder(80);
-
- Schema schema = Schema.getDefaultSchema();
-
-
-
- /**
- * Creates a new LDIF entry writer which will append lines of LDIF to the
- * provided list.
- *
- * @param ldifLines
- * The list to which lines of LDIF should be appended.
- */
- public AbstractLDIFWriter(final List<String> ldifLines)
- {
- Validator.ensureNotNull(ldifLines);
- this.impl = new LDIFWriterListImpl(ldifLines);
- }
-
-
-
- /**
- * Creates a new LDIF entry writer whose destination is the provided output
- * stream.
- *
- * @param out
- * The output stream to use.
- */
- public AbstractLDIFWriter(final OutputStream out)
- {
- Validator.ensureNotNull(out);
- this.impl = new LDIFWriterOutputStreamImpl(out);
- }
-
-
-
- final void close0() throws IOException
- {
- flush0();
- impl.close();
- }
-
-
-
- final void flush0() throws IOException
- {
- impl.flush();
- }
-
-
-
- final void writeComment0(final CharSequence comment) throws IOException
- {
- Validator.ensureNotNull(comment);
-
- // First, break up the comment into multiple lines to preserve the
- // original spacing that it contained.
- final String[] lines = SPLIT_NEWLINE.split(comment);
-
- // Now iterate through the lines and write them out, prefixing and
- // wrapping them as necessary.
- for (final String line : lines)
- {
- if (!shouldWrap())
- {
- impl.print("# ");
- impl.print(line);
- impl.println();
- }
- else
- {
- final int breakColumn = wrapColumn - 2;
-
- if (line.length() <= breakColumn)
- {
- impl.print("# ");
- impl.print(line);
- impl.println();
- }
- else
- {
- int startPos = 0;
- outerLoop: while (startPos < line.length())
- {
- if (startPos + breakColumn >= line.length())
- {
- impl.print("# ");
- impl.print(line.substring(startPos));
- impl.println();
- startPos = line.length();
- }
- else
- {
- final int endPos = startPos + breakColumn;
-
- int i = endPos - 1;
- while (i > startPos)
- {
- if (line.charAt(i) == ' ')
- {
- impl.print("# ");
- impl.print(line.substring(startPos, i));
- impl.println();
-
- startPos = i + 1;
- continue outerLoop;
+ startPos = endPos;
+ }
+ }
}
-
- i--;
- }
-
- // If we've gotten here, then there are no spaces on the
- // entire line. If that happens, then we'll have to break
- // in the middle of a word.
- impl.print("# ");
- impl.print(line.substring(startPos, endPos));
- impl.println();
-
- startPos = endPos;
}
- }
}
- }
- }
- }
-
-
-
- final void writeControls(final List<Control> controls) throws IOException
- {
- for (final Control control : controls)
- {
- final StringBuilder key = new StringBuilder("control: ");
- key.append(control.getOID());
- key.append(control.isCritical() ? " true" : " false");
-
- if (control.hasValue())
- {
- writeKeyAndValue(key, control.getValue());
- }
- else
- {
- writeLine(key);
- }
- }
- }
-
-
-
- final void writeKeyAndValue(final CharSequence key, final ByteSequence value)
- throws IOException
- {
- builder.setLength(0);
-
- // If the value is empty, then just append a single colon and a
- // single space.
- if (value.length() == 0)
- {
- builder.append(key);
- builder.append(": ");
- }
- else if (needsBase64Encoding(value))
- {
- if (addUserFriendlyComments)
- {
- // TODO: Only display comments for valid UTF-8 values, not
- // binary values.
- }
-
- builder.setLength(0);
- builder.append(key);
- builder.append(":: ");
- builder.append(Base64.encode(value));
- }
- else
- {
- builder.append(key);
- builder.append(": ");
- builder.append(value.toString());
}
- writeLine(builder);
- }
+ final void writeControls(final List<Control> controls) throws IOException {
+ for (final Control control : controls) {
+ final StringBuilder key = new StringBuilder("control: ");
+ key.append(control.getOID());
+ key.append(control.isCritical() ? " true" : " false");
-
-
- final void writeKeyAndValue(final CharSequence key, final CharSequence value)
- throws IOException
- {
- // FIXME: We should optimize this at some point.
- writeKeyAndValue(key, ByteString.valueOf(value.toString()));
- }
-
-
-
- final void writeLine(final CharSequence line) throws IOException
- {
- final int length = line.length();
- if (shouldWrap() && length > wrapColumn)
- {
- impl.print(line.subSequence(0, wrapColumn));
- impl.println();
- int pos = wrapColumn;
- while (pos < length)
- {
- final int writeLength = Math.min(wrapColumn - 1, length - pos);
- impl.print(" ");
- impl.print(line.subSequence(pos, pos + writeLength));
- impl.println();
- pos += wrapColumn - 1;
- }
- }
- else
- {
- impl.print(line);
- impl.println();
- }
- }
-
-
-
- private boolean needsBase64Encoding(final ByteSequence bytes)
- {
- final int length = bytes.length();
- if (length == 0)
- {
- return false;
+ if (control.hasValue()) {
+ writeKeyAndValue(key, control.getValue());
+ } else {
+ writeLine(key);
+ }
+ }
}
- // If the value starts with a space, colon, or less than, then it
- // needs to be base64 encoded.
- switch (bytes.byteAt(0))
- {
- case 0x20: // Space
- case 0x3A: // Colon
- case 0x3C: // Less-than
- return true;
+ final void writeKeyAndValue(final CharSequence key, final ByteSequence value)
+ throws IOException {
+ builder.setLength(0);
+
+ // If the value is empty, then just append a single colon and a
+ // single space.
+ if (value.length() == 0) {
+ builder.append(key);
+ builder.append(": ");
+ } else if (needsBase64Encoding(value)) {
+ if (addUserFriendlyComments) {
+ // TODO: Only display comments for valid UTF-8 values, not
+ // binary values.
+ }
+
+ builder.setLength(0);
+ builder.append(key);
+ builder.append(":: ");
+ builder.append(Base64.encode(value));
+ } else {
+ builder.append(key);
+ builder.append(": ");
+ builder.append(value.toString());
+ }
+
+ writeLine(builder);
}
- // If the value ends with a space, then it needs to be
- // base64 encoded.
- if (length > 1 && bytes.byteAt(length - 1) == 0x20)
- {
- return true;
+ final void writeKeyAndValue(final CharSequence key, final CharSequence value)
+ throws IOException {
+ // FIXME: We should optimize this at some point.
+ writeKeyAndValue(key, ByteString.valueOf(value.toString()));
}
- // If the value contains a null, newline, or return character, then
- // it needs to be base64 encoded.
- byte b;
- for (int i = 0; i < bytes.length(); i++)
- {
- b = bytes.byteAt(i);
- if (b > 127 || b < 0)
- {
- return true;
- }
-
- switch (b)
- {
- case 0x00: // Null
- case 0x0A: // New line
- case 0x0D: // Carriage return
- return true;
- }
+ final void writeLine(final CharSequence line) throws IOException {
+ final int length = line.length();
+ if (shouldWrap() && length > wrapColumn) {
+ impl.print(line.subSequence(0, wrapColumn));
+ impl.println();
+ int pos = wrapColumn;
+ while (pos < length) {
+ final int writeLength = Math.min(wrapColumn - 1, length - pos);
+ impl.print(" ");
+ impl.print(line.subSequence(pos, pos + writeLength));
+ impl.println();
+ pos += wrapColumn - 1;
+ }
+ } else {
+ impl.print(line);
+ impl.println();
+ }
}
- // If we've made it here, then there's no reason to base64 encode.
- return false;
- }
+ private boolean needsBase64Encoding(final ByteSequence bytes) {
+ final int length = bytes.length();
+ if (length == 0) {
+ return false;
+ }
+ // If the value starts with a space, colon, or less than, then it
+ // needs to be base64 encoded.
+ switch (bytes.byteAt(0)) {
+ case 0x20: // Space
+ case 0x3A: // Colon
+ case 0x3C: // Less-than
+ return true;
+ }
+ // If the value ends with a space, then it needs to be
+ // base64 encoded.
+ if (length > 1 && bytes.byteAt(length - 1) == 0x20) {
+ return true;
+ }
- private boolean shouldWrap()
- {
- return wrapColumn > 1;
- }
+ // If the value contains a null, newline, or return character, then
+ // it needs to be base64 encoded.
+ byte b;
+ for (int i = 0; i < bytes.length(); i++) {
+ b = bytes.byteAt(i);
+ if (b > 127 || b < 0) {
+ return true;
+ }
+ switch (b) {
+ case 0x00: // Null
+ case 0x0A: // New line
+ case 0x0D: // Carriage return
+ return true;
+ }
+ }
+ // If we've made it here, then there's no reason to base64 encode.
+ return false;
+ }
- @SuppressWarnings("unused")
- private void writeKeyAndURL(final CharSequence key, final CharSequence url)
- throws IOException
- {
- builder.setLength(0);
+ private boolean shouldWrap() {
+ return wrapColumn > 1;
+ }
- builder.append(key);
- builder.append(":: ");
- builder.append(url);
+ @SuppressWarnings("unused")
+ private void writeKeyAndURL(final CharSequence key, final CharSequence url) throws IOException {
+ builder.setLength(0);
- writeLine(builder);
- }
+ builder.append(key);
+ builder.append(":: ");
+ builder.append(url);
+
+ writeLine(builder);
+ }
}
--
Gitblit v1.10.0