Updated Branches:
  refs/heads/master e1d284298 -> f5cd43bb5

WICKET-2498 IChainingModel implementation

Move/rename ChainingModel#getTarget() to 
AbstractPropertyModel#getInnermostModelOrObject() because this method is 
actually used only there and has the special logic to extract the innermost 
model.
Rename ChainingModel#getPlainTarget() to #getTarget().


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f5cd43bb
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f5cd43bb
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f5cd43bb

Branch: refs/heads/master
Commit: f5cd43bb5385ddfa7f0940e73b96c2f42e0b33d6
Parents: e1d2842
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Mon Mar 5 14:50:24 2012 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Mon Mar 5 14:50:24 2012 +0200

----------------------------------------------------------------------
 .../apache/wicket/model/AbstractPropertyModel.java |   43 +++++++++++----
 .../org/apache/wicket/model/ChainingModel.java     |   23 +-------
 2 files changed, 33 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cd43bb/wicket-core/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java 
b/wicket-core/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
index a0ca887..98f40fa 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/model/AbstractPropertyModel.java
@@ -72,7 +72,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                if (Strings.isEmpty(expression))
                {
                        // Return a meaningful value for an empty property 
expression
-                       return (T)getTarget();
+                       return (T) getInnermostModelOrObject();
                }
                else if (expression.startsWith("."))
                {
@@ -80,7 +80,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                                "Property expressions cannot start with a '.' 
character");
                }
 
-               final Object target = getTarget();
+               final Object target = getInnermostModelOrObject();
                if (target != null)
                {
                        return (T)PropertyResolver.getValue(expression, target);
@@ -114,14 +114,14 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                {
                        // TODO check, really do this?
                        // why not just set the target to the object?
-                       Object target = getPlainTarget();
+                       Object target = getTarget();
                        if (target instanceof IModel)
                        {
                                ((IModel<T>)target).setObject(object);
                        }
                        else
                        {
-                               setPlainTarget(object);
+                               setTarget(object);
                        }
                }
                else
@@ -129,7 +129,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                        PropertyResolverConverter prc = null;
                        prc = new 
PropertyResolverConverter(Application.get().getConverterLocator(),
                                Session.get().getLocale());
-                       PropertyResolver.setValue(expression, getTarget(), 
object, prc);
+                       PropertyResolver.setValue(expression, 
getInnermostModelOrObject(), object, prc);
                }
        }
 
@@ -144,11 +144,11 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                if (Strings.isEmpty(expression))
                {
                        // Return a meaningful value for an empty property 
expression
-                       Object target = getTarget();
+                       Object target = getInnermostModelOrObject();
                        return (Class<T>)(target != null ? target.getClass() : 
null);
                }
 
-               final Object target = getTarget();
+               final Object target = getInnermostModelOrObject();
                if (target != null)
                {
                        try
@@ -160,11 +160,11 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                                // ignore.
                        }
                }
-               else if (getPlainTarget() instanceof IObjectClassAwareModel)
+               else if (getTarget() instanceof IObjectClassAwareModel)
                {
                        try
                        {
-                               Class<?> targetClass = 
((IObjectClassAwareModel<?>)getPlainTarget()).getObjectClass();
+                               Class<?> targetClass = 
((IObjectClassAwareModel<?>) getTarget()).getObjectClass();
                                if (targetClass != null)
                                {
                                        return 
PropertyResolver.getPropertyClass(expression, targetClass);
@@ -188,7 +188,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                String expression = propertyExpression();
                if (Strings.isEmpty(expression) == false)
                {
-                       Object target = getTarget();
+                       Object target = getInnermostModelOrObject();
                        if (target != null)
                        {
                                try
@@ -213,7 +213,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                String expression = propertyExpression();
                if (Strings.isEmpty(expression) == false)
                {
-                       Object target = getTarget();
+                       Object target = getInnermostModelOrObject();
                        if (target != null)
                        {
                                try
@@ -237,7 +237,7 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
                String expression = propertyExpression();
                if (Strings.isEmpty(expression) == false)
                {
-                       Object target = getTarget();
+                       Object target = getInnermostModelOrObject();
                        if (target != null)
                        {
                                try
@@ -256,4 +256,23 @@ public abstract class AbstractPropertyModel<T> extends 
ChainingModel<T>
         * @return The property expression for the component
         */
        protected abstract String propertyExpression();
+
+       /**
+        * @return The innermost model or the object if the target is not a 
model
+        */
+       // legacy method ...
+       public final Object getInnermostModelOrObject()
+       {
+               Object object = getTarget();
+               while (object instanceof IModel)
+               {
+                       Object tmp = ((IModel<?>)object).getObject();
+                       if (tmp == object)
+                       {
+                               break;
+                       }
+                       object = tmp;
+               }
+               return object;
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cd43bb/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java 
b/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java
index 97545a4..5c3a2bf 100644
--- a/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java
@@ -125,7 +125,7 @@ public abstract class ChainingModel<T> implements 
IChainingModel<T>
        /**
         * @return The target - object or model
         */
-       protected final Object getPlainTarget()
+       protected final Object getTarget()
        {
                return target;
        }
@@ -134,32 +134,13 @@ public abstract class ChainingModel<T> implements 
IChainingModel<T>
         * Sets a new target - object or model
         * @return this object
         */
-       protected final ChainingModel<T> setPlainTarget(final Object 
modelObject)
+       protected final ChainingModel<T> setTarget(final Object modelObject)
        {
                this.target = modelObject;
                return this;
        }
 
        /**
-        * @return The innermost model or the object if the target is not a 
model
-        */
-       // legacy method ...
-       public final Object getTarget()
-       {
-               Object object = target;
-               while (object instanceof IModel)
-               {
-                       Object tmp = ((IModel<?>)object).getObject();
-                       if (tmp == object)
-                       {
-                               break;
-                       }
-                       object = tmp;
-               }
-               return object;
-       }
-
-       /**
         * @see java.lang.Object#toString()
         */
        @Override

Reply via email to