From 57836af5b54eae26987a8bf863dec53af974a492 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Tue, 8 Mar 2016 21:21:46 +1300 Subject: [PATCH] #593 - Refactor SPI - Move methods from ElPropertyValue to ExpressionPath --- .../server/deploy/BeanFkeyProperty.java | 2 +- .../ebeaninternal/server/deploy/BeanProperty.java | 3 ++- .../server/deploy/BeanPropertyAssocOne.java | 6 +++--- .../server/deploy/BeanPropertyCompound.java | 2 +- .../server/deploy/BeanPropertyCompoundScalar.java | 4 ++-- .../ebeaninternal/server/el/ElPropertyChain.java | 12 ++++++------ .../ebeaninternal/server/el/ElPropertyValue.java | 2 +- .../server/type/CtCompoundPropertyElAdapter.java | 7 ++----- 8 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFkeyProperty.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFkeyProperty.java index 27b8a118b..d2fe040d8 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFkeyProperty.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFkeyProperty.java @@ -178,7 +178,7 @@ public final class BeanFkeyProperty implements ElPropertyValue { } @Override - public Object elGetReference(EntityBean bean) { + public Object pathGetNested(Object bean) { throw new RuntimeException("ElPropertyDeploy only - not implemented"); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java index 8defbe7af..4b322a551 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java @@ -791,7 +791,8 @@ public class BeanProperty implements ElPropertyValue, Property { return getValueIntercept((EntityBean)bean); } - public Object elGetReference(EntityBean bean) { + @Override + public Object pathGetNested(Object bean) { throw new RuntimeException("Not expected to call this"); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java index 95c549811..e17e0f988 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java @@ -463,11 +463,11 @@ public class BeanPropertyAssocOne extends BeanPropertyAssoc { } @Override - public Object elGetReference(EntityBean bean) { - Object value = getValueIntercept(bean); + public Object pathGetNested(Object bean) { + Object value = getValueIntercept((EntityBean)bean); if (value == null) { value = targetDescriptor.createEntityBean(); - setValueIntercept(bean, value); + setValueIntercept((EntityBean)bean, value); } return value; } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompound.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompound.java index 11872ba51..39a22f58e 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompound.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompound.java @@ -143,7 +143,7 @@ public class BeanPropertyCompound extends BeanProperty { } @Override - public Object elGetReference(EntityBean bean) { + public Object pathGetNested(Object bean) { return bean; } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompoundScalar.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompoundScalar.java index 285afe984..902dad24b 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompoundScalar.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyCompoundScalar.java @@ -72,8 +72,8 @@ public class BeanPropertyCompoundScalar extends BeanProperty { } @Override - public Object elGetReference(EntityBean bean) { - return getValue(bean); + public Object pathGetNested(Object bean) { + return pathGet(bean); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyChain.java b/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyChain.java index 031b601d2..024778233 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyChain.java +++ b/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyChain.java @@ -226,12 +226,13 @@ public class ElPropertyChain implements ElPropertyValue { return bean; } - public Object elGetReference(EntityBean bean) { + @Override + public Object pathGetNested(Object bean) { - EntityBean prevBean = bean; + Object prevBean = bean; for (int i = 0; i < last; i++) { // always return non null prevBean - prevBean = (EntityBean) chain[i].elGetReference(prevBean); + prevBean = chain[i].pathGetNested(prevBean); } // try the last step in the chain return chain[last].pathGet(prevBean); @@ -240,10 +241,9 @@ public class ElPropertyChain implements ElPropertyValue { @Override public void pathSet(Object bean, Object value) { - EntityBean prevBean = (EntityBean)bean; + Object prevBean = bean; for (int i = 0; i < last; i++) { - // always return non null prevBean - prevBean = (EntityBean) chain[i].elGetReference(prevBean); + prevBean = chain[i].pathGetNested(prevBean); } if (prevBean != null) { if (lastBeanProperty != null) { diff --git a/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyValue.java b/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyValue.java index cd96fb5d5..5d3fb5cb3 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyValue.java +++ b/src/main/java/com/avaje/ebeaninternal/server/el/ElPropertyValue.java @@ -58,6 +58,6 @@ public interface ElPropertyValue extends ElPropertyDeploy, ExpressionPath { * Return the value ensuring objects prior to the top scalar property are * automatically populated. */ - Object elGetReference(EntityBean bean); + Object pathGetNested(Object bean); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundPropertyElAdapter.java b/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundPropertyElAdapter.java index f7171beac..3ccf8030f 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundPropertyElAdapter.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundPropertyElAdapter.java @@ -33,7 +33,8 @@ public class CtCompoundPropertyElAdapter implements ElPropertyValue { return value; } - public Object elGetReference(EntityBean bean) { + @Override + public Object pathGetNested(Object bean) { return bean; } @@ -47,10 +48,6 @@ public class CtCompoundPropertyElAdapter implements ElPropertyValue { prop.setValue(bean, value); } - public int getDeployOrder() { - return deployOrder; - } - public String getAssocOneIdExpr(String prefix, String operator) { throw new RuntimeException("Not Supported or Expected"); }