package com.github.alexvictoor.proxy;
import java.io.File;
public class FileSystemRoute {
public final String uriPrefix;
public final File directory;
private FileSystemRoute(String uriPrefix, File directory) {
this.uriPrefix = uriPrefix;
this.directory = directory;
}
public static FileSystemRoute create(String uriPrefix, String path) {
File directory = new File(path);
if (!directory.exists() || !directory.canRead() || !directory.isDirectory()) {
throw new RuntimeException(path + " is not a path to a readable directory");
}
return new FileSystemRoute(uriPrefix, directory);
}
public static FileSystemRoute parse(String input) {
String[] tokens = input.split("\\|");
String prefix = tokens[0].trim();
String path = tokens[1].trim();
return create(prefix, path);
}
public File findFile(String uri) {
if (uri ==null || !uri.startsWith(uriPrefix)) {
return null;
}
String relativePath = uri.substring(uriPrefix.length() + 1).replace('/', File.separatorChar);
File file = new File(directory, relativePath);
return file;
}
}