You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2011/04/21 17:33:02 UTC
svn commit: r1095752 - in /commons/proper/lang/trunk/src:
main/java/org/apache/commons/lang3/ClassUtils.java
test/java/org/apache/commons/lang3/ClassUtilsTest.java
Author: ggregory
Date: Thu Apr 21 15:33:02 2011
New Revision: 1095752
URL: http://svn.apache.org/viewvc?rev=1095752&view=rev
Log:
Add two new null-safe APIs: getSimpleName(*). See https://issues.apache.org/jira/browse/LANG-696
Modified:
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ClassUtils.java
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ClassUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ClassUtils.java?rev=1095752&r1=1095751&r2=1095752&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ClassUtils.java (original)
+++ commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ClassUtils.java Thu Apr 21 15:33:02 2011
@@ -213,6 +213,37 @@ public class ClassUtils {
return out + arrayPrefix;
}
+ /**
+ * <p>Null-safe version of <code>aClass.getSimpleName()</code></p>
+ *
+ * @param cls the class for which to get the simple name.
+ * @return the simple class name.
+ * @since 3.0
+ * @see Class#getSimpleName()
+ */
+ public static String getSimpleName(Class<?> cls) {
+ if (cls == null) {
+ return StringUtils.EMPTY;
+ }
+ return cls.getSimpleName();
+ }
+
+ /**
+ * <p>Null-safe version of <code>aClass.getSimpleName()</code></p>
+ *
+ * @param object the object for which to get the simple class name.
+ * @param valueIfNull the value to return if <code>object</code> is <code>null</code>
+ * @return the simple class name.
+ * @since 3.0
+ * @see Class#getSimpleName()
+ */
+ public static String getSimpleName(Object object, String valueIfNull) {
+ if (object == null) {
+ return valueIfNull;
+ }
+ return getSimpleName(object.getClass());
+ }
+
// Package name
// ----------------------------------------------------------------------
/**
Modified: commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java?rev=1095752&r1=1095751&r2=1095752&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java (original)
+++ commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java Thu Apr 21 15:33:02 2011
@@ -99,6 +99,8 @@ public class ClassUtilsTest extends Test
assertEquals("String[][][][]", ClassUtils.getShortClassName(String[][][][].class));
}
+
+
public void test_getShortClassName_String() {
assertEquals("ClassUtils", ClassUtils.getShortClassName(ClassUtils.class.getName()));
assertEquals("Map.Entry", ClassUtils.getShortClassName(Map.Entry.class.getName()));
@@ -106,6 +108,48 @@ public class ClassUtilsTest extends Test
assertEquals("", ClassUtils.getShortClassName(""));
}
+ public void test_getSimpleName_Class() {
+ assertEquals("ClassUtils", ClassUtils.getSimpleName(ClassUtils.class));
+ assertEquals("Entry", ClassUtils.getSimpleName(Map.Entry.class));
+ assertEquals("", ClassUtils.getSimpleName((Class<?>) null));
+
+ // LANG-535
+ assertEquals("String[]", ClassUtils.getSimpleName(String[].class));
+ assertEquals("Entry[]", ClassUtils.getSimpleName(Map.Entry[].class));
+
+ // Primitives
+ assertEquals("boolean", ClassUtils.getSimpleName(boolean.class));
+ assertEquals("byte", ClassUtils.getSimpleName(byte.class));
+ assertEquals("char", ClassUtils.getSimpleName(char.class));
+ assertEquals("short", ClassUtils.getSimpleName(short.class));
+ assertEquals("int", ClassUtils.getSimpleName(int.class));
+ assertEquals("long", ClassUtils.getSimpleName(long.class));
+ assertEquals("float", ClassUtils.getSimpleName(float.class));
+ assertEquals("double", ClassUtils.getSimpleName(double.class));
+
+ // Primitive Arrays
+ assertEquals("boolean[]", ClassUtils.getSimpleName(boolean[].class));
+ assertEquals("byte[]", ClassUtils.getSimpleName(byte[].class));
+ assertEquals("char[]", ClassUtils.getSimpleName(char[].class));
+ assertEquals("short[]", ClassUtils.getSimpleName(short[].class));
+ assertEquals("int[]", ClassUtils.getSimpleName(int[].class));
+ assertEquals("long[]", ClassUtils.getSimpleName(long[].class));
+ assertEquals("float[]", ClassUtils.getSimpleName(float[].class));
+ assertEquals("double[]", ClassUtils.getSimpleName(double[].class));
+
+ // Arrays of arrays of ...
+ assertEquals("String[][]", ClassUtils.getSimpleName(String[][].class));
+ assertEquals("String[][][]", ClassUtils.getSimpleName(String[][][].class));
+ assertEquals("String[][][][]", ClassUtils.getSimpleName(String[][][][].class));
+ }
+
+ public void test_getSimpleName_Object() {
+ assertEquals("ClassUtils", ClassUtils.getSimpleName(new ClassUtils(), "<null>"));
+ assertEquals("Inner", ClassUtils.getSimpleName(new Inner(), "<null>"));
+ assertEquals("String", ClassUtils.getSimpleName("hello", "<null>"));
+ assertEquals("<null>", ClassUtils.getSimpleName(null, "<null>"));
+ }
+
// -------------------------------------------------------------------------
public void test_getPackageName_Object() {
assertEquals("org.apache.commons.lang3", ClassUtils.getPackageName(new ClassUtils(), "<null>"));