/*******************************************************************************
* Copyright (c) 2008 SAP
* see https://research.qkal.sap.corp/mediawiki/index.php/CoMONET
*
* Date: $Date: 2009-04-23 14:54:43 +0200 (Do, 23 Apr 2009) $
* @version $Revision: 6272 $
* @author: $Author: c5106462 $
*******************************************************************************/
package com.sap.furcas.parsergenerator.util;
import java.io.IOException;
/**
* StringBuffer clone to use varchar notation, for readability of code.
*/
public class VarStringBuffer implements Appendable, CharSequence {
private StringBuilder buffer;
public VarStringBuffer() {
super();
buffer = new StringBuilder();
}
public VarStringBuffer(int initSize) {
super();
buffer = new StringBuilder(initSize);
}
public VarStringBuffer(StringBuilder initBuffer) {
super();
buffer = initBuffer;
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(java.lang.CharSequence)
*/
public VarStringBuffer append(CharSequence csq) {
buffer.append(csq);
return this;
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(char)
*/
public VarStringBuffer append(char c) {
buffer.append(c);
return this;
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(java.lang.CharSequence, int, int)
*/
public VarStringBuffer append(CharSequence csq, int start, int end)
throws IOException {
buffer.append(csq, start, end);
return this;
}
/* (non-Javadoc)
* @see java.lang.CharSequence#charAt(int)
*/
public char charAt(int index) {
return buffer.charAt(index);
}
/* (non-Javadoc)
* @see java.lang.CharSequence#length()
*/
public int length() {
return buffer.length();
}
/* (non-Javadoc)
* @see java.lang.CharSequence#subSequence(int, int)
*/
public CharSequence subSequence(int start, int end) {
return buffer.subSequence(start, end);
}
public VarStringBuffer append(Object obj) {
if (obj != null) {
buffer.append(String.valueOf(obj));
}
return this;
}
public VarStringBuffer append(Object... objArray) {
if (objArray != null) {
for (Object object : objArray) {
buffer.append(String.valueOf(object));
}
}
return this;
}
@Override
public boolean equals(Object obj) {
return buffer.toString().equals(String.valueOf(obj));
}
@Override
public int hashCode() {
return buffer.toString().hashCode();
}
@Override
public String toString() {
return buffer.toString();
}
/**
* @param i
*/
public void ensureCapacity(int i) {
buffer.ensureCapacity(i);
}
}