org.checkerframework.checker.calledmethods.qual.CalledMethodsPredicate Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of guava Show documentation
Show all versions of guava Show documentation
Guava is a suite of core and expanded libraries that include
utility classes, google's collections, io classes, and much
much more.
package org.checkerframework.checker.calledmethods.qual;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.SubtypeOf;
/**
* This annotation represents a predicate on {@code @}{@link CalledMethods} annotations. If method
* {@code c()}'s receiver type is annotated with {@code @CalledMethodsPredicate("a || b")}, then it
* is acceptable to call either method {@code a()} or method {@code b()} before calling method
* {@code c()}.
*
* @checker_framework.manual #called-methods-checker Called Methods Checker
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf({CalledMethods.class})
public @interface CalledMethodsPredicate {
/**
* A boolean expression constructed from the following grammar:
*
* S → method name | S && S | S || S | !S | (S)
*
*
The expression uses standard Java operator precedence: "!" then "&&" then "||".
*
* @return the boolean expression
*/
String value();
}