/** * Lookups {@link DbEntityDescriptor} for some type and registers the type if is new. * <p> * Returns <code>null</code> for core classes from <code>java</code> run-time packages! * Some types are <b>not</b> entities, i.e. domain objects. Instead, primitive entities * are simply mapped to one column. */ public <E> DbEntityDescriptor<E> lookupType(final Class<E> type) { String typeName = type.getName(); if (StringUtil.startsWithOne(typeName, primitiveEntitiesPrefixes) != -1) { return null; } DbEntityDescriptor<E> ded = descriptorsMap.get(type); if (ded == null) { ded = registerType(type); } return ded; }
@BeforeEach void setUp() { dbOom = DbOom.create().get(); DbEntityManager dbEntityManager = DbOom.get().entityManager(); dbEntityManager.registerType(Boy.class); dbEntityManager.registerType(BadBoy.class); dbEntityManager.registerType(BadGirl.class); dbEntityManager.registerType(Girl.class); }
@BeforeEach void setUp() { final DbOom dbOom = DbOom.create().get(); DbEntityManager dbEntityManager = DbOom.get().entityManager(); dbEntityManager.registerType(Girl.class); dbEntityManager.registerType(BadGirl.class); dbEntityManager.registerType(Boy.class); dbEntityManager.registerType(BadBoy.class); }
@BeforeEach void setUp() { DbOom.create().get(); final DbEntityManager dbEntityManager = DbOom.get().entityManager(); dbEntityManager.registerType(Boy.class); dbEntityManager.registerType(BadBoy.class); dbEntityManager.registerType(BadGirl.class); dbEntityManager.registerType(Girl.class); }
/** * Registers entity. {@link #registerType(Class) Registers types} and table names. */ public <E> DbEntityDescriptor<E> registerEntity(final Class<E> type) { DbEntityDescriptor<E> ded = registerType(type); DbEntityDescriptor existing = tableNamesMap.put(ded.getTableName(), ded); if (existing != null) { if (ded.getType() == type) { return ded; } throw new DbOomException("Entity registration failed! Table '" + ded.getTableName() + "' already mapped to an entity: " + existing.getType()); } return ded; }
@BeforeEach void setUp() { DbOom dbOom = DbOom.create().get(); DbEntityManager dbEntityManager = dbOom.entityManager(); dbOom.config().getTableNames().setPrefix("PRE_"); dbOom.config().getTableNames().setSuffix("_SUF"); dbEntityManager.registerType(Boy.class); dbEntityManager.registerType(BadBoy.class); dbEntityManager.registerType(BadGirl.class); dbEntityManager.registerType(Girl.class); }
/** * Registers a class consumer that registers only those annotated with {@link DbTable}. * Because of performance purposes, classes are not dynamically loaded; instead, their * file content is examined. */ public void registerAsConsumer(final ClassScanner classScanner) { classScanner.registerEntryConsumer(classPathEntry -> { if (!classPathEntry.isTypeSignatureInUse(DB_TABLE_ANNOTATION_BYTES)) { return; } final Class<?> beanClass; try { beanClass = classPathEntry.loadClass(); } catch (ClassNotFoundException cnfex) { throw new DbOomException("Entry class not found: " + classPathEntry.name(), cnfex); } if (beanClass == null) { return; } final DbTable dbTable = beanClass.getAnnotation(DbTable.class); if (dbTable == null) { return; } if (registerAsEntities) { dbEntityManager.registerEntity(beanClass); } else { dbEntityManager.registerType(beanClass); } }); }
/** * Lookups {@link DbEntityDescriptor} for some type and registers the type if is new. * <p> * Returns <code>null</code> for core classes from <code>java</code> run-time packages! * Some types are <b>not</b> entities, i.e. domain objects. Instead, primitive entities * are simply mapped to one column. */ public <E> DbEntityDescriptor<E> lookupType(final Class<E> type) { String typeName = type.getName(); if (StringUtil.startsWithOne(typeName, primitiveEntitiesPrefixes) != -1) { return null; } DbEntityDescriptor<E> ded = descriptorsMap.get(type); if (ded == null) { ded = registerType(type); } return ded; }
/** * Registers entity. {@link #registerType(Class) Registers types} and table names. */ public <E> DbEntityDescriptor<E> registerEntity(final Class<E> type) { DbEntityDescriptor<E> ded = registerType(type); DbEntityDescriptor existing = tableNamesMap.put(ded.getTableName(), ded); if (existing != null) { if (ded.getType() == type) { return ded; } throw new DbOomException("Entity registration failed! Table '" + ded.getTableName() + "' already mapped to an entity: " + existing.getType()); } return ded; }
/** * Registers a class consumer that registers only those annotated with {@link DbTable}. * Because of performance purposes, classes are not dynamically loaded; instead, their * file content is examined. */ public void registerAsConsumer(final ClassScanner classScanner) { classScanner.registerEntryConsumer(classPathEntry -> { if (!classPathEntry.isTypeSignatureInUse(DB_TABLE_ANNOTATION_BYTES)) { return; } final Class<?> beanClass; try { beanClass = classPathEntry.loadClass(); } catch (ClassNotFoundException cnfex) { throw new DbOomException("Entry class not found: " + classPathEntry.name(), cnfex); } if (beanClass == null) { return; } final DbTable dbTable = beanClass.getAnnotation(DbTable.class); if (dbTable == null) { return; } if (registerAsEntities) { dbEntityManager.registerEntity(beanClass); } else { dbEntityManager.registerType(beanClass); } }); }