package ch.qos.cal10n.verifier.processor;
import ch.qos.cal10n.util.CAL10NBundleFinder;
import ch.qos.cal10n.verifier.AbstractMessageKeyVerifier;
import javax.annotation.processing.Filer;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.util.ElementFilter;
import java.util.ArrayList;
import java.util.List;
Given an TypeElement representing an enum class implements IMessageKeyVerifier.
Author: Ceki Gulcu Since: 0.8
/**
* Given an TypeElement representing an enum class implements IMessageKeyVerifier.
*
* @author Ceki Gulcu
* @since 0.8
*/
public class MessageKeyVerifierByTypeElement extends AbstractMessageKeyVerifier {
final TypeElement typeElementForEnum;
final CAL10NBundleFinderByProcessingFiler compileTimeResourceBundleFinder;
public MessageKeyVerifierByTypeElement(TypeElement typeElement, Filer filer) {
super(typeElement.getQualifiedName().toString(), new AnnotationExtractorViaTypeElement(typeElement));
typeElementForEnum = typeElement;
this.compileTimeResourceBundleFinder = new CAL10NBundleFinderByProcessingFiler(filer);
}
@Override
public List<String> extractKeysInEnum() {
List<String> keyList = new ArrayList<String>();
for (VariableElement ve : ElementFilter.fieldsIn(typeElementForEnum.getEnclosedElements())) {
keyList.add(ve.getSimpleName().toString());
}
return keyList;
}
@Override
protected CAL10NBundleFinder getResourceBundleFinder() {
return compileTimeResourceBundleFinder;
}
}