in src/main/java/com/googlesource/gerrit/plugins/imagare/ImageServlet.java [261:298]
static ResourceKey fromPath(String path) {
String project;
String file = null;
String revision = null;
if (!path.startsWith(PATH_PREFIX)) {
// should not happen since this servlet is only registered to handle
// paths that start with this prefix
throw new IllegalStateException("path must start with '" + PATH_PREFIX + "'");
}
path = path.substring(PATH_PREFIX.length());
int i = path.indexOf('/');
if (i != -1 && i != path.length() - 1) {
project = IdString.fromUrl(path.substring(0, i)).get();
String rest = path.substring(i + 1);
if (rest.startsWith("rev/")) {
if (rest.length() > 4) {
rest = rest.substring(4);
i = rest.indexOf('/');
if (i != -1 && i != path.length() - 1) {
revision = IdString.fromUrl(rest.substring(0, i)).get();
file = IdString.fromUrl(rest.substring(i + 1)).get();
} else {
revision = IdString.fromUrl(rest).get();
}
}
} else {
file = IdString.fromUrl(rest).get();
}
} else {
project = IdString.fromUrl(CharMatcher.is('/').trimTrailingFrom(path)).get();
}
return new ResourceKey(project, file, revision);
}