package org.archive.url;
import org.apache.commons.httpclient.URIException;
public class WaybackURLKeyMaker implements URLKeyMaker {
// URLCanonicalizer canonicalizer = new NonMassagingIAURLCanonicalizer();
URLCanonicalizer canonicalizer = new DefaultIAURLCanonicalizer();
public URLCanonicalizer getCanonicalizer() {
return canonicalizer;
}
public void setCanonicalizer(URLCanonicalizer canonicalizer) {
this.canonicalizer = canonicalizer;
}
private boolean surtMode = true;
public WaybackURLKeyMaker()
{
}
public boolean isSurtMode()
{
return surtMode;
}
public WaybackURLKeyMaker(boolean surtMode)
{
this.surtMode = surtMode;
}
public String makeKey(String url) throws URIException {
if(url == null) {
return "-";
}
if(url.length() == 0) {
return "-";
}
if(url.startsWith("filedesc")) {
return url;
}
if(url.startsWith("warcinfo")) {
return url;
}
if(url.startsWith("dns:")) {
String authority = url.substring(4);
if (!surtMode) {
return authority;
}
String surt = URLRegexTransformer.hostToSURT(authority);
return surt + ")";
}
HandyURL hURL;
hURL = URLParser.parse(url);
canonicalizer.canonicalize(hURL);
String key = hURL.getURLString(surtMode, surtMode, false);
if (!surtMode) {
return key;
}
int parenIdx = key.indexOf('(');
if(parenIdx == -1) {
// something very wrong..
return url;
}
return key.substring(parenIdx+1);
// } catch (URIException e) {
// e.printStackTrace();
// }
// return url;
}
}