package org.nextprot.api.core.utils.dbxref.resolver;
import org.nextprot.api.core.domain.DbXref;
import java.util.HashSet;
import java.util.Set;
class UnigeneXrefURLResolver extends DefaultDbXrefURLResolver {
public UnigeneXrefURLResolver() {
super(new ResolverFactoryImpl());
}
@Override
protected String getAccessionNumber(DbXref xref) {
return xref.getAccession().split("\\.")[1];
}
private static class StampS1Resolver extends StampBaseResolver {
public StampS1Resolver() {
super("s1");
}
@Override
public String resolve(String templateURL, String accession) {
return templateURL.replaceFirst(getStamp(), "Hs");
}
}
private static class StampS2Resolver extends StampBaseResolver {
public StampS2Resolver() {
super("s2");
}
}
private static class ResolverFactoryImpl implements DefaultDbXrefURLResolver.StampResolverFactory {
@Override
public Set<StampBaseResolver> createStampResolvers() {
Set<StampBaseResolver> stampResolvers = new HashSet<>(2);
stampResolvers.add(new StampS1Resolver());
stampResolvers.add(new StampS2Resolver());
return stampResolvers;
}
}
}