Updated Branches: refs/heads/master 01b6dae91 -> 7e1aa8653
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/7e1aa865 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7e1aa865 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7e1aa865 Branch: refs/heads/master Commit: 7e1aa86533b5347fcf598d75e3fce993324f8a43 Parents: 01b6dae Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sun Sep 2 16:38:48 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sun Sep 2 16:38:48 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 | 31 ++++++++------- .../org/apache/wicket/util/lang/ClassesTest.java | 17 ++++++++- 4 files changed, 35 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/7e1aa865/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 aafda67..58fc8a1 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/7e1aa865/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 f7109ec..7ef7d2e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Page.java +++ b/wicket-core/src/main/java/org/apache/wicket/Page.java @@ -853,7 +853,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/7e1aa865/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 a702857..4eac9c4 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 @@ -34,9 +34,19 @@ public final class Classes * The class * @return The class name */ - public static String name(final Class<?> c) + public static String name(Class<?> c) { - return (c != null) ? c.getName() : null; + String name = null; + if (c != null) + { + while (c.isAnonymousClass()) + { + c = c.getSuperclass(); + } + name = c.getName(); + } + + return name; } /** @@ -46,23 +56,16 @@ public final class Classes * The class * @return The class simple name */ - public static String simpleName(final Class<?> c) + public static String simpleName(Class<?> c) { - String simpleName; + String simpleName = null; if (c != null) { - if (c.isAnonymousClass()) - { - simpleName = c.getSuperclass().getSimpleName(); - } - else + while (c.isAnonymousClass()) { - simpleName = c.getSimpleName(); + c = c.getSuperclass(); } - } - else - { - simpleName = null; + simpleName = c.getSimpleName(); } return simpleName; http://git-wip-us.apache.org/repos/asf/wicket/blob/7e1aa865/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 index 9977c98..7b66f57 100644 --- 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 @@ -22,7 +22,7 @@ import org.junit.Assert; import org.junit.Test; /** - * @since + * @since 1.5.8 */ public class ClassesTest extends Assert { @@ -38,4 +38,19 @@ public class ClassesTest extends Assert // 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())); + } + + }
