package org.jblooming.persistence;
import org.hibernate.SessionFactory;
import org.jblooming.persistence.hibernate.HibernateFactory;
import org.jblooming.persistence.hibernate.PersistenceContext;
import org.jblooming.utilities.CodeValueList;
import org.jblooming.utilities.ReflectionUtilities;
import org.jblooming.waf.Bricks;
import org.jblooming.waf.settings.PersistenceConfiguration;
import org.jblooming.ontology.IdentifiableSupport;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* (c) Open Lab - www.open-lab.com
* Date: Dec 18, 2007
* Time: 3:40:41 PM
*/
public class PersistenceBricks extends Bricks {
public static CodeValueList getPersistentEntities(Class clazzToBeExtended) {
PersistenceConfiguration persistenceConf = PersistenceConfiguration.getInstance(clazzToBeExtended);
if (persistenceConf==null)
persistenceConf=PersistenceConfiguration.getDefaultPersistenceConfiguration();
SessionFactory sf = persistenceConf.getSessionFactory();
Map acm = sf.getAllClassMetadata();
Set keysAcm = acm.keySet();
CodeValueList cvl = new CodeValueList();
for (Iterator iterator = keysAcm.iterator(); iterator.hasNext();) {
String className = (String) iterator.next();
//it may be an entity name, and not a class
Class persClass = null;
try {
persClass = Class.forName(className);
if (clazzToBeExtended == null || ReflectionUtilities.extendsOrImplements(persClass, clazzToBeExtended))
cvl.add(className, persClass.getSimpleName());
} catch (ClassNotFoundException e) {
}
}
return cvl;
}
}