From 012322503f05adf86ee9a20d432a925d2bb7ddd3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 20 Mar 2018 09:03:16 +1300 Subject: [PATCH] #115 - Supporting changes for Element collection support --- .../ebean/common/AbstractBeanCollection.java | 8 ---- .../config/UnderscoreNamingConvention.java | 34 +------------- .../java/io/ebean/util/CamelCaseHelper.java | 46 +++++++++++++++++++ 3 files changed, 47 insertions(+), 41 deletions(-) diff --git a/src/main/java/io/ebean/common/AbstractBeanCollection.java b/src/main/java/io/ebean/common/AbstractBeanCollection.java index 866d8d0c0..e4641814a 100644 --- a/src/main/java/io/ebean/common/AbstractBeanCollection.java +++ b/src/main/java/io/ebean/common/AbstractBeanCollection.java @@ -6,7 +6,6 @@ import io.ebean.bean.BeanCollection; import io.ebean.bean.BeanCollectionLoader; import io.ebean.bean.EntityBean; -import javax.persistence.PersistenceException; import java.util.Set; /** @@ -96,13 +95,6 @@ abstract class AbstractBeanCollection implements BeanCollection { if (loader == null) { loader = (BeanCollectionLoader) Ebean.getServer(ebeanServerName); } - if (loader == null) { - String msg = "Lazy loading but LazyLoadEbeanServer is null?" - + " The LazyLoadEbeanServer needs to be set after deserialization" - + " to support lazy loading."; - throw new PersistenceException(msg); - } - loader.loadMany(this, onlyIds); checkEmptyLazyLoad(); } diff --git a/src/main/java/io/ebean/config/UnderscoreNamingConvention.java b/src/main/java/io/ebean/config/UnderscoreNamingConvention.java index 8fffed5fb..16b685227 100644 --- a/src/main/java/io/ebean/config/UnderscoreNamingConvention.java +++ b/src/main/java/io/ebean/config/UnderscoreNamingConvention.java @@ -112,39 +112,7 @@ public class UnderscoreNamingConvention extends AbstractNamingConvention { * Convert and return the string to underscore from camel case. */ protected String toUnderscoreFromCamel(String camelCase) { - - int lastUpper = -1; - StringBuilder sb = new StringBuilder(camelCase.length() + 4); - for (int i = 0; i < camelCase.length(); i++) { - char c = camelCase.charAt(i); - - if ('_' == c) { - // Underscores should just be passed through - sb.append(c); - lastUpper = i; - } else if (Character.isDigit(c)) { - if (i > lastUpper + 1 && !digitsCompressed) { - sb.append("_"); - } - sb.append(c); - lastUpper = i; - - } else if (Character.isUpperCase(c)) { - if (i > lastUpper + 1) { - sb.append("_"); - } - sb.append(Character.toLowerCase(c)); - lastUpper = i; - - } else { - sb.append(c); - } - } - String ret = sb.toString(); - if (forceUpperCase) { - ret = ret.toUpperCase(); - } - return ret; + return CamelCaseHelper.toUnderscoreFromCamel(camelCase, digitsCompressed, forceUpperCase); } /** diff --git a/src/main/java/io/ebean/util/CamelCaseHelper.java b/src/main/java/io/ebean/util/CamelCaseHelper.java index 9ef24656a..d3573309e 100644 --- a/src/main/java/io/ebean/util/CamelCaseHelper.java +++ b/src/main/java/io/ebean/util/CamelCaseHelper.java @@ -2,6 +2,52 @@ package io.ebean.util; public class CamelCaseHelper { + /** + * To underscore from camel case using digits compressed true and force upper case false. + */ + public static String toUnderscoreFromCamel(String camelCase) { + return toUnderscoreFromCamel(camelCase, true, false); + } + + /** + * Convert and return the string to underscore from camel case. + */ + public static String toUnderscoreFromCamel(String camelCase, boolean digitsCompressed, boolean forceUpperCase) { + + int lastUpper = -1; + StringBuilder sb = new StringBuilder(camelCase.length() + 4); + for (int i = 0; i < camelCase.length(); i++) { + char c = camelCase.charAt(i); + + if ('_' == c) { + // Underscores should just be passed through + sb.append(c); + lastUpper = i; + } else if (Character.isDigit(c)) { + if (i > lastUpper + 1 && !digitsCompressed) { + sb.append("_"); + } + sb.append(c); + lastUpper = i; + + } else if (Character.isUpperCase(c)) { + if (i > lastUpper + 1) { + sb.append("_"); + } + sb.append(Character.toLowerCase(c)); + lastUpper = i; + + } else { + sb.append(c); + } + } + String ret = sb.toString(); + if (forceUpperCase) { + ret = ret.toUpperCase(); + } + return ret; + } + /** * To camel from underscore. *