package org.checkerframework.checker.i18n; import java.lang.annotation.Annotation; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; import org.checkerframework.checker.i18n.qual.LocalizableKey; import org.checkerframework.checker.i18n.qual.LocalizableKeyBottom; import org.checkerframework.checker.i18n.qual.UnknownLocalizableKey; import org.checkerframework.checker.propkey.PropertyKeyAnnotatedTypeFactory; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.treeannotator.ListTreeAnnotator; import org.checkerframework.framework.type.treeannotator.TreeAnnotator; /** * A PropertyKeyATF that uses LocalizableKey to annotate the keys. * * @author wmdietl */ public class LocalizableKeyAnnotatedTypeFactory extends PropertyKeyAnnotatedTypeFactory { public LocalizableKeyAnnotatedTypeFactory(BaseTypeChecker checker) { super(checker); } @Override protected Set<Class<? extends Annotation>> createSupportedTypeQualifiers() { return new LinkedHashSet<Class<? extends Annotation>>( Arrays.asList( LocalizableKey.class, LocalizableKeyBottom.class, UnknownLocalizableKey.class)); } @Override public TreeAnnotator createTreeAnnotator() { return new ListTreeAnnotator( super.createBasicTreeAnnotator(), new KeyLookupTreeAnnotator(this, LocalizableKey.class)); } }