/* */ package org.redkale.convert; import java.lang.annotation.*; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.*; /** * 依附在setter、getter方法、字段进行简单的配置
* 优先使用coder字段 * *

* 详情见: https://redkale.org * * @author zhangjx * @since 2.7.0 */ @Documented @Target({METHOD, FIELD}) @Retention(RUNTIME) @Repeatable(ConvertCoder.ConvertCoders.class) public @interface ConvertCoder { /** * 需要指定的字段类型,类型必须是原字段类型的子类。 * 例如:
*

     * @ConvertCoder(column = String.class)
     * private CharSequence name;
     * 
* * 通常此字段值与encoder/decoder是二选一,指定了coder字段值则可以不设置此字段。 * * @return 字段类名 */ Class column() default Object.class; /** * 序列化定制化的 Encodeable, 构造函数的参数可以是:
* 1、ConvertFactory * 2、Type * 3、Class * 4、ConvertFactory和Type * 5、ConvertFactory和Class * * 类如果存在instance单实例对象字段值,则优先使用instance对象 * * @return Encodeable 类 */ Class encoder() default Encodeable.class; /** * 反序列化定制化的 Decodeable, 构造函数的参数可以是:
* 1、ConvertFactory * 2、Type * 3、Class * 4、ConvertFactory和Type * 5、ConvertFactory和Class * * 类如果存在instance单实例对象字段值,则优先使用instance对象 * * @return Decodeable 类 */ Class decoder() default Decodeable.class; /** * 解析/序列化定制化的TYPE * * @return JSON or BSON or ALL */ ConvertType type() default ConvertType.ALL; /** * ConvertCoder 的多用类 * *

* 详情见: https://redkale.org * * @author zhangjx */ @Documented @Target({METHOD, FIELD}) @Retention(RUNTIME) public static @interface ConvertCoders { ConvertCoder[] value(); } }