diff --git a/Zutil.jar b/Zutil.jar index 7457c19..b96f3b8 100755 Binary files a/Zutil.jar and b/Zutil.jar differ diff --git a/src/zutil/StringUtil.java b/src/zutil/StringUtil.java index 9658de3..a2c8259 100755 --- a/src/zutil/StringUtil.java +++ b/src/zutil/StringUtil.java @@ -27,6 +27,8 @@ package zutil; import zutil.converters.Converter; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; /** * This is a class whit utility methods. @@ -128,6 +130,23 @@ public class StringUtil { return str.reverse().toString(); } + /** + * @param list a list of object that toString() will be called on + * @param delimiter a String delimiter that will be added between every entry in the list + * @return a String containing all entries in the list with the specified delimiter in between entries + */ + public static String join(Iterable list, String delimiter){ + StringBuilder str = new StringBuilder(); + Iterator it = list.iterator(); + if(it.hasNext()) { + str.append(it.next()); + while (it.hasNext()) { + str.append(delimiter).append(it.next()); + } + } + return str.toString(); + } + /** * Trims the given char and whitespace at the beginning and the end * diff --git a/src/zutil/db/DBUpgradeHandler.java b/src/zutil/db/DBUpgradeHandler.java index 1c398b4..5e7c5c9 100755 --- a/src/zutil/db/DBUpgradeHandler.java +++ b/src/zutil/db/DBUpgradeHandler.java @@ -1,6 +1,6 @@ package zutil.db; -import com.sun.deploy.util.StringUtils; +import zutil.StringUtil; import zutil.db.handler.ListSQLResult; import zutil.db.handler.SimpleSQLResult; import zutil.log.LogUtil; @@ -18,7 +18,7 @@ import java.util.logging.Logger; /** * This class will take a reference DB and alter * the source DB to have the same structure. - * NOTE: only works with sqllite + * NOTE: only works with SQLite * * Created by Ziver */ @@ -162,7 +162,7 @@ public class DBUpgradeHandler { // Restoring data logger.fine("Forced Upgrade: Restoring data for table: "+table); - String cols = StringUtils.join(refStruct, ","); + String cols = StringUtil.join(refStruct, ","); target.exec(String.format( "INSERT INTO %s (%s) SELECT %s FROM %s", table, cols, cols, backupTable)); diff --git a/test/zutil/test/StringUtilTest.java b/test/zutil/test/StringUtilTest.java old mode 100644 new mode 100755 index ed42d8e..2db4506 --- a/test/zutil/test/StringUtilTest.java +++ b/test/zutil/test/StringUtilTest.java @@ -26,6 +26,9 @@ package zutil.test; import org.junit.Test; import zutil.StringUtil; +import java.util.Arrays; +import java.util.Collection; + import static org.junit.Assert.assertEquals; public class StringUtilTest { @@ -90,4 +93,12 @@ public class StringUtilTest { "024 00 00 00 00 00 00 00 00 '........'", StringUtil.formatBytesToString(data3)); } + + @Test + public void joinTest(){ + assertEquals("", StringUtil.join(Arrays.asList(), ",")); + assertEquals("1,2,3,4,5", StringUtil.join(Arrays.asList(1,2,3,4,5), ",")); + assertEquals("animal,monkey,dog", StringUtil.join(Arrays.asList("animal", "monkey", "dog"), ",")); + assertEquals("12345", StringUtil.join(Arrays.asList(1,2,3,4,5), "")); + } }