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

com.fasterxml.jackson.databind.util.Converter Maven / Gradle / Ivy

There is a newer version: 2.17.0
Show newest version
package com.fasterxml.jackson.databind.util;

import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.type.TypeFactory;

/**
 * Helper interface for things that convert Objects of
 * one type to another.
 *

* NOTE: implementors are strongly encouraged to extend {@link StdConverter} * instead of directly implementing {@link Converter}, since that can * help with default implementation of typically boiler-plate code. * * @param Type of values converter takes * @param Result type from conversion * * @see com.fasterxml.jackson.databind.ser.std.StdDelegatingSerializer * @see com.fasterxml.jackson.databind.deser.std.StdDelegatingDeserializer * * @since 2.1 */ public interface Converter { /** * Main conversion method. */ public OUT convert(IN value); /** * Method that can be used to find out actual input (source) type; this * usually can be determined from type parameters, but may need * to be implemented differently from programmatically defined * converters (which can not change static type parameter bindings). * * @since 2.2 */ public JavaType getInputType(TypeFactory typeFactory); /** * Method that can be used to find out actual output (target) type; this * usually can be determined from type parameters, but may need * to be implemented differently from programmatically defined * converters (which can not change static type parameter bindings). * * @since 2.2 */ public JavaType getOutputType(TypeFactory typeFactory); /* /********************************************************** /* Helper class(es) /********************************************************** */ /** * This marker class is only to be used with annotations, to * indicate that no converter is to be used. *

* Specifically, this class is to be used as the marker for * annotation {@link com.fasterxml.jackson.databind.annotation.JsonSerialize}, * property converter (and related) * * @since 2.2 */ public abstract static class None implements Converter { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy