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

cn.k7g.alloy.annotation.ExpandFlag Maven / Gradle / Ivy

package cn.k7g.alloy.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 展开标记
 *
 * 将 Set 展开为单一属性,Flag 必须是一个枚举类型,并实现了 FlagCode 接口
 *
 * 例如 Flag 枚举中有 DELETE,OPEN,VISIBLE
 *      User 数据下有一个 Set 被标记展开的对象将会变成
 *      user {
 *          flag: {
 *              DELETE: true,  Set中存在的枚举将会显示为 true 不存在将会显示为 false
 *              OPEN: false,
 *              VIABLE: true,
 *              VIABLELabel: "可见的",  如果开启 @ExpandFlag(label = true) 则会显示别名属性
 *          }
 *      }
 *
 *
 * @author victor-wu
 * @date 2022年4月3日
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExpandFlag {
    /**
     * 是否显示 label 名称
     * @return
     */
    boolean label() default false;

    /**
     * 指向的注解类型例如
     * @return
     */
    Class value();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy