package br.com.caelum.calopsita.infra.vraptor;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
@ApplicationScoped
@Component
public class AnnotationConfigurationFactory implements ComponentFactory<AnnotationConfiguration> {
private static List<Class<?>> entities = new ArrayList<Class<?>>();
private AnnotationConfiguration configuration;
public AnnotationConfigurationFactory() {
configuration = new AnnotationConfiguration();
}
@PostConstruct
public void addEntitiesToConfiguration() {
configuration.configure();
for (Class<?> entity : entities) {
configuration.addAnnotatedClass(entity);
}
}
static void addEntity(Class<?> entity) {
entities.add(entity);
}
static List<Class<?>> getEntities() {
return entities;
}
@Override
public AnnotationConfiguration getInstance() {
return null;
}
}