package uk.co.acuminous.julez.transformer;
import java.util.Arrays;
import uk.co.acuminous.julez.util.StringUtils;
public class CamelCaseSeparator extends SplitTransformer {
private static String REGEX_1 = "(?<=[A-Z])(?=[A-Z][a-z])";
private static String REGEX_2 = "(?<=[^A-Z])(?=[A-Z])";
private static String REGEX_3 = "(?<=[A-Za-z])(?=[^A-Za-z])";
private static String CAMEL_CASE_REGEX = or(REGEX_1, REGEX_2, REGEX_3);
public CamelCaseSeparator() {
this(" ");
}
public CamelCaseSeparator(String separator) {
super(CAMEL_CASE_REGEX, separator);
}
private static String or(String... regex) {
return StringUtils.join(Arrays.asList(regex), "|");
}
}