WICKET-5950 Model and GenericBaseModel could both implement 
IObjectClassAwareModel


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

Branch: refs/heads/lambdas
Commit: a9e79e823d16def08629b811000b3339b655354a
Parents: 1d654bf
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sun Nov 15 23:02:40 2015 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sun Nov 15 23:02:40 2015 +0100

----------------------------------------------------------------------
 .../org/apache/wicket/model/IObjectClassAwareModel.java   |  2 +-
 .../src/main/java/org/apache/wicket/model/Model.java      |  8 +++++++-
 .../org/apache/wicket/model/util/GenericBaseModel.java    | 10 ++++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/a9e79e82/wicket-core/src/main/java/org/apache/wicket/model/IObjectClassAwareModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/model/IObjectClassAwareModel.java 
b/wicket-core/src/main/java/org/apache/wicket/model/IObjectClassAwareModel.java
index 1a926f9..3162a5d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/model/IObjectClassAwareModel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/model/IObjectClassAwareModel.java
@@ -30,5 +30,5 @@ public interface IObjectClassAwareModel<T> extends IModel<T>
         * 
         * @return class of model object or null if the class couldn't be 
determined
         */
-       public Class<T> getObjectClass();
+       Class<T> getObjectClass();
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/a9e79e82/wicket-core/src/main/java/org/apache/wicket/model/Model.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/model/Model.java 
b/wicket-core/src/main/java/org/apache/wicket/model/Model.java
index f48b26f..271cf8d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/model/Model.java
+++ b/wicket-core/src/main/java/org/apache/wicket/model/Model.java
@@ -43,7 +43,7 @@ import org.apache.wicket.util.lang.Objects;
  * @param <T>
  *            The type of the Model Object
  */
-public class Model<T extends Serializable> implements IModel<T>
+public class Model<T extends Serializable> implements IObjectClassAwareModel<T>
 {
        private static final long serialVersionUID = 1L;
 
@@ -243,4 +243,10 @@ public class Model<T extends Serializable> implements 
IModel<T>
                Model<?> that = (Model<?>)obj;
                return Objects.equal(object, that.object);
        }
+
+       @Override
+       public Class<T> getObjectClass()
+       {
+               return object != null ? (Class<T>) object.getClass() : null;
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/a9e79e82/wicket-core/src/main/java/org/apache/wicket/model/util/GenericBaseModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/model/util/GenericBaseModel.java 
b/wicket-core/src/main/java/org/apache/wicket/model/util/GenericBaseModel.java
index 5be7774..06f0379 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/model/util/GenericBaseModel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/model/util/GenericBaseModel.java
@@ -20,7 +20,7 @@ package org.apache.wicket.model.util;
 import java.io.Serializable;
 
 import org.apache.wicket.model.IDetachable;
-import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.IObjectClassAwareModel;
 import org.apache.wicket.util.lang.Objects;
 
 /**
@@ -32,7 +32,7 @@ import org.apache.wicket.util.lang.Objects;
  * @param <T>
  *            type of model object
  */
-public abstract class GenericBaseModel<T> implements IModel<T>
+public abstract class GenericBaseModel<T> implements IObjectClassAwareModel<T>
 {
        private static final long serialVersionUID = 1L;
        /** model object */
@@ -84,6 +84,12 @@ public abstract class GenericBaseModel<T> implements 
IModel<T>
                }
        }
 
+       @Override
+       public Class<T> getObjectClass()
+       {
+               return object != null ? (Class<T>) object.getClass() : null;
+       }
+
        /**
         * @see Object#toString()
         */

Reply via email to