
com.koushikdutta.async.parser.StringParser Maven / Gradle / Ivy
package com.koushikdutta.async.parser;
import com.koushikdutta.async.ByteBufferList;
import com.koushikdutta.async.DataEmitter;
import com.koushikdutta.async.DataSink;
import com.koushikdutta.async.callback.CompletedCallback;
import com.koushikdutta.async.future.Future;
import com.koushikdutta.async.future.TransformFuture;
import java.nio.charset.Charset;
/**
* Created by koush on 5/27/13.
*/
public class StringParser implements AsyncParser {
@Override
public Future parse(DataEmitter emitter) {
final String charset = emitter.charset();
return new ByteBufferListParser().parse(emitter)
.then(new TransformFuture() {
@Override
protected void transform(ByteBufferList result) throws Exception {
setComplete(result.readString(charset != null ? Charset.forName(charset) : null));
}
});
}
@Override
public void write(DataSink sink, String value, CompletedCallback completed) {
new ByteBufferListParser().write(sink, new ByteBufferList(value.getBytes()), completed);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy