You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2012/06/14 22:11:21 UTC
git commit: fixed warnings,
ClassVisitFilter has no use for generic parameter, added AllVisitFilter
Updated Branches:
refs/heads/master b5d81b36b -> 2b4a0c99e
fixed warnings, ClassVisitFilter has no use for generic parameter, added AllVisitFilter
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2b4a0c99
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2b4a0c99
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2b4a0c99
Branch: refs/heads/master
Commit: 2b4a0c99e742476658f271f0b7ebd60c653b9969
Parents: b5d81b3
Author: Sven Meier <sv...@apache.org>
Authored: Thu Jun 14 22:10:24 2012 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Thu Jun 14 22:10:24 2012 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/wicket/Component.java | 23 +++------
.../test/java/org/apache/wicket/VisitorTest.java | 8 ++-
.../apache/wicket/util/visit/AllVisitFilter.java | 37 ++++++++++++++
.../apache/wicket/util/visit/ClassVisitFilter.java | 12 +++--
.../wicket/util/visit/AllVisitFilterTest.java | 39 +++++++++++++++
.../wicket/util/visit/ClassVisitFilterTest.java | 13 +++--
6 files changed, 104 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/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 4cb377c..6686d98 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -86,8 +86,9 @@ import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.string.PrependingStringBuffer;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.ValueMap;
-import org.apache.wicket.util.visit.ClassVisitFilter;
+import org.apache.wicket.util.visit.AllVisitFilter;
import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitFilter;
import org.apache.wicket.util.visit.IVisitor;
import org.apache.wicket.util.visit.Visit;
import org.slf4j.Logger;
@@ -3399,17 +3400,9 @@ public abstract class Component
public final <R, C extends MarkupContainer> R visitParents(final Class<C> parentClass,
final IVisitor<C, R> visitor)
{
- return visitParents(parentClass, visitor, new ClassVisitFilter<R>(null)
- {
- @Override
- public boolean visitObject(Object object)
- {
- return true;
- }
- });
+ return visitParents(parentClass, visitor, new AllVisitFilter());
}
-
/**
* Traverses all parent components of the given class in this parentClass, calling the visitor's
* visit method at each one.
@@ -3424,15 +3417,15 @@ public abstract class Component
* a filter that adds an additional logic to the condition whether a parent container
* matches
* @return First non-null value returned by visitor callback
- * @see org.apache.wicket.util.visit.ClassVisitFilter
*/
+ @SuppressWarnings("unchecked")
public final <R, C extends MarkupContainer> R visitParents(final Class<C> parentClass,
- final IVisitor<C, R> visitor, ClassVisitFilter<R> filter)
+ final IVisitor<C, R> visitor, IVisitFilter filter)
{
Args.notNull(filter, "filter");
// Start here
- C current = (C)getParent();
+ MarkupContainer current = getParent();
Visit<R> visit = new Visit<R>();
@@ -3442,7 +3435,7 @@ public abstract class Component
// Is current an instance of this class?
if (parentClass.isInstance(current) && filter.visitObject(current))
{
- visitor.component(current, visit);
+ visitor.component((C)current, visit);
if (visit.isStopped())
{
return visit.getResult();
@@ -3450,7 +3443,7 @@ public abstract class Component
}
// Check parent
- current = (C)current.getParent();
+ current = current.getParent();
}
return null;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java b/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
index f1d7c0f..a91c399 100644
--- a/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/VisitorTest.java
@@ -183,7 +183,7 @@ public class VisitorTest extends WicketTestCase
/**
* https://issues.apache.org/jira/browse/WICKET-3805
- *
+ *
* Visit parents with arbitrary type
*/
public void testVisitParents()
@@ -193,11 +193,11 @@ public class VisitorTest extends WicketTestCase
{
public void component(MarkupContainer object, IVisit<MarkerInterface> visit)
{
- visit.stop((MarkerInterface) object);
+ visit.stop((MarkerInterface)object);
}
};
MarkerInterface markedParent = testContainer.get("G:H").visitParents(MarkupContainer.class,
- visitor, new ClassVisitFilter<MarkerInterface>(MarkerInterface.class));
+ visitor, new ClassVisitFilter(MarkerInterface.class));
assertEquals("G", markedParent.getId());
}
@@ -210,6 +210,8 @@ public class VisitorTest extends WicketTestCase
implements
MarkerInterface
{
+ private static final long serialVersionUID = 1L;
+
public MarkedWebMarkupContainer(String id)
{
super(id);
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/wicket-util/src/main/java/org/apache/wicket/util/visit/AllVisitFilter.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/visit/AllVisitFilter.java b/wicket-util/src/main/java/org/apache/wicket/util/visit/AllVisitFilter.java
new file mode 100644
index 0000000..80d6794
--- /dev/null
+++ b/wicket-util/src/main/java/org/apache/wicket/util/visit/AllVisitFilter.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.visit;
+
+/**
+ * {@link IVisitFilter} that let visitors visit all.
+ *
+ * @author igor.vaynberg
+ */
+public class AllVisitFilter implements IVisitFilter
+{
+ /** {@inheritDoc} */
+ public boolean visitChildren(final Object object)
+ {
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ public boolean visitObject(final Object object)
+ {
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/wicket-util/src/main/java/org/apache/wicket/util/visit/ClassVisitFilter.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/visit/ClassVisitFilter.java b/wicket-util/src/main/java/org/apache/wicket/util/visit/ClassVisitFilter.java
index 0a7d0b1..57f3500 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/visit/ClassVisitFilter.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/visit/ClassVisitFilter.java
@@ -16,14 +16,16 @@
*/
package org.apache.wicket.util.visit;
+import org.apache.wicket.util.lang.Args;
+
/**
* {@link IVisitFilter} that restricts visitors to only visiting objects of the specified class
*
* @author igor.vaynberg
*/
-public class ClassVisitFilter<T> implements IVisitFilter
+public class ClassVisitFilter implements IVisitFilter
{
- private final Class<T> clazz;
+ private final Class<?> clazz;
/**
* Constructor
@@ -31,8 +33,10 @@ public class ClassVisitFilter<T> implements IVisitFilter
* @param clazz
* class of objects that visitors should be restricted to
*/
- public ClassVisitFilter(final Class<T> clazz)
+ public ClassVisitFilter(final Class<?> clazz)
{
+ Args.notNull(clazz, "clazz");
+
this.clazz = clazz;
}
@@ -45,6 +49,6 @@ public class ClassVisitFilter<T> implements IVisitFilter
/** {@inheritDoc} */
public boolean visitObject(final Object object)
{
- return clazz == null || clazz.isAssignableFrom(object.getClass());
+ return clazz.isAssignableFrom(object.getClass());
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/wicket-util/src/test/java/org/apache/wicket/util/visit/AllVisitFilterTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/visit/AllVisitFilterTest.java b/wicket-util/src/test/java/org/apache/wicket/util/visit/AllVisitFilterTest.java
new file mode 100644
index 0000000..2eb972d
--- /dev/null
+++ b/wicket-util/src/test/java/org/apache/wicket/util/visit/AllVisitFilterTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.visit;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test for {@link AllVisitFilter}.
+ *
+ * @since 1.5.7
+ */
+public class AllVisitFilterTest extends Assert
+{
+ /**
+ * @throws Exception
+ */
+ @Test
+ public void visitAll() throws Exception
+ {
+ IVisitFilter filter = new AllVisitFilter();
+ assertTrue(filter.visitObject("a string"));
+ assertTrue(filter.visitObject(123));
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2b4a0c99/wicket-util/src/test/java/org/apache/wicket/util/visit/ClassVisitFilterTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/visit/ClassVisitFilterTest.java b/wicket-util/src/test/java/org/apache/wicket/util/visit/ClassVisitFilterTest.java
index b93c5f4..01894c4 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/visit/ClassVisitFilterTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/visit/ClassVisitFilterTest.java
@@ -20,19 +20,20 @@ import org.junit.Assert;
import org.junit.Test;
/**
+ * Test for {@link ClassVisitFilter}.
+ *
* @since 1.5.7
*/
public class ClassVisitFilterTest extends Assert
{
+ /**
+ * @throws Exception
+ */
@Test
- public void visitObject() throws Exception
+ public void visitStrings() throws Exception
{
- ClassVisitFilter<String> filter = new ClassVisitFilter<String>(String.class);
+ ClassVisitFilter filter = new ClassVisitFilter(String.class);
assertTrue(filter.visitObject("a string"));
assertFalse(filter.visitObject(123));
-
- filter = new ClassVisitFilter<String>(null);
- assertTrue(filter.visitObject("a string"));
- assertTrue(filter.visitObject(123));
}
}