You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/05/30 08:42:58 UTC
git commit: WICKET-4930 Generified Component and
Component.getInputConverter()
Updated Branches:
refs/heads/generified-component-4930 [created] e4177909d
WICKET-4930 Generified Component and Component.getInputConverter()
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e4177909
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e4177909
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e4177909
Branch: refs/heads/generified-component-4930
Commit: e4177909dff8266c57cd2b21eb12bd0f1ed39717
Parents: 26b3d2a
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu May 30 09:42:29 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu May 30 09:42:29 2013 +0300
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Application.java | 5 +-
.../src/main/java/org/apache/wicket/Component.java | 84 +++++++-------
.../java/org/apache/wicket/MarkupContainer.java | 16 ++--
.../main/java/org/apache/wicket/MetaDataKey.java | 6 +-
.../src/main/java/org/apache/wicket/Page.java | 2 +-
.../src/main/java/org/apache/wicket/Session.java | 2 +-
.../wicket/markup/html/WebMarkupContainer.java | 2 +-
.../java/org/apache/wicket/model/IWrapModel.java | 2 +-
.../apache/wicket/request/cycle/RequestCycle.java | 4 +-
.../wicket/util/tester/WicketTesterHelper.java | 4 +-
10 files changed, 66 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java b/wicket-core/src/main/java/org/apache/wicket/Application.java
index bb39537..49b00cc 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Application.java
@@ -18,6 +18,7 @@ package org.apache.wicket;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collections;
@@ -414,7 +415,7 @@ public abstract class Application implements UnboundListener, IEventSink
* @return The metadata
* @see MetaDataKey
*/
- public final <T> T getMetaData(final MetaDataKey<T> key)
+ public final <T extends Serializable> T getMetaData(final MetaDataKey<T> key)
{
return key.get(metaData);
}
@@ -570,7 +571,7 @@ public abstract class Application implements UnboundListener, IEventSink
* @throws IllegalArgumentException
* @see MetaDataKey
*/
- public final synchronized <T> void setMetaData(final MetaDataKey<T> key, final Object object)
+ public final synchronized <T extends Serializable> void setMetaData(final MetaDataKey<T> key, final T object)
{
metaData = key.set(metaData, object);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java
index 323e495..76240b6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -157,12 +157,12 @@ import org.slf4j.LoggerFactory;
* implements {@link IModel}) to render a response in an appropriate markup language, such as HTML.
* In addition, {@link FormComponent}s know how to update their models based on request information,
* see {@link FormComponent#updateModel()}. Since the IModel interface is a wrapper around another
- * object, a convenience method {@link Component#getDefaultModelObject()} is provided to retrieve
+ * object, a convenience method {@link Component#getModelObject()} is provided to retrieve
* the object from its IModel wrapper. A further convenience method,
- * {@link Component#getDefaultModelObjectAsString()}, is provided for the very common operation of
+ * {@link Component#getModelObjectAsString()}, is provided for the very common operation of
* converting the wrapped object to a String. <br>
* The component's model can be passed in the constructor or set via
- * {@link Component#setDefaultModel(IModel)}. In neither case a model can be created on demand with
+ * {@link Component#setModel(IModel)}. In neither case a model can be created on demand with
* {@link #initModel()}.<br>
* Note that a component can have more models besides its default model.</li>
* <li><b>Behaviors </b>- You can add multiple {@link Behavior}s to any component if you need to
@@ -215,13 +215,13 @@ import org.slf4j.LoggerFactory;
* @author Juergen Donnerstag
* @author Igor Vaynberg (ivaynberg)
*/
-public abstract class Component
+public abstract class Component<T>
implements
IClusterable,
IConverterLocator,
IRequestableComponent,
IHeaderContributor,
- IHierarchical<Component>,
+ IHierarchical<Component<?>>,
IEventSink,
IEventSource
{
@@ -301,7 +301,7 @@ public abstract class Component
@Override
public boolean compare(Component component, Object b)
{
- final Object a = component.getDefaultModelObject();
+ final Object a = component.getModelObject();
if (a == null && b == null)
{
return true;
@@ -940,7 +940,7 @@ public abstract class Component
* {@link #prepareForRender()} after calling {@link #beforeRender()}, to initialize postponed
* components.
*/
- private static final MetaDataKey<List<Component>> FEEDBACK_LIST = new MetaDataKey<List<Component>>()
+ private static final MetaDataKey<ArrayList<Component>> FEEDBACK_LIST = new MetaDataKey<ArrayList<Component>>()
{
private static final long serialVersionUID = 1L;
};
@@ -956,10 +956,10 @@ public abstract class Component
{
// this component is a feedback. Feedback must be initialized last, so that
// they can collect messages from other components
- List<Component> feedbacks = getRequestCycle().getMetaData(FEEDBACK_LIST);
+ ArrayList<Component> feedbacks = getRequestCycle().getMetaData(FEEDBACK_LIST);
if (feedbacks == null)
{
- feedbacks = new ArrayList<Component>();
+ feedbacks = new ArrayList<>();
getRequestCycle().setMetaData(FEEDBACK_LIST, feedbacks);
}
@@ -1347,9 +1347,9 @@ public abstract class Component
/**
* @return Innermost model for this component
*/
- public final IModel<?> getInnermostModel()
+ public final IModel<T> getInnermostModel()
{
- return getInnermostModel(getDefaultModel());
+ return getInnermostModel(getModel());
}
/**
@@ -1563,9 +1563,9 @@ public abstract class Component
*
* @return meta data entry
*/
- private MetaDataEntry<?>[] getMetaData()
+ private <M extends Serializable> MetaDataEntry<M>[] getMetaData()
{
- MetaDataEntry<?>[] metaData = null;
+ MetaDataEntry<M>[] metaData = null;
// index where we should expect the entry
int index = getFlag(FLAG_MODEL_SET) ? 1 : 0;
@@ -1577,11 +1577,11 @@ public abstract class Component
Object object = data_get(index);
if (object instanceof MetaDataEntry<?>[])
{
- metaData = (MetaDataEntry<?>[])object;
+ metaData = (MetaDataEntry<M>[])object;
}
else if (object instanceof MetaDataEntry)
{
- metaData = new MetaDataEntry[] { (MetaDataEntry<?>)object };
+ metaData = new MetaDataEntry[] { (MetaDataEntry<M>)object };
}
}
@@ -1593,9 +1593,9 @@ public abstract class Component
*
* @return The model
*/
- public final IModel<?> getDefaultModel()
+ public final IModel<T> getModel()
{
- IModel<?> model = getModelImpl();
+ IModel<T> model = getModelImpl();
// If model is null
if (model == null)
{
@@ -1613,9 +1613,9 @@ public abstract class Component
*
* @return The backing model object
*/
- public final Object getDefaultModelObject()
+ public final T getModelObject()
{
- final IModel<?> model = getDefaultModel();
+ final IModel<T> model = getModel();
if (model != null)
{
try
@@ -1647,9 +1647,9 @@ public abstract class Component
*
* @return Model object for this component as a string
*/
- public final String getDefaultModelObjectAsString()
+ public final String getModelObjectAsString()
{
- return getDefaultModelObjectAsString(getDefaultModelObject());
+ return getModelObjectAsString(getModelObject());
}
/**
@@ -1667,7 +1667,7 @@ public abstract class Component
* @return The string
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
- public final String getDefaultModelObjectAsString(final Object modelObject)
+ public final String getModelObjectAsString(final T modelObject)
{
if (modelObject != null)
{
@@ -2762,7 +2762,7 @@ public abstract class Component
*/
public final boolean sameInnermostModel(final Component component)
{
- return sameInnermostModel(component.getDefaultModel());
+ return sameInnermostModel(component.getModel());
}
/**
@@ -2770,10 +2770,10 @@ public abstract class Component
* The model to compare with
* @return True if the given component's model is the same as this component's model.
*/
- public final boolean sameInnermostModel(final IModel<?> model)
+ public final boolean sameInnermostModel(final IModel<T> model)
{
// Get the two models
- IModel<?> thisModel = getDefaultModel();
+ IModel<T> thisModel = getModel();
// If both models are non-null they could be the same
if (thisModel != null && model != null)
@@ -2925,7 +2925,7 @@ public abstract class Component
* @throws IllegalArgumentException
* @see MetaDataKey
*/
- public final <M> void setMetaData(final MetaDataKey<M> key, final M object)
+ public final <M extends Serializable> void setMetaData(final MetaDataKey<M> key, final M object)
{
MetaDataEntry<?>[] old = getMetaData();
@@ -2963,19 +2963,19 @@ public abstract class Component
* The model
* @return This
*/
- public Component setDefaultModel(final IModel<?> model)
+ public Component setModel(final IModel<T> model)
{
- IModel<?> prevModel = getModelImpl();
+ IModel<T> prevModel = getModelImpl();
// Detach current model
if (prevModel != null)
{
prevModel.detach();
}
- IModel<?> wrappedModel = prevModel;
+ IModel<T> wrappedModel = prevModel;
if (prevModel instanceof IWrapModel)
{
- wrappedModel = ((IWrapModel<?>)prevModel).getWrappedModel();
+ wrappedModel = ((IWrapModel<T>)prevModel).getWrappedModel();
}
// Change model
@@ -2992,11 +2992,11 @@ public abstract class Component
/**
* @return model
*/
- IModel<?> getModelImpl()
+ IModel<T> getModelImpl()
{
if (getFlag(FLAG_MODEL_SET))
{
- return (IModel<?>)data_get(0);
+ return (IModel<T>)data_get(0);
}
return null;
}
@@ -3045,9 +3045,9 @@ public abstract class Component
* @return This
*/
@SuppressWarnings("unchecked")
- public final Component setDefaultModelObject(final Object object)
+ public final Component setModelObject(final T object)
{
- final IModel<Object> model = (IModel<Object>)getDefaultModel();
+ final IModel<T> model = getModel();
// Check whether anything can be set at all
if (model == null)
@@ -3697,12 +3697,12 @@ public abstract class Component
* The model
* @return The innermost (most nested) model
*/
- protected final IModel<?> getInnermostModel(final IModel<?> model)
+ protected final IModel<T> getInnermostModel(final IModel<T> model)
{
- IModel<?> nested = model;
+ IModel<T> nested = model;
while (nested != null && nested instanceof IWrapModel)
{
- final IModel<?> next = ((IWrapModel<?>)nested).getWrappedModel();
+ final IModel<T> next = ((IWrapModel<T>)nested).getWrappedModel();
if (nested == next)
{
throw new WicketRuntimeException("Model for " + nested + " is self-referential");
@@ -3750,14 +3750,14 @@ public abstract class Component
*
* @return The model
*/
- protected IModel<?> initModel()
+ protected IModel<T> initModel()
{
- IModel<?> foundModel = null;
+ IModel<T> foundModel = null;
// Search parents for CompoundPropertyModel
for (Component current = getParent(); current != null; current = current.getParent())
{
// Get model
- // Don't call the getModel() that could initialize many inbetween
+ // Don't call the getModel() that could initialize many in between
// completely useless models.
// IModel model = current.getModel();
IModel<?> model = current.getModelImpl();
@@ -3767,10 +3767,10 @@ public abstract class Component
model = ((IWrapModel<?>)model).getWrappedModel();
}
- if (model instanceof IComponentInheritedModel)
+ if (model instanceof IComponentInheritedModel<?>)
{
// return the shared inherited
- foundModel = ((IComponentInheritedModel<?>)model).wrapOnInheritance(this);
+ foundModel = ((IComponentInheritedModel<T>)model).wrapOnInheritance(this);
setFlag(FLAG_INHERITABLE_MODEL, true);
break;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
index e4b9b5b..234f926 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -95,7 +95,7 @@ import org.slf4j.LoggerFactory;
* @author Jonathan Locke
*
*/
-public abstract class MarkupContainer extends Component implements Iterable<Component>
+public abstract class MarkupContainer<T> extends Component<T> implements Iterable<Component<?>>
{
private static final long serialVersionUID = 1L;
@@ -497,9 +497,9 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
* @return Iterator that iterates through children in the order they were added
*/
@Override
- public Iterator<Component> iterator()
+ public Iterator<Component<?>> iterator()
{
- return new Iterator<Component>()
+ return new Iterator<Component<?>>()
{
int index = 0;
@@ -750,13 +750,13 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
}
/**
- * @see org.apache.wicket.Component#setDefaultModel(org.apache.wicket.model.IModel)
+ * @see org.apache.wicket.Component#setModel(org.apache.wicket.model.IModel)
*/
@Override
- public MarkupContainer setDefaultModel(final IModel<?> model)
+ public MarkupContainer setModel(final IModel<T> model)
{
final IModel<?> previous = getModelImpl();
- super.setDefaultModel(model);
+ super.setModel(model);
if (previous instanceof IComponentInheritedModel)
{
visitChildren(new IVisitor<Component, Void>()
@@ -764,14 +764,14 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
@Override
public void component(final Component component, final IVisit<Void> visit)
{
- IModel<?> compModel = component.getDefaultModel();
+ IModel<?> compModel = component.getModel();
if (compModel instanceof IWrapModel)
{
compModel = ((IWrapModel<?>)compModel).getWrappedModel();
}
if (compModel == previous)
{
- component.setDefaultModel(null);
+ component.setModel(null);
}
else if (compModel == model)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/MetaDataKey.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/MetaDataKey.java b/wicket-core/src/main/java/org/apache/wicket/MetaDataKey.java
index 64bb616..819546a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MetaDataKey.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MetaDataKey.java
@@ -17,6 +17,8 @@
package org.apache.wicket;
+import java.io.Serializable;
+
import org.apache.wicket.util.io.IClusterable;
/**
@@ -42,7 +44,7 @@ import org.apache.wicket.util.io.IClusterable;
* @see Component#getMetaData(MetaDataKey)
* @see Application#getMetaData(MetaDataKey)
*/
-public abstract class MetaDataKey<T> implements IClusterable
+public abstract class MetaDataKey<T extends Serializable> implements IClusterable
{
private static final long serialVersionUID = 1L;
@@ -96,7 +98,7 @@ public abstract class MetaDataKey<T> implements IClusterable
* The object to set, null to remove
* @return Any new metadata array (if it was reallocated)
*/
- public MetaDataEntry<?>[] set(MetaDataEntry<?>[] metaData, final Object object)
+ public MetaDataEntry<?>[] set(MetaDataEntry<?>[] metaData, final T object)
{
boolean set = false;
if (metaData != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/Page.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Page.java b/wicket-core/src/main/java/org/apache/wicket/Page.java
index 1c811aa..b39fdd2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -669,7 +669,7 @@ public abstract class Page extends MarkupContainer implements IRedirectListener,
renderedComponents = null;
}
- private boolean hasInvisibleTransparentChild(final MarkupContainer root, final Component self)
+ private boolean hasInvisibleTransparentChild(final MarkupContainer<?> root, final Component<?> self)
{
for (Component sibling : root)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/Session.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Session.java b/wicket-core/src/main/java/org/apache/wicket/Session.java
index 253ed7d..c8a47dd 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Session.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Session.java
@@ -599,7 +599,7 @@ public abstract class Session implements IClusterable, IEventSink
* @throws IllegalArgumentException
* @see MetaDataKey
*/
- public final synchronized void setMetaData(final MetaDataKey<?> key, final Serializable object)
+ public final synchronized <M extends Serializable> void setMetaData(final MetaDataKey<M> key, final M object)
{
metaData = key.set(metaData, object);
dirty();
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/markup/html/WebMarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebMarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebMarkupContainer.java
index 222169a..72ac023 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebMarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebMarkupContainer.java
@@ -32,7 +32,7 @@ import org.apache.wicket.request.http.WebResponse;
* @author Juergen Donnerstag
*
*/
-public class WebMarkupContainer extends MarkupContainer
+public class WebMarkupContainer<T> extends MarkupContainer<T>
{
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/model/IWrapModel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/model/IWrapModel.java b/wicket-core/src/main/java/org/apache/wicket/model/IWrapModel.java
index b91bb57..d51a1dd 100644
--- a/wicket-core/src/main/java/org/apache/wicket/model/IWrapModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/model/IWrapModel.java
@@ -37,5 +37,5 @@ public interface IWrapModel<T> extends IModel<T>
*
* @return The wrapped model
*/
- IModel<?> getWrappedModel();
+ IModel<T> getWrappedModel();
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
index 0a84739..b38a1da 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.request.cycle;
+import java.io.Serializable;
+
import org.apache.wicket.Application;
import org.apache.wicket.MetaDataEntry;
import org.apache.wicket.MetaDataKey;
@@ -394,7 +396,7 @@ public class RequestCycle implements IRequestCycle, IEventSink
* @throws IllegalArgumentException
* @see MetaDataKey
*/
- public final <T> void setMetaData(final MetaDataKey<T> key, final T object)
+ public final <T extends Serializable> void setMetaData(final MetaDataKey<T> key, final T object)
{
metaData = key.set(metaData, object);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4177909/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
index 0fdaa69..caa7db9 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
@@ -95,7 +95,7 @@ public class WicketTesterHelper
object.type = name;
try
{
- object.value = component.getDefaultModelObjectAsString();
+ object.value = component.getModelObjectAsString();
}
catch (Exception e)
{
@@ -194,7 +194,7 @@ public class WicketTesterHelper
public static List<AjaxEventBehavior> findAjaxEventBehaviors(Component component, String event)
{
Args.notEmpty(event, "event");
- List<AjaxEventBehavior> behaviors = new ArrayList<AjaxEventBehavior>();
+ List<AjaxEventBehavior> behaviors = new ArrayList<>();
String[] eventNames = Strings.split(event, ' ');
for (String eventName : eventNames)
{