package seeurrenamer.main.util.caseconverter;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.function.Function;
/**
* @author moch deden
*
*/
public class UnixStyleConverter implements Function<Path, Path> {
private static final String U_SCORE_AT_THE_END = "_+$";
private static final String MORE_THAN_ONE_U_SCORE = "_{2,}";
private static final String WHITE_SPACE_OR_PUNCT = "\\s+|\\p{Punct}";
@Override
public String toString() {
return "unix-style";
}
@Override
public Path apply(Path path) {
return path.toString() != null ? Paths.get(path.toString()
.toLowerCase().replaceAll(WHITE_SPACE_OR_PUNCT, "_")
.replaceAll(MORE_THAN_ONE_U_SCORE, "_")
.replaceAll(U_SCORE_AT_THE_END, "")) : path;
}
}