cz.cvut.kbss.jsonld.jackson.serialization.JacksonJsonWriter.java Source code

Java tutorial

Introduction

Here is the source code for cz.cvut.kbss.jsonld.jackson.serialization.JacksonJsonWriter.java

Source

/**
 * Copyright (C) 2016 Czech Technical University in Prague
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any
 * later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details. You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package cz.cvut.kbss.jsonld.jackson.serialization;

import com.fasterxml.jackson.core.JsonGenerator;

import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * Outputs JSON using Jackson.
 */
class JacksonJsonWriter implements cz.cvut.kbss.jsonld.serialization.JsonGenerator {

    private final JsonGenerator jsonGenerator;

    JacksonJsonWriter(JsonGenerator jsonGenerator) {
        this.jsonGenerator = jsonGenerator;
    }

    @Override
    public void writeFieldName(String s) throws IOException {
        jsonGenerator.writeFieldName(s);
    }

    @Override
    public void writeObjectStart() throws IOException {
        jsonGenerator.writeStartObject();
    }

    @Override
    public void writeObjectEnd() throws IOException {
        jsonGenerator.writeEndObject();
    }

    @Override
    public void writeArrayStart() throws IOException {
        jsonGenerator.writeStartArray();
    }

    @Override
    public void writeArrayEnd() throws IOException {
        jsonGenerator.writeEndArray();
    }

    @Override
    public void writeNumber(Number number) throws IOException {
        if (number instanceof Integer) {
            jsonGenerator.writeNumber(number.intValue());
        } else if (number instanceof Long) {
            jsonGenerator.writeNumber(number.longValue());
        } else if (number instanceof Float) {
            jsonGenerator.writeNumber(number.floatValue());
        } else if (number instanceof Double) {
            jsonGenerator.writeNumber(number.doubleValue());
        } else if (number instanceof BigInteger) {
            jsonGenerator.writeNumber((BigInteger) number);
        } else if (number instanceof BigDecimal) {
            jsonGenerator.writeNumber((BigDecimal) number);
        } else if (number instanceof Short) {
            jsonGenerator.writeNumber(number.shortValue());
        } else if (number instanceof Byte) {
            jsonGenerator.writeNumber(number.byteValue());
        } else {
            throw new IllegalArgumentException(
                    "Unable to write number " + number + " of type " + number.getClass());
        }
    }

    @Override
    public void writeBoolean(boolean b) throws IOException {
        jsonGenerator.writeBoolean(b);
    }

    @Override
    public void writeNull() throws IOException {
        jsonGenerator.writeNull();
    }

    @Override
    public void writeString(String s) throws IOException {
        jsonGenerator.writeString(s);
    }
}