From 3681e5d427be127705556db028755721637db594 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 26 Feb 2015 13:23:45 -0500 Subject: [PATCH] Move ConfigBeanFactorTest and toCamelCase into the impl package --- .../typesafe/config/ConfigBeanFactory.java | 23 ++--------- .../typesafe/config/impl/ConfigImplUtil.java | 18 +++++++++ .../{ => impl}/ConfigBeanFactoryTest.scala | 38 ++++--------------- 3 files changed, 29 insertions(+), 50 deletions(-) rename config/src/test/scala/com/typesafe/config/{ => impl}/ConfigBeanFactoryTest.scala (78%) diff --git a/config/src/main/java/com/typesafe/config/ConfigBeanFactory.java b/config/src/main/java/com/typesafe/config/ConfigBeanFactory.java index 00c4999f..96e78ca1 100644 --- a/config/src/main/java/com/typesafe/config/ConfigBeanFactory.java +++ b/config/src/main/java/com/typesafe/config/ConfigBeanFactory.java @@ -10,6 +10,7 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; import java.time.Duration; +import com.typesafe.config.impl.ConfigImplUtil; /** * Factory for automatic creation of config classes populated with values from config. @@ -41,8 +42,8 @@ public class ConfigBeanFactory { Map configProps = new HashMap(); Map originalNames = new HashMap(); for (Map.Entry configProp : configAsMap.entrySet()) { - configProps.put(toCamelCase(configProp.getKey()), configProp.getValue()); - originalNames.put(toCamelCase(configProp.getKey()),configProp.getKey()); + configProps.put(ConfigImplUtil.toCamelCase(configProp.getKey()), configProp.getValue()); + originalNames.put(ConfigImplUtil.toCamelCase(configProp.getKey()),configProp.getKey()); } BeanInfo beanInfo = null; @@ -106,22 +107,4 @@ public class ConfigBeanFactory { return config.getAnyRef(configPropName); } - - /** - * Converts from hyphenated name to camel case. - */ - static String toCamelCase(String originalName) { - String[] words = originalName.split("-+"); - StringBuilder nameBuilder = new StringBuilder(originalName.length()); - for (int i = 0; i < words.length; i++) { - if (nameBuilder.length() == 0) { - nameBuilder.append(words[i]); - } else { - nameBuilder.append(words[i].substring(0, 1).toUpperCase()); - nameBuilder.append(words[i].substring(1)); - } - } - return nameBuilder.toString(); - } - } diff --git a/config/src/main/java/com/typesafe/config/impl/ConfigImplUtil.java b/config/src/main/java/com/typesafe/config/impl/ConfigImplUtil.java index fde0341d..836b3cb9 100644 --- a/config/src/main/java/com/typesafe/config/impl/ConfigImplUtil.java +++ b/config/src/main/java/com/typesafe/config/impl/ConfigImplUtil.java @@ -230,4 +230,22 @@ final public class ConfigImplUtil { SerializedConfigValue.writeOrigin(new DataOutputStream(out), (SimpleConfigOrigin) origin, null); } + + /** + * This is public ONLY for use by the "config" package, DO NOT USE this ABI + * may change. + */ + public static String toCamelCase(String originalName) { + String[] words = originalName.split("-+"); + StringBuilder nameBuilder = new StringBuilder(originalName.length()); + for (String word : words) { + if (nameBuilder.length() == 0) { + nameBuilder.append(word); + } else { + nameBuilder.append(word.substring(0, 1).toUpperCase()); + nameBuilder.append(word.substring(1)); + } + } + return nameBuilder.toString(); + } } diff --git a/config/src/test/scala/com/typesafe/config/ConfigBeanFactoryTest.scala b/config/src/test/scala/com/typesafe/config/impl/ConfigBeanFactoryTest.scala similarity index 78% rename from config/src/test/scala/com/typesafe/config/ConfigBeanFactoryTest.scala rename to config/src/test/scala/com/typesafe/config/impl/ConfigBeanFactoryTest.scala index 416016fb..0d1c05c2 100644 --- a/config/src/test/scala/com/typesafe/config/ConfigBeanFactoryTest.scala +++ b/config/src/test/scala/com/typesafe/config/impl/ConfigBeanFactoryTest.scala @@ -1,7 +1,9 @@ /** * Copyright (C) 2013 Typesafe Inc. */ -package com.typesafe.config +package com.typesafe.config.impl + +import com.typesafe.config._ import java.io.{ InputStream, InputStreamReader } import java.time.Duration; @@ -12,38 +14,14 @@ import org.junit._ import scala.collection.JavaConverters._ -class ConfigBeanFactoryTest { - - // TODO this is here temporarily to avoid moving to impl in this - // same commit - import scala.reflect.ClassTag - import scala.reflect.classTag - protected def intercept[E <: Throwable: ClassTag](block: => Any): E = { - val expectedClass = classTag[E].runtimeClass - var thrown: Option[Throwable] = None - val result = try { - Some(block) - } catch { - case t: Throwable => - thrown = Some(t) - None - } - thrown match { - case Some(t) if expectedClass.isAssignableFrom(t.getClass) => - t.asInstanceOf[E] - case Some(t) => - throw new Exception(s"Expected exception ${expectedClass.getName} was not thrown, got $t", t) - case None => - throw new Exception(s"Expected exception ${expectedClass.getName} was not thrown, no exception was thrown and got result $result") - } - } +class ConfigBeanFactoryTest extends TestUtils { @Test def toCamelCase() { - assertEquals("configProp", ConfigBeanFactory.toCamelCase("config-prop")) - assertEquals("fooBar", ConfigBeanFactory.toCamelCase("foo-----bar")) - assertEquals("foo", ConfigBeanFactory.toCamelCase("-foo")) - assertEquals("bar", ConfigBeanFactory.toCamelCase("bar-")) + assertEquals("configProp", ConfigImplUtil.toCamelCase("config-prop")) + assertEquals("fooBar", ConfigImplUtil.toCamelCase("foo-----bar")) + assertEquals("foo", ConfigImplUtil.toCamelCase("-foo")) + assertEquals("bar", ConfigImplUtil.toCamelCase("bar-")) } @Test