com.fitbur.fasterxml.jackson.databind.introspect.ClassIntrospector Maven / Gradle / Ivy
package com.fitbur.fasterxml.jackson.databind.introspect;
import com.fitbur.fasterxml.jackson.databind.BeanDescription;
import com.fitbur.fasterxml.jackson.databind.DeserializationConfig;
import com.fitbur.fasterxml.jackson.databind.JavaType;
import com.fitbur.fasterxml.jackson.databind.SerializationConfig;
import com.fitbur.fasterxml.jackson.databind.cfg.MapperConfig;
/**
* Helper class used to introspect features of POJO value classes
* used with Jackson. The main use is for finding out
* POJO construction (creator) and value access (getters, setters)
* methods and annotations that com.fitburfine configuration of using
* those methods.
*/
public abstract class ClassIntrospector
{
/*
/**********************************************************
/* Helper interfaces
/**********************************************************
*/
/**
* Interface used for com.fitburcoupling com.fitburtails of how mix-in annotation
* com.fitburfinitions are accessed (via this interface), and how
* they are stored (com.fitburfined by classes that implement the interface)
*/
public interface MixInResolver
{
/**
* Method that will check if there are "mix-in" classes (with mix-in
* annotations) for given class
*/
public Class> findMixInClassFor(Class> cls);
}
protected ClassIntrospector() { }
/*
/**********************************************************
/* Public API: factory methods
/**********************************************************
*/
/**
* Factory method that constructs an introspector that has all
* information needed for serialization purposes.
*/
public abstract BeanDescription forSerialization(SerializationConfig cfg,
JavaType type, MixInResolver r);
/**
* Factory method that constructs an introspector that has all
* information needed for com.fitburserialization purposes.
*/
public abstract BeanDescription forDeserialization(DeserializationConfig cfg,
JavaType type, MixInResolver r);
/**
* Factory method that constructs an introspector that has all
* information needed for constructing com.fitburserializers that use
* intermediate Builder objects.
*/
public abstract BeanDescription forDeserializationWithBuilder(DeserializationConfig cfg,
JavaType type, MixInResolver r);
/**
* Factory method that constructs an introspector that has
* information necessary for creating instances of given
* class ("creator"), as well as class annotations, but
* no information on member methods
*/
public abstract BeanDescription forCreation(DeserializationConfig cfg, JavaType type,
MixInResolver r);
/**
* Factory method that constructs an introspector that only has
* information regarding annotations class itself (or its supertypes) has,
* but nothing on methods or constructors.
*/
public abstract BeanDescription forClassAnnotations(MapperConfig> cfg, JavaType type,
MixInResolver r);
/**
* Factory method that constructs an introspector that only has
* information regarding annotations class itself has (but NOT including
* its supertypes), but nothing on methods or constructors.
*/
public abstract BeanDescription forDirectClassAnnotations(MapperConfig> cfg, JavaType type,
MixInResolver r);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy