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

com.github.jerrymice.permission.annotation.PermissionResult Maven / Gradle / Ivy

The newest version!
package com.github.jerrymice.permission.annotation;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * @author tumingjian
 *         说明:用于对方法结果的控制和筛选.
 *         该注解会先将方法的原始结果定义为一个js变量(变量名为注解的var属性),
 *         然后根据方法原始结果的值和ignoreNullValue属性值来判断是否执行eval
 *         最后返回一个新的结果(新的结果其实也是一个js变量,要返回哪一个变量名称根据returnVar的属性值来决定)给java
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(PermissionResults.class)
public @interface PermissionResult {
    /**
     * 方法原始结果在Js中的变量名
     *
     * @return String
     */
    String var() default "result";

    /**
     * 要执行的js表达式
     *
     * @return String
     */
    String eval();

    /**
     * 如果方法的原始结果为null时,是否忽略执行eval属性中的表达式.
     *
     * @return boolean
     */
    boolean ignoreNullValue() default true;

    /**
     * 最终要返回给java的js变量名.如果不指定默认返回注解var属性中的变量名的JS变量的值.
     *
     * @return String
     */
    String returnVar() default "";
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy