package net.northking.cctp.maven.analyse.util;


/**
 * 字符串工具类
 *
 * @author 谢秀松
 * @since 1.0
 */
public final class StringUtil
{
  /**
   * 隐藏构造函数
   */
  private StringUtil()
  {
  }

  /**
   * 判断字符串是否有值
   *
   * @param s 字符串
   * @return true-有值/false-无值
   */
  public static boolean hasValue(final String s)
  {
    return s != null && s.length() > 0;
  }

  /**
   * 判断字符串是否等于“true”
   *
   * @param s 字符串
   * @return 是/否
   */
  public static boolean isTrue(final String s)
  {
    return "true".equalsIgnoreCase(s); //$NON-NLS-1$
  }

  /**
   * 下划线转驼峰命名
   *
   * @param s 下划线命名
   * @return 驼峰命名
   */
  public static String underlineToCamel(final String s)
  {
    StringBuffer javaName = new StringBuffer();
    String[] words = s.toLowerCase().split("_");
    for (String word : words)
    {
      javaName.append(word.substring(0, 1).toUpperCase());
      javaName.append(word.substring(1));
    }
    return javaName.toString();
  }

  /**
   * 下划线转驼峰命名
   *
   * @param s 下划线命名
   * @return 驼峰命名
   */
  public static String underlineToCamelByBoolean(final String s)
  {
    String key = s.toLowerCase();
    if (key.startsWith("is_"))
    {
      key = key.substring(3);
    }
    StringBuffer javaName = new StringBuffer();
    String[] words = key.split("_");
    for (String word : words)
    {
      javaName.append(word.substring(0, 1).toUpperCase());
      javaName.append(word.substring(1));
    }
    return javaName.toString();
  }

  /**
   * 首字母小写命名
   *
   * @param className 类名
   * @return 首字母小写命名
   */
  public static String toJavaRefName(final String className)
  {
    return className.substring(0, 1).toLowerCase() + className.substring(1);
  }

  /**
   * 包名转目录名
   *
   * @param packageName 包名
   * @return 目录名
   */
  public static String packageToFilePath(final String packageName)
  {
    String path = packageName.replace(".", "/");
    return path;
  }
}
