package fr.adrienbrault.idea.symfony2plugin.util;
import org.jetbrains.annotations.NotNull;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class StringUtils {
public static String camelize(String input) {
return camelize(input, false);
}
public static String camelize(String input, boolean startWithLowerCase) {
String[] strings = org.apache.commons.lang.StringUtils.split(input.toLowerCase(), "_");
for (int i = startWithLowerCase ? 1 : 0; i < strings.length; i++){
strings[i] = org.apache.commons.lang.StringUtils.capitalize(strings[i]);
}
input = org.apache.commons.lang.StringUtils.join(strings);
if(!startWithLowerCase) {
return ucfirst(input);
}
return input;
}
public static String underscore(String camelCasedWord) {
return org.apache.commons.lang.StringUtils.capitalize(camelCasedWord).replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase();
}
public static String ucfirst(String chaine){
if(chaine.length() < 1) {
return chaine;
}
return chaine.substring(0, 1).toUpperCase() + chaine.substring(1);
}
@NotNull
public static String lcfirst(@NotNull String input){
if(input.length() < 1) {
return input;
}
return Character.toLowerCase(input.charAt(0)) +
(input.length() > 1 ? input.substring(1) : "");
}
/**
* Simple string compare if class name is in same namespace
* Starting backslash doesnt break equal check
*
* @param class1 \Foo\Class
* @param class2 \Foo or Foo
*/
public static boolean startWithEqualClassname(String class1, String class2) {
if(class1.startsWith("\\")) {
class1 = class1.substring(1);
}
if(class2.startsWith("\\")) {
class2 = class2.substring(1);
}
return class1.startsWith(class2);
}
/**
* Test for interpolated string "#{segment.typeKey}.html.twig"
*/
public static boolean isInterpolatedString(@NotNull String content) {
return content.matches(".*#\\{[^{]*}.*");
}
}