JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / fts / service / uniprot / UniProtFTSRestClient.java
index 715b842..094052b 100644 (file)
@@ -21,6 +21,8 @@
 
 package jalview.fts.service.uniprot;
 
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
 import jalview.bin.Cache;
 import jalview.fts.api.FTSData;
 import jalview.fts.api.FTSDataColumnI;
@@ -28,6 +30,7 @@ import jalview.fts.api.FTSRestClientI;
 import jalview.fts.core.FTSRestClient;
 import jalview.fts.core.FTSRestRequest;
 import jalview.fts.core.FTSRestResponse;
+import jalview.gui.Preferences;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 
@@ -44,60 +47,31 @@ import com.sun.jersey.api.client.WebResource;
 import com.sun.jersey.api.client.config.DefaultClientConfig;
 
 public class UniProtFTSRestClient extends FTSRestClient
+        implements ApplicationSingletonI
 {
-  private static final String DEFAULT_UNIPROT_DOMAIN = "https://www.uniprot.org";
 
-  static
+  public static FTSRestClientI getInstance()
   {
-    Platform.addJ2SDirectDatabaseCall(DEFAULT_UNIPROT_DOMAIN);
+    return (FTSRestClientI) ApplicationSingletonProvider
+            .getInstance(UniProtFTSRestClient.class);
   }
 
-  private static FTSRestClientI instance = null;
-
-  public static FTSRestClientI getInstance()
+  private UniProtFTSRestClient()
   {
+    // singleton -- use getInstance()
 
-    // BH 2019.05.08 need to isolate static fields in JavaScript
-
-    FTSRestClientI i = instance;
-    @SuppressWarnings("unused")
-    ThreadGroup g = null;
-    if (Platform.isJS())
-    {
-      g = Thread.currentThread().getThreadGroup();
-      /**
-       * @j2sNative i = g._jalviewUniProtFTSRestClientInstance;
-       * 
-       */
-    }
-    if (i == null)
-    {
-      i = new UniProtFTSRestClient();
-
-      if (Platform.isJS())
-      {
-        /**
-         * @j2sNative g._jalviewUniProtFTSRestClientInstance = i;
-         * 
-         */
-      }
-      else
-      {
-        instance = i;
-      }
-    }
-    return i;
+    uniprotSearchEndpoint = Cache.getDefault(Preferences.UNIPROT_DOMAIN,
+            DEFAULT_UNIPROT_DOMAIN) + "/uniprot/";    
   }
 
+  private static final String DEFAULT_UNIPROT_DOMAIN = "https://www.uniprot.org";
+
   public final String uniprotSearchEndpoint;
 
-  public UniProtFTSRestClient()
+  static
   {
-    super();
-    uniprotSearchEndpoint = Cache.getDefault("UNIPROT_DOMAIN",
-            DEFAULT_UNIPROT_DOMAIN) + "/uniprot/";    
+    Platform.addJ2SDirectDatabaseCall(DEFAULT_UNIPROT_DOMAIN);
   }
-
   @SuppressWarnings("unchecked")
   @Override
   public FTSRestResponse executeRequest(FTSRestRequest uniprotRestRequest)