package org.nextprot.api.core.utils.dbxref.resolver; import java.util.HashSet; import java.util.Set; class TkgXrefURLResolver extends DefaultDbXrefURLResolver { TkgXrefURLResolver() { super(new ResolverFactoryImpl()); } private static class StampNResolver extends StampBaseResolver { public StampNResolver() { super("n"); } // Db_URL: http://www2.idac.tohoku.ac.jp/dep/ccr/TKGdate/TKGvo10%n/%s.html // Note: n% is the second digit of the cell line AC and %s is the cell line AC without the 'TKG' // Example: for "DR TKG; TKG 0377": n%=3 s%=0377 @Override public String resolve(String templateURL, String accession) { return templateURL.replaceFirst(getStamp(), String.valueOf(accession.charAt(1))); } } private static class ResolverFactoryImpl implements StampResolverFactory { @Override public Set<StampBaseResolver> createStampResolvers() { Set<StampBaseResolver> stampResolvers = new HashSet<>(2); stampResolvers.add(new StampNResolver()); stampResolvers.add(new DefaultDbXrefURLResolver.DefaultStampSResolver()); return stampResolvers; } } }