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

com.draagon.meta.io.json.JsonMetaDataWriter Maven / Gradle / Ivy

package com.draagon.meta.io.json;

import com.draagon.meta.io.MetaDataIOException;
import com.draagon.meta.io.MetaDataWriter;
import com.draagon.meta.loader.MetaDataLoader;
import com.google.gson.Gson;
import com.google.gson.stream.JsonWriter;

import java.io.IOException;
import java.io.Writer;

public abstract class JsonMetaDataWriter extends MetaDataWriter {

    private final Gson gson;
    private final Writer writer;
    private final JsonWriter out;

    protected JsonMetaDataWriter(MetaDataLoader loader, Writer writer ) throws IOException {
        super(loader);
        this.gson = new Gson();
        this.writer = writer;
        this.out = gson.newJsonWriter( writer );
    }

    public JsonMetaDataWriter withIndent( String indent ) {
        out.setIndent( indent );
        return this;
    }

    protected JsonWriter out() {
        return out;
    }

    @Override
    public void close() throws IOException {
        if ( out != null ) {
            out.close();
        }
        /*else if ( writer != null ) {
            try {
                writer.close();
            } catch (IOException e) {
                throw new MetaDataIOException( this, e.toString(), e );
            }
        }*/
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy