blob: 663cb07dfbca07c73bc61a50949f49c30b4336eb [file] [log] [blame]
package org.checkerframework.checker.i18n.qual;
import java.lang.annotation.Documented;
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.LiteralKind;
import org.checkerframework.framework.qual.QualifierForLiterals;
import org.checkerframework.framework.qual.SubtypeOf;
/**
* Indicates that the {@code String} type has been localized and formatted for the target output
* locale.
*
* @checker_framework.manual #i18n-checker Internationalization Checker
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf(UnknownLocalized.class)
@QualifierForLiterals({
// All literals except chars and strings, which may need to be localized.
// (null is bottom by default.)
LiteralKind.INT,
LiteralKind.LONG,
LiteralKind.FLOAT,
LiteralKind.DOUBLE,
LiteralKind.BOOLEAN
})
public @interface Localized {}