package org.deephacks.westty.internal.job;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import org.deephacks.westty.job.Job;
import org.deephacks.westty.job.Schedule;
class JobExtension implements Extension {
private static BeanManager bm;
private static final Set<Class<? extends Job>> jobs = new HashSet<Class<? extends Job>>();
public void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager bm) {
JobExtension.bm = bm;
}
void processAnnotatedType(@Observes ProcessAnnotatedType<?> pat) {
AnnotatedType<?> t = pat.getAnnotatedType();
Schedule schedule = t.getAnnotation(Schedule.class);
if (schedule == null) {
return;
}
Class<? extends Job> cls = t.getJavaClass().asSubclass(Job.class);
jobs.add(cls);
}
public static Set<Class<? extends Job>> getJobs() {
return jobs;
}
public static BeanManager getBeanManager() {
return bm;
}
}