From 945175c533b72c76cc47c3305c9a5b3d65143f51 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 16 Jul 2019 13:07:40 +0200 Subject: [PATCH] Throwing NotEnhancedException on _ebean_* method instead of enforce to implement them (#1755) --- src/main/java/io/ebean/bean/EntityBean.java | 48 ++++++++++++++----- .../io/ebean/bean/NotEnhancedException.java | 12 +++++ 2 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 src/main/java/io/ebean/bean/NotEnhancedException.java diff --git a/src/main/java/io/ebean/bean/EntityBean.java b/src/main/java/io/ebean/bean/EntityBean.java index 305d67a78..03d1195c8 100644 --- a/src/main/java/io/ebean/bean/EntityBean.java +++ b/src/main/java/io/ebean/bean/EntityBean.java @@ -16,12 +16,16 @@ public interface EntityBean extends Serializable { /** * Return all the property names in defined order. */ - String[] _ebean_getPropertyNames(); + default String[] _ebean_getPropertyNames() { + throw new NotEnhancedException(); + } /** * Return the property name at the given position. */ - String _ebean_getPropertyName(int pos); + default String _ebean_getPropertyName(int pos) { + throw new NotEnhancedException(); + } /** * Return the enhancement marker value. @@ -30,28 +34,38 @@ public interface EntityBean extends Serializable { * entity classes are enhanced (specifically not just a super class). *

*/ - String _ebean_getMarker(); + default String _ebean_getMarker() { + throw new NotEnhancedException(); + } /** * Create and return a new entity bean instance. */ - Object _ebean_newInstance(); + default Object _ebean_newInstance() { + throw new NotEnhancedException(); + } /** * Generated method that sets the loaded state on all the embedded beans on * this entity bean by using EntityBeanIntercept.setEmbeddedLoaded(Object o); */ - void _ebean_setEmbeddedLoaded(); + default void _ebean_setEmbeddedLoaded() { + throw new NotEnhancedException(); + } /** * Return true if any embedded beans are new or dirty. */ - boolean _ebean_isEmbeddedNewOrDirty(); + default boolean _ebean_isEmbeddedNewOrDirty() { + throw new NotEnhancedException(); + } /** * Return the intercept for this object. */ - EntityBeanIntercept _ebean_getIntercept(); + default EntityBeanIntercept _ebean_getIntercept() { + throw new NotEnhancedException(); + } /** * Similar to _ebean_getIntercept() except it checks to see if the intercept @@ -66,7 +80,9 @@ public interface EntityBean extends Serializable { * frameworks that can't take into account our ebean fields. *

*/ - EntityBeanIntercept _ebean_intercept(); + default EntityBeanIntercept _ebean_intercept() { + throw new NotEnhancedException(); + } /** * Set the value of a field of an entity bean of this type. @@ -75,12 +91,16 @@ public interface EntityBean extends Serializable { * on entity beans. That means lazy loading and oldValues creation. *

*/ - void _ebean_setField(int fieldIndex, Object value); + default void _ebean_setField(int fieldIndex, Object value) { + throw new NotEnhancedException(); + } /** * Set the field value with interception. */ - void _ebean_setFieldIntercept(int fieldIndex, Object value); + default void _ebean_setFieldIntercept(int fieldIndex, Object value) { + throw new NotEnhancedException(); + } /** * Return the value of a field from an entity bean of this type. @@ -89,11 +109,15 @@ public interface EntityBean extends Serializable { * on entity beans. That means lazy loading. *

*/ - Object _ebean_getField(int fieldIndex); + default Object _ebean_getField(int fieldIndex) { + throw new NotEnhancedException(); + } /** * Return the field value with interception. */ - Object _ebean_getFieldIntercept(int fieldIndex); + default Object _ebean_getFieldIntercept(int fieldIndex) { + throw new NotEnhancedException(); + } } diff --git a/src/main/java/io/ebean/bean/NotEnhancedException.java b/src/main/java/io/ebean/bean/NotEnhancedException.java new file mode 100644 index 000000000..cf4cf2142 --- /dev/null +++ b/src/main/java/io/ebean/bean/NotEnhancedException.java @@ -0,0 +1,12 @@ +package io.ebean.bean; + +/** + * This exception is thrown, when the default implementation of EntityBean is not or not properly overwritten by enhancer. + * + * @author Roland Praml, FOCONIS AG + * + */ +public class NotEnhancedException extends RuntimeException { + private static final long serialVersionUID = 1L; + +}