001package net.gdface.utils; 002 003import java.util.Arrays; 004import java.util.HashSet; 005import java.util.Set; 006 007/** 008 * @author guyadong 009 * 010 */ 011public final class NameStringUtils { 012 private static final String[] JAVA_RESERVED_WORDS = new String[]{"null", "true", "false", "abstract", "double", "int", "strictfp", 013 "boolean", "else", "interface", "super", "break", "extends", "long", "switch", "byte", "final", "native", 014 "synchronized", "case", "finally", "new", "this", "catch", "float", "package", "throw", "char", "for", 015 "private", "throws", "class", "goto", "protected", "transient", "const", "if", "public", "try", "continue", 016 "implements", "return", "void", "default", "import", "short", "volatile", "do", "instanceof", "static", 017 "while", "assert", "enum"}; 018 /** thrift IDL å…³é”®å— */ 019 private static final String[] THRIFT_RESERVED_WORDS = new String[]{"bool","byte","i16","i32","i64","double", 020 "binary","string","list","set","map","typedef","enum","struct","namespace","include","const","required","optional" 021 }; 022 private static final Set<String> JAVA_RESERVED_KEYS = new HashSet<String>(Arrays.asList(JAVA_RESERVED_WORDS)); 023 private static final Set<String> THRIFT_RESERVED_KEYS = new HashSet<String>(Arrays.asList(THRIFT_RESERVED_WORDS)); 024 025 public static String pathFromPpackage(String pkg) { 026 if (pkg == null) { 027 return ""; 028 } 029 return pkg.replace('.', '/'); 030 } 031 public static String pathFromPackage(Package pkg) { 032 return pathFromPpackage(null == pkg ? null : pkg.getName()); 033 } 034 public static String convertName(String name, boolean wimpyCaps) { 035 StringBuffer buffer = new StringBuffer(name.length()); 036 char[] list = name.toLowerCase().toCharArray(); 037 for (int i = 0; i < list.length; ++i) { 038 if (i == 0 && !wimpyCaps) { 039 buffer.append(Character.toUpperCase(list[i])); 040 continue; 041 } 042 if (list[i] == '_' && i + 1 < list.length && i != 0) { 043 buffer.append(Character.toUpperCase(list[++i])); 044 continue; 045 } 046 buffer.append(list[i]); 047 } 048 return buffer.toString(); 049 } 050 051 /** 052 * å—ç¬¦ä¸²é¦–å—æ¯å¤§å†™ 053 * @param name 054 * @return 055 */ 056 public static String firstUpperCase(String name){ 057 if(Judge.isEmpty(name)){ 058 return name; 059 } 060 char[] list = name.toCharArray(); 061 list[0] = Character.toUpperCase(list[0]); 062 return new String(list); 063 } 064 public static boolean isJavaReserved(String name) { 065 return null == name ? false : JAVA_RESERVED_KEYS.contains(name); 066 } 067 public static boolean isThriftReserved(String name) { 068 return null == name ? false : THRIFT_RESERVED_KEYS.contains(name); 069 } 070}