Author: steve.ebersole(a)jboss.com
Date: 2009-03-05 23:49:15 -0500 (Thu, 05 Mar 2009)
New Revision: 16094
Added:
core/trunk/core/src/test/java/org/hibernate/util/
core/trunk/core/src/test/java/org/hibernate/util/StringHelperTest.java
Modified:
core/trunk/core/src/main/java/org/hibernate/util/StringHelper.java
Log:
HHH-3800 - Allow chopping of class names in various logging scenarios
Modified: core/trunk/core/src/main/java/org/hibernate/util/StringHelper.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/util/StringHelper.java 2009-03-06 04:48:32
UTC (rev 16093)
+++ core/trunk/core/src/main/java/org/hibernate/util/StringHelper.java 2009-03-06 04:49:15
UTC (rev 16094)
@@ -125,7 +125,7 @@
if ( template == null ) {
return template; // returnign null!
}
- int loc = template == null ? -1 : template.indexOf( placeholder );
+ int loc = template.indexOf( placeholder );
if ( loc < 0 ) {
return template;
}
@@ -171,6 +171,9 @@
* @return The collapsed name.
*/
public static String collapse(String name) {
+ if ( name == null ) {
+ return null;
+ }
int breakPoint = name.lastIndexOf( '.' );
if ( breakPoint < 0 ) {
return name;
@@ -208,7 +211,7 @@
* @return The name itself, or the partially unqualified form if it begins with the
qualifier base.
*/
public static String partiallyUnqualify(String name, String qualifierBase) {
- if ( ! name.startsWith( qualifierBase ) ) {
+ if ( name == null || ! name.startsWith( qualifierBase ) ) {
return name;
}
return name.substring( qualifierBase.length() + 1 ); // +1 to start after the following
'.'
@@ -225,7 +228,7 @@
* @return The name itself if it does not begin with the qualifierBase, or the properly
collapsed form otherwise.
*/
public static String collapseQualifierBase(String name, String qualifierBase) {
- if ( ! name.startsWith( qualifierBase ) ) {
+ if ( name == null || ! name.startsWith( qualifierBase ) ) {
return collapse( name );
}
return collapseQualifier( qualifierBase, true ) + name.substring(
qualifierBase.length() );
@@ -408,10 +411,13 @@
}
/**
- * Generate a nice alias for the given class name or collection role
- * name and unique integer. Subclasses of Loader do <em>not</em> have
- * to use aliases of this form.
- * @return an alias of the form <tt>foo1_</tt>
+ * Generate a nice alias for the given class name or collection role name and unique
integer. Subclasses of
+ * Loader do <em>not</em> have to use aliases of this form.
+ *
+ * @param description The base name (usually an entity-name or collection-role)
+ * @param unique A uniquing value
+ *
+ * @return an alias of the form <samp>foo1_</samp>
*/
public static String generateAlias(String description, int unique) {
return generateAliasRoot(description) +
Added: core/trunk/core/src/test/java/org/hibernate/util/StringHelperTest.java
===================================================================
--- core/trunk/core/src/test/java/org/hibernate/util/StringHelperTest.java
(rev 0)
+++ core/trunk/core/src/test/java/org/hibernate/util/StringHelperTest.java 2009-03-06
04:49:15 UTC (rev 16094)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2009, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.util;
+
+import junit.framework.TestCase;
+
+/**
+ * TODO : javadoc
+ *
+ * @author Steve Ebersole
+ */
+public class StringHelperTest extends TestCase {
+ private static final String BASE_PACKAGE = "org.hibernate";
+ private static final String STRING_HELPER_FQN =
"org.hibernate.util.StringHelper";
+ private static final String STRING_HELPER_NAME = StringHelper.unqualify(
STRING_HELPER_FQN );
+
+ public void testNameCollapsing() {
+ assertNull( StringHelper.collapse( null ) );
+ assertEquals( STRING_HELPER_NAME, StringHelper.collapse( STRING_HELPER_NAME ) );
+ assertEquals( "o.h.u.StringHelper", StringHelper.collapse( STRING_HELPER_FQN
) );
+ }
+
+ public void testPartialNameUnqualification() {
+ assertNull( StringHelper.partiallyUnqualify( null, BASE_PACKAGE ) );
+ assertEquals( STRING_HELPER_NAME, StringHelper.partiallyUnqualify( STRING_HELPER_NAME,
BASE_PACKAGE ) );
+ assertEquals( "util.StringHelper", StringHelper.partiallyUnqualify(
STRING_HELPER_FQN, BASE_PACKAGE ) );
+ }
+
+ public void testBasePackageCollapsing() {
+ assertNull( StringHelper.collapseQualifierBase( null, BASE_PACKAGE ) );
+ assertEquals( STRING_HELPER_NAME, StringHelper.collapseQualifierBase(
STRING_HELPER_NAME, BASE_PACKAGE ) );
+ assertEquals( "o.h.util.StringHelper", StringHelper.collapseQualifierBase(
STRING_HELPER_FQN, BASE_PACKAGE ) );
+ }
+}
Show replies by date