
com.atlan.serde.ClientAwareDeserializationContext Maven / Gradle / Ivy
/* SPDX-License-Identifier: Apache-2.0
Copyright 2023 Atlan Pte. Ltd. */
package com.atlan.serde;
import com.atlan.AtlanClient;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.cfg.CacheProvider;
import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
import com.fasterxml.jackson.databind.deser.DefaultDeserializationContext;
import com.fasterxml.jackson.databind.deser.DeserializerCache;
import com.fasterxml.jackson.databind.deser.DeserializerFactory;
import com.fasterxml.jackson.databind.deser.ResolvableDeserializer;
import com.fasterxml.jackson.databind.introspect.Annotated;
import com.fasterxml.jackson.databind.util.ClassUtil;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
public class ClientAwareDeserializationContext extends DefaultDeserializationContext {
private static final long serialVersionUID = 2L;
private final AtlanClient client;
public ClientAwareDeserializationContext(DeserializerFactory df, DeserializerCache cache, AtlanClient client) {
super(df, cache);
this.client = client;
}
private ClientAwareDeserializationContext(ClientAwareDeserializationContext src, DeserializerFactory factory) {
super(src, factory);
this.client = src.client;
}
private ClientAwareDeserializationContext(ClientAwareDeserializationContext src) {
super(src);
this.client = src.client;
}
private ClientAwareDeserializationContext(
ClientAwareDeserializationContext src,
DeserializationConfig config,
JsonParser p,
InjectableValues values) {
super(src, config, p, values);
this.client = src.client;
}
private ClientAwareDeserializationContext(ClientAwareDeserializationContext src, DeserializationConfig config) {
super(src, config);
this.client = src.client;
}
@Override
public DefaultDeserializationContext withCaches(CacheProvider cacheProvider) {
return this;
}
@Override
public DefaultDeserializationContext with(DeserializerFactory factory) {
return new ClientAwareDeserializationContext(this, factory);
}
@Override
public DefaultDeserializationContext copy() {
ClassUtil.verifyMustOverride(ClientAwareDeserializationContext.class, this, "copy");
return new ClientAwareDeserializationContext(this);
}
@Override
public DefaultDeserializationContext createInstance(
DeserializationConfig config, JsonParser p, InjectableValues values) {
return new ClientAwareDeserializationContext(this, config, p, values);
}
@Override
public DefaultDeserializationContext createDummyInstance(DeserializationConfig config) {
// need to be careful to create "real", not blue-print, instance
return new ClientAwareDeserializationContext(this, config);
}
@SuppressWarnings("unchecked")
@Override
public JsonDeserializer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy