package triaina.commons.utils;
import android.text.TextUtils;
import android.util.Log;
public final class NamingConventionUtils {
private static final String TAG = NamingConventionUtils.class.getCanonicalName();
private NamingConventionUtils() {}
public static String fromJavaFieldNameToJSONName(String name) {
if (TextUtils.isEmpty(name)) {
Log.w(TAG, name + " is empty or null");
return name;
}
if (name.length() < 2) {
return name;
}
if (name.charAt(0) == 'm') {
name = name.substring(1);
}
return convertDelimited(name, '_');
}
public static String fromJavaClassNameToDotDelimited(String name) {
if (TextUtils.isEmpty(name)) {
Log.w(TAG, name + " is empty or null");
return name;
}
return convertDelimited(name, '.');
}
/**
* Convert the name of an enum as given in a JSON string to its Java identifier name, as per JSON and Java conventions.
* (e.g. "some_enum" to "SOME_ENUM")
* @param enumJsonName the enum name as given in the JSON string
* @return the same enum converted as a proper Java identifier name
* @throws NullPointerException if {@link enumJsonName} is null
*/
public static String fromJsonNameToJavaEnumName (final String jsonName) {
return jsonName.toUpperCase();
}
private static String convertDelimited(String name, char delimit) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < name.length(); i++) {
int c = name.charAt(i);
if (Character.isUpperCase(c)) {
if (i != 0) {
builder.append(delimit);
}
builder.append((char)Character.toLowerCase(c));
} else {
builder.append((char)c);
}
}
return builder.toString();
}
}