| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.util; |
| | | |
| | |
| | | |
| | | import java.io.OutputStream; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | |
| | | /** |
| | |
| | | public final class MultiOutputStream |
| | | extends OutputStream |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.util.MultiOutputStream"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public MultiOutputStream(OutputStream... targetStreams) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(targetStreams)); |
| | | |
| | | Validator.ensureNotNull(targetStreams); |
| | | |
| | |
| | | */ |
| | | public void close() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "close"); |
| | | |
| | | for (OutputStream s : targetStreams) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "close", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public void flush() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "flush"); |
| | | |
| | | for (OutputStream s : targetStreams) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "flush", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public void write(byte[] b) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "write", "byte[" + b.length + "]"); |
| | | |
| | | for (OutputStream s : targetStreams) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "write", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public void write(byte[] b, int off, int len) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "write", "byte[" + b.length + "]"); |
| | | |
| | | for (OutputStream s : targetStreams) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "write", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public void write(int b) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "write", StaticUtils.byteToHex((byte) b)); |
| | | |
| | | for (OutputStream s : targetStreams) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "write", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |