/*
Copyright (C) DocuSign, Inc. All rights reserved.
This source code is intended only as a supplement to DocuSign SDK and/or on-line documentation.
This sample is designed to demonstrate DocuSign features and is not intended for production use.
Code and policy for a production application must be developed to meet the specific data and
security requirements of the application.
THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR
FITNESS FOR A PARTICULAR PURPOSE.
*/
package net.docusign.util;
import java.io.Serializable;
import java.io.Writer;
/**
* Writer used to output to a string builder.
*/
public class StringBuilderWriter extends Writer implements Serializable {
private static final long serialVersionUID = 1L;
private final StringBuilder builder;
public StringBuilderWriter() {
this.builder = new StringBuilder();
}
public StringBuilderWriter(int capacity) {
this.builder = new StringBuilder(capacity);
}
public StringBuilderWriter(StringBuilder builder) {
this.builder = (builder != null ? builder : new StringBuilder());
}
/* (non-Javadoc)
* @see java.io.Writer#append(char)
*/
@Override
public Writer append(char value) {
builder.append(value);
return this;
}
/* (non-Javadoc)
* @see java.io.Writer#append(java.lang.CharSequence)
*/
@Override
public Writer append(CharSequence value) {
builder.append(value);
return this;
}
/* (non-Javadoc)
* @see java.io.Writer#append(java.lang.CharSequence, int, int)
*/
@Override
public Writer append(CharSequence value, int start, int end) {
builder.append(value, start, end);
return this;
}
/* (non-Javadoc)
* @see java.io.Writer#close()
*/
@Override
public void close() {
}
/* (non-Javadoc)
* @see java.io.Writer#flush()
*/
@Override
public void flush() {
}
/* (non-Javadoc)
* @see java.io.Writer#write(java.lang.String)
*/
@Override
public void write(String value) {
if (value != null) {
builder.append(value);
}
}
/* (non-Javadoc)
* @see java.io.Writer#write(char[], int, int)
*/
@Override
public void write(char[] value, int offset, int length) {
if (value != null) {
builder.append(value, offset, length);
}
}
public StringBuilder getBuilder() {
return builder;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return builder.toString();
}
}