JAL-4073 Pfam retrieval now works via a template including $PFAMID$ and $ALTYPE$...
[jalview.git] / src / jalview / ws / dbsources / Pfam.java
index 0227e35..0c21d42 100644 (file)
  */
 package jalview.ws.dbsources;
 
+import java.util.Locale;
+
+import jalview.bin.Cache;
 import jalview.datamodel.DBRefSource;
+import jalview.util.Platform;
 
 import com.stevesoft.pat.Regex;
 
@@ -34,12 +38,36 @@ import com.stevesoft.pat.Regex;
  */
 abstract public class Pfam extends Xfam
 {
+    public static final String FULL="full",RP35="rp35",RP15="rp15",RP75="rp75",RP55="rp55",SEED="seed";
+       
+   public String getPfamDownloadURL(String id,String alType) {
+       String url = Cache.getDefault(PFAM_BASEURL_KEY,DEFAULT_PFAM_BASEURL);
+       url = url.replace("$PFAMID$",id);
+       url = url.replace("$ALTYPE$",alType);
+       return url;
+    }
+  static final String PFAM_BASEURL_KEY = "PFAM_INTERPRO_URL_TEMPLATE";
+
+  protected String alignmentType;
+  private static final String DEFAULT_PFAM_BASEURL = "https://www.ebi.ac.uk/interpro/wwwapi/entry/pfam/$PFAMID$/?annotation=alignment:$ALTYPE$&download";
+
+  static
+  {
+    Platform.addJ2SDirectDatabaseCall(DEFAULT_PFAM_BASEURL);
+  }
 
   public Pfam()
   {
     super();
   }
 
+    
+    String getURL(String queries)
+  {
+      return getPfamDownloadURL(
+                                queries.trim().toUpperCase(Locale.ROOT), alignmentType);
+  }
+
   /*
    * (non-Javadoc)
    * 
@@ -48,7 +76,6 @@ abstract public class Pfam extends Xfam
   @Override
   public String getAccessionSeparator()
   {
-    // TODO Auto-generated method stub
     return null;
   }
 
@@ -60,7 +87,6 @@ abstract public class Pfam extends Xfam
   @Override
   public Regex getAccessionValidator()
   {
-    // TODO Auto-generated method stub
     return null;
   }
 
@@ -91,17 +117,14 @@ abstract public class Pfam extends Xfam
   @Override
   public String getDbVersion()
   {
-    // TODO Auto-generated method stub
     return null;
   }
 
-  /**
-   * Returns base URL for selected Pfam alignment type
-   * 
-   * @return PFAM URL stub for this DbSource
-   */
   @Override
-  protected abstract String getXFAMURL();
+  protected String getURLPrefix()
+  {
+    return Cache.getDefault(PFAM_BASEURL_KEY, DEFAULT_PFAM_BASEURL);
+  }
 
   /*
    * (non-Javadoc)
@@ -123,5 +146,4 @@ abstract public class Pfam extends Xfam
   {
     return DBRefSource.PFAM;
   }
-
 }