Files
redkale/src/main/java/org/redkale/convert/ConvertCoder.java
2024-01-15 10:00:13 +08:00

90 lines
2.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
*/
package org.redkale.convert;
import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;
/**
* 依附在setter、getter方法、字段进行简单的配置 <br>
* 优先使用coder字段
*
* <p>
* 详情见: https://redkale.org
*
* @author zhangjx
* @since 2.7.0
*/
@Documented
@Target({METHOD, FIELD})
@Retention(RUNTIME)
@Repeatable(ConvertCoder.ConvertCoders.class)
public @interface ConvertCoder {
/**
* 需要指定的字段类型,类型必须是原字段类型的子类。
* 例如: <br>
* <blockquote><pre>
* &#64;ConvertCoder(column = String.class)
* private CharSequence name;
* </pre></blockquote>
*
* 通常此字段值与encoder/decoder是二选一指定了coder字段值则可以不设置此字段。
*
* @return 字段类名
*/
Class column() default Object.class;
/**
* 序列化定制化的 Encodeable, 构造函数的参数可以是:<br>
* 1、ConvertFactory
* 2、Type
* 3、Class
* 4、ConvertFactory和Type
* 5、ConvertFactory和Class
*
* 类如果存在instance单实例对象字段值则优先使用instance对象
*
* @return Encodeable 类
*/
Class<? extends Encodeable> encoder() default Encodeable.class;
/**
* 反序列化定制化的 Decodeable, 构造函数的参数可以是:<br>
* 1、ConvertFactory
* 2、Type
* 3、Class
* 4、ConvertFactory和Type
* 5、ConvertFactory和Class
*
* 类如果存在instance单实例对象字段值则优先使用instance对象
*
* @return Decodeable 类
*/
Class<? extends Decodeable> decoder() default Decodeable.class;
/**
* 解析/序列化定制化的TYPE
*
* @return JSON or BSON or ALL
*/
ConvertType type() default ConvertType.ALL;
/**
* ConvertCoder 的多用类
*
* <p>
* 详情见: https://redkale.org
*
* @author zhangjx
*/
@Documented
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public static @interface ConvertCoders {
ConvertCoder[] value();
}
}