diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index f6ff48810..189dc348f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -691,11 +691,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public void register(TransactionCallback transactionCallback) { - Transaction transaction = currentTransaction(); - if (transaction == null) { - throw new PersistenceException("Not currently active transaction when trying to register transactionCallback"); - } - transaction.register(transactionCallback); + currentTransaction().register(transactionCallback); } /** @@ -826,8 +822,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public Object nextId(Class beanType) { - BeanDescriptor desc = descriptor(beanType); - return desc.nextId(null); + return descriptor(beanType).nextId(null); } @Override @@ -841,39 +836,22 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { } // use first bean in the list as the correct type Class beanType = (Class) list.get(0).getClass(); - BeanDescriptor beanDescriptor = descriptor(beanType); - if (beanDescriptor == null) { - throw new PersistenceException("BeanDescriptor not found, is [" + beanType + "] an entity bean?"); - } - beanDescriptor.sort(list, sortByClause); + desc(beanType).sort(list, sortByClause); } @Override public Set validateQuery(Query query) { - BeanDescriptor beanDescriptor = descriptor(query.getBeanType()); - if (beanDescriptor == null) { - throw new PersistenceException("BeanDescriptor not found, is [" + query.getBeanType() + "] an entity bean?"); - } - return ((SpiQuery) query).validate(beanDescriptor); + return ((SpiQuery) query).validate(desc(query.getBeanType())); } @Override public Filter filter(Class beanType) { - BeanDescriptor desc = descriptor(beanType); - if (desc == null) { - String m = beanType.getName() + " is NOT an Entity Bean registered with this server?"; - throw new PersistenceException(m); - } - return new ElFilter<>(desc); + return new ElFilter<>(desc(beanType)); } @Override public CsvReader createCsvReader(Class beanType) { - BeanDescriptor descriptor = descriptor(beanType); - if (descriptor == null) { - throw new NullPointerException("BeanDescriptor for " + beanType.getName() + " not found"); - } - return new TCsvReader<>(this, descriptor); + return new TCsvReader<>(this, desc(beanType)); } @Override @@ -893,19 +871,13 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public void merge(Object bean, MergeOptions options, @Nullable Transaction transaction) { - BeanDescriptor desc = descriptor(bean.getClass()); - if (desc == null) { - throw new PersistenceException(bean.getClass().getName() + " is NOT an Entity Bean registered with this server?"); - } + BeanDescriptor desc = desc(bean.getClass()); executeInTrans((txn) -> persister.merge(desc, checkEntityBean(bean), options, txn), transaction); } @Override public void lock(Object bean) { - BeanDescriptor desc = descriptor(bean.getClass()); - if (desc == null) { - throw new PersistenceException(bean.getClass() + " is NOT an Entity Bean registered with this server?"); - } + BeanDescriptor desc = desc(bean.getClass()); Object id = desc.id(bean); Objects.requireNonNull(id, "Bean missing an @Id value which is required to lock"); new DefaultOrmQuery<>(desc, this, expressionFactory) @@ -921,21 +893,14 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public Query findNative(Class beanType, String nativeSql) { - BeanDescriptor desc = descriptor(beanType); - if (desc == null) { - throw new PersistenceException(beanType.getName() + " is NOT an Entity Bean registered with this server?"); - } - DefaultOrmQuery query = new DefaultOrmQuery<>(desc, this, expressionFactory); + DefaultOrmQuery query = new DefaultOrmQuery<>(desc(beanType), this, expressionFactory); query.setNativeSql(nativeSql); return query; } @Override public Query createNamedQuery(Class beanType, String namedQuery) { - BeanDescriptor desc = descriptor(beanType); - if (desc == null) { - throw new PersistenceException(beanType.getName() + " is NOT an Entity Bean registered with this server?"); - } + BeanDescriptor desc = desc(beanType); String named = desc.namedQuery(namedQuery); if (named != null) { return createQuery(beanType, named); @@ -958,21 +923,12 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public DefaultOrmQuery createQuery(Class beanType) { - BeanDescriptor desc = descriptor(beanType); - if (desc == null) { - throw new PersistenceException(beanType.getName() + " is NOT an Entity Bean registered with this server?"); - } - return new DefaultOrmQuery<>(desc, this, expressionFactory); + return new DefaultOrmQuery<>(desc(beanType), this, expressionFactory); } @Override public Update createUpdate(Class beanType, String ormUpdate) { - BeanDescriptor desc = descriptor(beanType); - if (desc == null) { - String m = beanType.getName() + " is NOT an Entity Bean registered with this server?"; - throw new PersistenceException(m); - } - return new DefaultOrmUpdate<>(beanType, this, desc.baseTable(), ormUpdate); + return new DefaultOrmUpdate<>(beanType, this, desc(beanType).baseTable(), ormUpdate); } @Override @@ -1795,11 +1751,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { } private EntityBean checkEntityBean(Object bean) { - Objects.requireNonNull(bean); - if (!(bean instanceof EntityBean)) { - throw new IllegalArgumentException("Was expecting an EntityBean but got a " + bean.getClass()); - } - return (EntityBean) bean; + return (EntityBean) Objects.requireNonNull(bean); } @Override @@ -2051,27 +2003,27 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public boolean isSupportedType(java.lang.reflect.Type genericType) { TypeInfo typeInfo = ParamTypeHelper.getTypeInfo(genericType); - return typeInfo != null && descriptor(typeInfo.getBeanType()) != null; + return typeInfo != null && beanDescriptorManager.descriptor(typeInfo.getBeanType()) != null; } @Override public Object beanId(Object bean, Object id) { EntityBean eb = checkEntityBean(bean); - BeanDescriptor desc = descriptor(bean.getClass()); - if (desc == null) { - throw new PersistenceException(bean.getClass().getName() + " is NOT an Entity Bean registered with this server?"); - } - return desc.convertSetId(id, eb); + return desc(bean.getClass()).convertSetId(id, eb); } @Override public Object beanId(Object bean) { EntityBean eb = checkEntityBean(bean); - BeanDescriptor desc = descriptor(bean.getClass()); + return desc(bean.getClass()).getId(eb); + } + + private BeanDescriptor desc(Class beanClass) { + BeanDescriptor desc = beanDescriptorManager.descriptor(beanClass); if (desc == null) { - throw new PersistenceException(bean.getClass().getName() + " is NOT an Entity Bean registered with this server?"); + throw new PersistenceException(beanClass.getName() + " is NOT an Entity Bean registered with this server?"); } - return desc.getId(eb); + return desc; } /**