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 2012/09/02 16:43:45 UTC
[1/2] git commit: Improve the handling of nested inner classes in
Classes.(name|simpleName)
Updated Branches:
refs/heads/wicket-1.5.x d149893ee -> ba9aba837
Improve the handling of nested inner classes in Classes.(name|simpleName)
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/81eee3ca
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/81eee3ca
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/81eee3ca
Branch: refs/heads/wicket-1.5.x
Commit: 81eee3ca2609f6c6ea6cc3dee8213970bc0a60ff
Parents: d149893
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Sep 2 16:38:48 2012 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Sep 2 16:43:38 2012 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/MarkupContainer.java | 7 +--
.../src/main/java/org/apache/wicket/Page.java | 2 +-
.../java/org/apache/wicket/util/lang/Classes.java | 46 +++++++++++--
.../org/apache/wicket/util/lang/ClassesTest.java | 54 +++++++++++++++
4 files changed, 95 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/81eee3ca/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 c7ce9b5..a061738 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -679,12 +679,7 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
.isOutputMarkupContainerClassName();
if (outputClassName)
{
- Class<?> klass = getClass();
- while (klass.isAnonymousClass())
- {
- klass = klass.getSuperclass();
- }
- className = klass.getName();
+ className = Classes.name(getClass());
getResponse().write("<!-- MARKUP FOR ");
getResponse().write(className);
getResponse().write(" BEGIN -->");
http://git-wip-us.apache.org/repos/asf/wicket/blob/81eee3ca/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 7bd97c8..a3dc6fa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -876,7 +876,7 @@ public abstract class Page extends MarkupContainer implements IRedirectListener,
}
getResponse().write("<!-- Page Class ");
getResponse().write(klass.getName());
- getResponse().write(" -->\n");
+ getResponse().write(" END -->\n");
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/81eee3ca/wicket-util/src/main/java/org/apache/wicket/util/lang/Classes.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/lang/Classes.java b/wicket-util/src/main/java/org/apache/wicket/util/lang/Classes.java
index f681459..cef057c 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/lang/Classes.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/lang/Classes.java
@@ -22,7 +22,7 @@ import org.apache.wicket.util.string.Strings;
/**
* Utilities for dealing with classes.
- *
+ *
* @author Jonathan Locke
*/
public final class Classes
@@ -30,21 +30,53 @@ public final class Classes
/**
* Gets the name of the given class or null if the class is null.
- *
+ *
* @param c
* The class
* @return The class name
*/
- public static String name(final Class<?> c)
+ public static String name(Class<?> c)
+ {
+ String name = null;
+ if (c != null)
+ {
+ while (c.isAnonymousClass())
+ {
+ c = c.getSuperclass();
+ }
+ name = c.getName();
+ }
+
+ return name;
+ }
+
+ /**
+ * Gets the simple name (without the package) of the given class or null if the class is null.
+ *
+ * @param c
+ * The class
+ * @return The class simple name
+ */
+ public static String simpleName(Class<?> c)
{
- return (c != null) ? c.getName() : null;
+ String simpleName = null;
+ if (c != null)
+ {
+ while (c.isAnonymousClass())
+ {
+ c = c.getSuperclass();
+ }
+ simpleName = c.getSimpleName();
+ }
+
+ return simpleName;
}
/**
* Takes a Class and a relative path to a class and returns any class at that relative path. For
* example, if the given Class was java.lang.System and the relative path was "../util/List",
* then the java.util.List class would be returned.
- *
+ *
* @param scope
* The package to start at
* @param path
@@ -61,9 +93,9 @@ public final class Classes
/**
* Gets the name of a given class without the prefixed package path
- *
+ *
* @param <C>
- *
+ *
* @param c
* The class
* @return The class name
http://git-wip-us.apache.org/repos/asf/wicket/blob/81eee3ca/wicket-util/src/test/java/org/apache/wicket/util/lang/ClassesTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/lang/ClassesTest.java b/wicket-util/src/test/java/org/apache/wicket/util/lang/ClassesTest.java
new file mode 100644
index 0000000..7df5a8e
--- /dev/null
+++ b/wicket-util/src/test/java/org/apache/wicket/util/lang/ClassesTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.lang;
+
+import java.text.SimpleDateFormat;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @since 1.5.8
+ */
+public class ClassesTest extends Assert
+{
+ @Test
+ public void simpleName() throws Exception
+ {
+
+ assertEquals("String", Classes.simpleName(String.class));
+ assertEquals("String", Classes.simpleName("".getClass()));
+
+ assertEquals("SimpleDateFormat", Classes.simpleName(new SimpleDateFormat() {}.getClass()));
+
+ // anonymous interface impl
+ assertEquals("Object", Classes.simpleName(new Cloneable() {}.getClass()));
+ }
+
+ @Test
+ public void name() throws Exception
+ {
+
+ assertEquals("java.lang.String", Classes.name(String.class));
+ assertEquals("java.lang.String", Classes.name("".getClass()));
+
+ assertEquals("java.text.SimpleDateFormat", Classes.name(new SimpleDateFormat() {}.getClass()));
+
+ // anonymous interface impl
+ assertEquals("java.lang.Object", Classes.name(new Cloneable() {}.getClass()));
+ }
+}