package org.nextprot.api.core.utils.dbxref.resolver;
import org.nextprot.api.core.domain.DbXref;
class CghDbArpXrefURLResolver extends DefaultDbXrefURLResolver {
@Override
protected String getAccessionNumber(DbXref xref) {
String accession = xref.getAccession();
// Db_URL: http://www.cghtmd.jp/CGHDatabase/mapViewer?hid=%s&aid=%t&lang=en
// Note: %s and %t are respectively the values before and after the dash in the DR line.
// Example: for "DR CGH-DB; 9029-4": s%=9029, t%=4
if (accession.contains("-"))
return accession.replaceFirst("-.+$", "");
throw new UnresolvedXrefURLException("'-' is missing in accession number '"+accession+"'");
}
@Override
public String getTemplateURL(DbXref xref) {
String accession = xref.getAccession();
if (accession.contains("-")) {
accession = accession.replaceFirst("^.+-", "");
String templateURL = super.getTemplateURL(xref);
if (templateURL.contains("%t"))
return templateURL.replaceFirst("%t", accession.replaceFirst("^.+-", ""));
throw new UnresolvedXrefURLException("placeholder '%t' is missing: could not resolve template URL '"+templateURL+"'");
}
throw new UnresolvedXrefURLException("'-' is missing in accession number '"+accession+"'");
}
}