package com.jsoniter.output; import com.jsoniter.*; 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 writeStringWithoutQuote(String obj, JsonStream stream) throws IOException { StreamImplString.writeStringWithoutQuote(stream, obj); } public static void staticGenEncoders(TypeLiteral[] typeLiterals) { Codegen.staticGenEncoders(typeLiterals); } 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); } }