package com.revolsys.io;
import java.util.ArrayList;
import java.util.List;
public class FileNames {
public static String getBaseName(final String fileName) {
int endIndex = fileName.length();
int slashIndex;
for (slashIndex = fileName.lastIndexOf("/", endIndex - 1); slashIndex != -1
&& slashIndex == endIndex - 1; slashIndex = fileName.lastIndexOf("/", endIndex - 1)) {
endIndex--;
}
final int dotIndex = fileName.lastIndexOf('.', endIndex - 1);
if (dotIndex == -1) {
if (slashIndex == -1) {
return fileName.substring(0, endIndex);
} else if (slashIndex == fileName.length() - 1) {
return "";
} else {
return fileName.substring(slashIndex + 1, endIndex);
}
} else {
if (slashIndex == -1) {
return fileName.substring(0, dotIndex);
} else if (slashIndex > dotIndex) {
if (slashIndex == fileName.length() - 1) {
return "";
} else {
return fileName.substring(slashIndex + 1, endIndex);
}
} else {
return fileName.substring(slashIndex + 1, dotIndex);
}
}
}
public static String getFileNameExtension(final String fileName) {
final int dotIndex = fileName.lastIndexOf('.');
if (dotIndex != -1) {
final int startIndex = fileName.lastIndexOf("/");
if (startIndex == -1) {
return fileName.substring(dotIndex + 1);
} else if (dotIndex > startIndex) {
return fileName.substring(dotIndex + 1);
}
}
return "";
}
public static List<String> getFileNameExtensions(final String fileName) {
final List<String> extensions = new ArrayList<>();
int startIndex = fileName.lastIndexOf("/");
if (startIndex == -1) {
startIndex = 0;
}
for (int dotIndex = fileName.indexOf('.', startIndex); dotIndex > 0; dotIndex = fileName
.indexOf('.', startIndex)) {
dotIndex++;
final String extension = fileName.substring(dotIndex);
extensions.add(extension);
startIndex = dotIndex;
}
return extensions;
}
}