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;
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;
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)