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

com.jsoniter.output.CodegenAccess Maven / Gradle / Ivy

Go to download

jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go

There is a newer version: 0.9.23
Show newest version
package com.jsoniter.output;

import com.jsoniter.any.Any;
import com.jsoniter.spi.Encoder;
import com.jsoniter.spi.JsoniterSpi;
import com.jsoniter.spi.TypeLiteral;

import java.io.IOException;

public class CodegenAccess {
    public static void writeVal(String cacheKey, Object obj, JsonStream stream) throws IOException {
        JsoniterSpi.getEncoder(cacheKey).encode(obj, stream);
    }

    public static void writeVal(String cacheKey, boolean obj, JsonStream stream) throws IOException {
        Encoder.BooleanEncoder encoder = (Encoder.BooleanEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeBoolean(obj, stream);
    }

    public static void writeVal(String cacheKey, byte obj, JsonStream stream) throws IOException {
        Encoder.ShortEncoder encoder = (Encoder.ShortEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeShort(obj, stream);
    }

    public static void writeVal(String cacheKey, short obj, JsonStream stream) throws IOException {
        Encoder.ShortEncoder encoder = (Encoder.ShortEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeShort(obj, stream);
    }

    public static void writeVal(String cacheKey, int obj, JsonStream stream) throws IOException {
        Encoder.IntEncoder encoder = (Encoder.IntEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeInt(obj, stream);
    }

    public static void writeVal(String cacheKey, char obj, JsonStream stream) throws IOException {
        Encoder.IntEncoder encoder = (Encoder.IntEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeInt(obj, stream);
    }

    public static void writeVal(String cacheKey, long obj, JsonStream stream) throws IOException {
        Encoder.LongEncoder encoder = (Encoder.LongEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeLong(obj, stream);
    }

    public static void writeVal(String cacheKey, float obj, JsonStream stream) throws IOException {
        Encoder.FloatEncoder encoder = (Encoder.FloatEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeFloat(obj, stream);
    }

    public static void writeVal(String cacheKey, double obj, JsonStream stream) throws IOException {
        Encoder.DoubleEncoder encoder = (Encoder.DoubleEncoder) JsoniterSpi.getEncoder(cacheKey);
        encoder.encodeDouble(obj, stream);
    }

    public static void writeMapKey(String cacheKey, Object mapKey, JsonStream stream) throws IOException {
        String encodedMapKey = JsoniterSpi.getMapKeyEncoder(cacheKey).encode(mapKey);
        stream.writeVal(encodedMapKey);
    }

    public static void writeStringWithoutQuote(String obj, JsonStream stream) throws IOException {
        StreamImplString.writeStringWithoutQuote(stream, obj);
    }

    public static void staticGenEncoders(TypeLiteral[] typeLiterals, StaticCodegenTarget staticCodegenTarget) {
        Codegen.staticGenEncoders(typeLiterals, staticCodegenTarget);
    }

    public static Any wrap(Object val) {
        if (val == null) {
            return Any.wrapNull();
        }
        Class clazz = val.getClass();
        String cacheKey = TypeLiteral.create(clazz).getEncoderCacheKey();
        return Codegen.getReflectionEncoder(cacheKey, clazz).wrap(val);
    }

    public static class StaticCodegenTarget {

        public final String outputDir;

        public StaticCodegenTarget(String outputDir) {
            this.outputDir = outputDir;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy