diff artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java @ 301:b0a949d3fe09

Moved StringUtils to common package. Added some Override annotations. artifacts/trunk@2394 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 22 Jul 2011 09:36:04 +0000
parents
children 9a85e0ef6e02
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java	Fri Jul 22 09:36:04 2011 +0000
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2010 by Intevation GmbH
+ *
+ * This program is free software under the LGPL (>=v2.1)
+ * Read the file LGPL.txt coming with the software for details
+ * or visit http://www.gnu.org/licenses/ if it does not exist.
+ */
+
+package de.intevation.artifacts.common.utils;
+
+import java.io.UnsupportedEncodingException;
+
+import java.util.UUID;
+
+import org.apache.commons.codec.DecoderException;
+
+import org.apache.commons.codec.binary.Hex;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Commonly used string functions.
+ *
+ * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
+ */
+public final class StringUtils
+{
+    private static Logger logger = Logger.getLogger(StringUtils.class);
+
+    /**
+     * Generated a random UUIDv4 in form of a string.
+     * @return the UUID
+     */
+    public static final String newUUID() {
+        return UUID.randomUUID().toString();
+    }
+
+    /**
+     * Checks if a given string is a valid UUID.
+     * @param uuid The string to test.
+     * @return true if the string is a valid UUID else false.
+     */
+    public static final boolean checkUUID(String uuid) {
+        try {
+            UUID.fromString(uuid);
+        }
+        catch (IllegalArgumentException iae) {
+            logger.warn(iae.getLocalizedMessage());
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the UTF-8 byte array representation of a given string.
+     * @param s The string to be transformed.
+     * @return The byte array representation.
+     */
+    public static final byte [] getUTF8Bytes(String s) {
+        try {
+            return s.getBytes("UTF-8");
+        }
+        catch (UnsupportedEncodingException usee) {
+            logger.error(usee.getLocalizedMessage(), usee);
+            return s.getBytes();
+        }
+    }
+
+    /**
+     * Tries to convert a Base64 encoded string into the
+     * corresponing byte array.
+     * @param s The Base64 encoded string
+     * @return The byte array representation or null if
+     * an decoding error occurs.
+     */
+    public static final byte [] decodeHex(String s) {
+        try {
+            return Hex.decodeHex(s.toCharArray());
+        }
+        catch (DecoderException de) {
+            return null;
+        }
+    }
+
+    public static final String repeat(String s, int count, String sep) {
+        if (count <= 0) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder(s);
+        for (--count; count > 0; --count) {
+            sb.append(sep).append(s);
+        }
+        return sb.toString();
+    }
+
+    public static final String repeat(char c, int count, char sep) {
+        if (count <= 0) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder(2*count-1).append(c);
+        for (--count; count > 0; --count) {
+            sb.append(sep).append(c);
+        }
+        return sb.toString();
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org