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));
 	}
 }