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() */
