/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.parser.prettyprinterv2;
import org.python.pydev.core.structure.FastStack;
import com.aptana.shared_core.string.FastStringBuffer;
public class WriterEraserV2 implements IWriterEraser {
FastStack<FastStringBuffer> buf = new FastStack<FastStringBuffer>(30);
public WriterEraserV2() {
pushTempBuffer(); //this is the initial buffer (should never be removed)
}
public void write(String o) {
buf.peek().append(o);
}
public void erase(String o) {
FastStringBuffer buffer = buf.peek();
if (buffer.toString().endsWith(o)) {
//only delete if it ends with what was passed
int len = o.length();
int bufLen = buffer.length();
buffer.delete(bufLen - len, bufLen);
}
}
public boolean endsWithSpace() {
FastStringBuffer current = buf.peek();
if (current.length() == 0) {
return false;
}
return current.lastChar() == ' ';
}
public FastStringBuffer getBuffer() {
return buf.peek();
}
public void pushTempBuffer() {
buf.push(new FastStringBuffer());
}
public String popTempBuffer() {
return buf.pop().toString();
}
@Override
public String toString() {
return "WriterEraser<" + buf.peek().toString() + ">";
}
}