// Path: src/main/java/io/openio/sds/logging/SdsLogger.java
// public interface SdsLogger {
// 
//     /**
//      * Logs a message at {@link Level#FINEST}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void trace(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#FINEST}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void trace(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#FINEST}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void trace(String message, Throwable thrown);
// 
//     /**
//      * Checks if the {@link Level#FINEST} is enabled.
//      *
//      * @return true if enabled, false otherwise.
//      */
//     public boolean isTraceEnabled();
// 
//     /**
//      * Logs a message at {@link Level#FINE}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void debug(String message);
//     
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#FINE}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void debug(String message, Throwable thrown);
// 
//     /**
//      * Checks if the {@link Level#FINE} is enabled.
//      *
//      * @return true if enabled, false otherwise.
//      */
//     public boolean isDebugEnabled();
// 
//     /**
//      * Logs a message at {@link Level#INFO}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void info(String message);
// 
//     /**
//      * Logs a message at {@link Level#WARNING}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void warn(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#WARNING}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void warn(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#WARNING}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void warn(String message, Throwable thrown);
// 
//     /**
//      * Logs a message at {@link Level#SEVERE}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void error(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#SEVERE}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void error(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#SEVERE}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void error(String message, Throwable thrown);
// }
// 
// Path: src/main/java/io/openio/sds/logging/SdsLoggerFactory.java
// public class SdsLoggerFactory {
// 
//     private static int loaded = -1;
// 
//     public static SdsLogger getLogger(Class<?> c) {
//         ensureLoaded();
//         switch (loaded) {
//         case 1:
//             return new Log4jLogger(c);
//         case 0:
//         default:
//             return new BaseLogger(c);
//         }
//     }
// 
//     private static void ensureLoaded() {
//         if (-1 == loaded) {
//             try {
//                 Class.forName("org.apache.log4j.LogManager");
//                 loaded = 1;
//             } catch (ClassNotFoundException e) {
//                 loaded = 0;
//             }
//         }
//     }
// 
// }


import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import io.openio.sds.logging.SdsLogger;
import io.openio.sds.logging.SdsLoggerFactory;
package io.openio.sds.common;



public class Strings {

    private static final SdsLogger LOGGER = SdsLoggerFactory.getLogger(Strings.class);
    public static final String[] EMPTY_ARRAY = new String[0];

    public static boolean nullOrEmpty(String string) {
        return null == string || 0 == string.length();
    }

    public static HashMap<String, String> toMap(String src, String sep,
            String kvsep) {
        HashMap<String, String> res = new HashMap<String, String>();
        if (nullOrEmpty(src) || nullOrEmpty(sep) || nullOrEmpty(kvsep))
            return res;
        String[] pairs = src.split(sep);
        for (String pair : pairs) {
            if (nullOrEmpty(pair))
// Path: src/main/java/io/openio/sds/logging/SdsLogger.java
// public interface SdsLogger {
// 
//     /**
//      * Logs a message at {@link Level#FINEST}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void trace(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#FINEST}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void trace(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#FINEST}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void trace(String message, Throwable thrown);
// 
//     /**
//      * Checks if the {@link Level#FINEST} is enabled.
//      *
//      * @return true if enabled, false otherwise.
//      */
//     public boolean isTraceEnabled();
// 
//     /**
//      * Logs a message at {@link Level#FINE}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void debug(String message);
//     
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#FINE}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void debug(String message, Throwable thrown);
// 
//     /**
//      * Checks if the {@link Level#FINE} is enabled.
//      *
//      * @return true if enabled, false otherwise.
//      */
//     public boolean isDebugEnabled();
// 
//     /**
//      * Logs a message at {@link Level#INFO}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void info(String message);
// 
//     /**
//      * Logs a message at {@link Level#WARNING}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void warn(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#WARNING}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void warn(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#WARNING}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void warn(String message, Throwable thrown);
// 
//     /**
//      * Logs a message at {@link Level#SEVERE}.
//      *
//      * @param message
//      *            the message to log.
//      */
//     public void error(String message);
// 
//     /**
//      * Logs a throwable at {@link Level#SEVERE}. The message of the Throwable
//      * will be the message.
//      *
//      * @param thrown
//      *            the Throwable to log.
//      */
//     public void error(Throwable thrown);
// 
//     /**
//      * Logs message with associated throwable information at
//      * {@link Level#SEVERE}.
//      *
//      * @param message
//      *            the message to log
//      * @param thrown
//      *            the Throwable associated to the message.
//      */
//     public void error(String message, Throwable thrown);
// }
// 
// Path: src/main/java/io/openio/sds/logging/SdsLoggerFactory.java
// public class SdsLoggerFactory {
// 
//     private static int loaded = -1;
// 
//     public static SdsLogger getLogger(Class<?> c) {
//         ensureLoaded();
//         switch (loaded) {
//         case 1:
//             return new Log4jLogger(c);
//         case 0:
//         default:
//             return new BaseLogger(c);
//         }
//     }
// 
//     private static void ensureLoaded() {
//         if (-1 == loaded) {
//             try {
//                 Class.forName("org.apache.log4j.LogManager");
//                 loaded = 1;
//             } catch (ClassNotFoundException e) {
//                 loaded = 0;
//             }
//         }
//     }
// 
// }


// Path: src/main/java/io/openio/sds/common/Strings.java
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import io.openio.sds.logging.SdsLogger;
import io.openio.sds.logging.SdsLoggerFactory;

package io.openio.sds.common;



public class Strings {

    private static final SdsLogger LOGGER = SdsLoggerFactory.getLogger(Strings.class);
    public static final String[] EMPTY_ARRAY = new String[0];

    public static boolean nullOrEmpty(String string) {
        return null == string || 0 == string.length();
    }

    public static HashMap<String, String> toMap(String src, String sep,
            String kvsep) {
        HashMap<String, String> res = new HashMap<String, String>();
        if (nullOrEmpty(src) || nullOrEmpty(sep) || nullOrEmpty(kvsep))
            return res;
        String[] pairs = src.split(sep);
        for (String pair : pairs) {
            if (nullOrEmpty(pair))
                continue;