All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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