package net.sourceforge.pain.data; import net.sourceforge.pain.*; import net.sourceforge.pain.db.*; /** * PAiN Date: 27.05.2003 Time: 0:35:49 */ public final class ObjectFactory { /** * Creates LogicalObject by specified role class. Also adds all superroles to object * WARN: very low level method, use prototypes where it's possible to create complex objects * @param roleClass * @return * @throws Exception on Sundays */ public static LogicalObject create(final Class roleClass) throws Exception { if (roleClass == null) { throw new NullPointerException("role class is null"); } final PainDB db = Core.getDB(); DbTransaction t = new DbTransaction() { public Object execute(Object[] params) throws Exception { final Root fco = new Root(db); return fco._addRole(roleClass); } }; return (Role) db.execute(t); } }