package net.northking.cctp.element.core.annotation;

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

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Keyword {
    /**
     * 关键字别名
     *
     * @return
     */
    String alias() default "";

    /**
     * 关键字说明
     *
     * @return
     */
    String value() default "";

    /**
     * 组件要求客户界面不可见
     *
     * @return
     */
    boolean hidden() default false;

    /**
     * 组件使用类别默认仅为基础组建
     * 0-基础
     * 1-插件
     * 2-函数
     * 例:01-指同时作为基础和插件使用
     * @return
     */
    String category() default "0";

    /**
     * 组件属性默认仅为公共组件
     * -1-默认公共
     * 0-公共
     * 1-接口
     * 2-pcBS
     * 3-pcCS
     * 4-安卓
     * 5-ios
     * 例:45-指同时供给安卓和ios使用
     * @return
     */
    String attributes() default "-1";

    /**
     * 组件是否推荐使用默认推荐
     * 升级替换后可改为不推荐
     * 但因为兼容不建议直接删除旧有组建
     * @return
     */
    boolean deprecated() default true;

    /**
     * 组件是否标记为常用组件
     * 默认为否
     */
    boolean commonlyUse() default false;

}
