package com.farata.cleardatabuilder.extjs.validation.apt;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import clear.cdb.extjs.annotations.JSFillChildrenMethod;
import clear.cdb.extjs.annotations.JSFillMethod;
import clear.cdb.extjs.annotations.JSGenerateStore;
import clear.cdb.extjs.annotations.JSGenerateSample;
import clear.cdb.extjs.annotations.JSGetMethod;
import clear.cdb.extjs.annotations.JSJPQLMethod;
import clear.cdb.extjs.annotations.JSService;
import clear.cdb.extjs.annotations.JSTransferInfo;
import clear.cdb.extjs.annotations.JSUpdateInfo;
import com.sun.mirror.apt.AnnotationProcessor;
import com.sun.mirror.apt.AnnotationProcessorEnvironment;
import com.sun.mirror.apt.AnnotationProcessorFactory;
import com.sun.mirror.declaration.AnnotationTypeDeclaration;
public class CDBAnnotationProcessorFactory implements
AnnotationProcessorFactory {
public Collection<String> supportedOptions() {
return Collections.emptyList();
}
public Collection<String> supportedAnnotationTypes() {
return annotations;
}
public AnnotationProcessor getProcessorFor(
Set<AnnotationTypeDeclaration> atds,
AnnotationProcessorEnvironment env) {
return new CDBAnnotationProcessor(env);
}
private static ArrayList<String> annotations = new ArrayList<String>();
{
annotations.add(JSFillChildrenMethod.class.getName());
annotations.add(JSFillMethod.class.getName());
annotations.add(JSGenerateStore.class.getName());
annotations.add(JSGenerateSample.class.getName());
annotations.add(JSGetMethod.class.getName());
annotations.add(JSJPQLMethod.class.getName());
annotations.add(JSService.class.getName());
annotations.add(JSTransferInfo.class.getName());
annotations.add(JSUpdateInfo.class.getName());
}
}