return false; final DslJson.Settings<Object> settings = new DslJson.Settings<>() .resolveReader(Settings.UNKNOWN_READER) .resolveWriter(Settings.UNKNOWN_WRITER) .resolveReader(CollectionAnalyzer.READER) .resolveWriter(CollectionAnalyzer.WRITER) .resolveReader(ArrayAnalyzer.READER) .resolveWriter(ArrayAnalyzer.WRITER) .resolveReader(MapAnalyzer.READER) .resolveWriter(MapAnalyzer.WRITER) .includeServiceLoader(getClass().getClassLoader());
@Override public JsonbBuilder withConfig(JsonbConfig config) { config.getProperty("jsonb.null-values") .ifPresent(o -> settings.skipDefaultValues(Boolean.FALSE.equals(o))); return this; }
/** * Will be removed. Use DslJson(Settings) instead. * Fully configurable entry point. * * @param context context instance which can be provided to deserialized objects. Use null if not sure * @param javaSpecifics register Java graphics specific classes such as java.awt.Point, Image, ... * @param fallback in case of unsupported type, try serialization/deserialization through external API * @param omitDefaults should serialization produce minified JSON (omit nulls and default values) * @param keyCache parsed keys can be cached (this is only used in small subset of parsing) * @param serializers additional serializers/deserializers which will be immediately registered into readers/writers */ @Deprecated public DslJson( @Nullable final TContext context, final boolean javaSpecifics, @Nullable final Fallback<TContext> fallback, final boolean omitDefaults, @Nullable final StringCache keyCache, final Iterable<Configuration> serializers) { this(new Settings<TContext>() .withContext(context) .withJavaConverters(javaSpecifics) .fallbackTo(fallback) .skipDefaultValues(omitDefaults) .useKeyCache(keyCache) .with(serializers) ); }
public static <T> DslJson.Settings<T> withAnalyzers(boolean unknownReader, boolean unknownWriter) { DslJson.Settings<T> settings = new DslJson.Settings<>(); if (unknownReader) settings.resolveReader(UNKNOWN_READER); settings.resolveReader(CollectionAnalyzer.READER) .resolveWriter(CollectionAnalyzer.WRITER) .resolveReader(ArrayAnalyzer.READER) .resolveWriter(ArrayAnalyzer.WRITER) .resolveReader(MapAnalyzer.READER) .resolveWriter(MapAnalyzer.WRITER) .resolveWriter(EnumAnalyzer.CONVERTER) .resolveReader(EnumAnalyzer.CONVERTER) .resolveWriter(ObjectAnalyzer.CONVERTER) .resolveBinder(ObjectAnalyzer.CONVERTER) .resolveReader(ObjectAnalyzer.CONVERTER) .resolveWriter(ImmutableAnalyzer.CONVERTER) .resolveReader(ImmutableAnalyzer.CONVERTER) .resolveWriter(MixinAnalyzer.WRITER); if (unknownWriter) settings.resolveWriter(UNKNOWN_WRITER); return settings; } }
public DslJsonSerializer(StacktraceConfiguration stacktraceConfiguration) { this.stacktraceConfiguration = stacktraceConfiguration; jw = new DslJson<>(new DslJson.Settings<>()).newWriter(BUFFER_SIZE); }
public static <T> DslJson.Settings<T> withRuntime() { DslJson.Settings<T> settings = withAnalyzers(); return settings.with(new ConfigureJava8()); }
/** * Load converters using thread local ClassLoader. * Will scan through `META-INF/services/com.dslplatform.json.Configuration` file and register implementation during startup. * This will pick up compile time databindings if they are available in specific folder. * <p> * Note that gradle on Android has issues with preserving that file, in which case it can be provided manually. * DslJson will fall back to "expected" class name if it doesn't find anything during scanning. * * @return itself */ public Settings<TContext> includeServiceLoader() { return includeServiceLoader(Thread.currentThread().getContextClassLoader()); }
public static <T> DslJson.Settings<T> basicSetup() { DslJson.Settings<T> settings = withAnalyzers(); return settings.includeServiceLoader(); }
/** * Simple initialization entry point. * Will provide null for TContext * Java graphics readers/writers will not be registered. * Fallback will not be configured. * Key cache will be enables, values cache will be disabled. * Default ServiceLoader.load method will be used to setup services from META-INF */ public DslJson() { this(new Settings<TContext>().includeServiceLoader()); }