X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fcore%2FFTSRestClient.java;h=b1cfc539d704dda709ec9ffccaf624c3c9ae6127;hb=dfa42fba9774fe4659d234661c1e0d2c17980505;hp=f088a906161571a4d7160d972f268cab8422a798;hpb=5a256ef0ca648a8f4722da20475cbd01655d9de4;p=jalview.git diff --git a/src/jalview/fts/core/FTSRestClient.java b/src/jalview/fts/core/FTSRestClient.java index f088a90..b1cfc53 100644 --- a/src/jalview/fts/core/FTSRestClient.java +++ b/src/jalview/fts/core/FTSRestClient.java @@ -20,19 +20,21 @@ */ package jalview.fts.core; -import jalview.fts.api.FTSDataColumnI; -import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI; -import jalview.fts.api.FTSRestClientI; -import jalview.util.MessageManager; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.Objects; +import jalview.fts.api.FTSDataColumnI; +import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI; +import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource; +import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient; +import jalview.fts.api.FTSRestClientI; + /** * Base class providing implementation for common methods defined in * FTSRestClientI @@ -43,13 +45,13 @@ import java.util.Objects; */ public abstract class FTSRestClient implements FTSRestClientI { - protected Collection dataColumns = new ArrayList(); + protected Collection dataColumns = new ArrayList<>(); - protected Collection dataColumnGroups = new ArrayList(); + protected Collection dataColumnGroups = new ArrayList<>(); - protected Collection searchableDataColumns = new ArrayList(); + protected Collection searchableDataColumns = new ArrayList<>(); - protected Collection defaulDisplayedDataColumns = new ArrayList(); + protected Collection defaulDisplayedDataColumns = new ArrayList<>(); protected FTSDataColumnI primaryKeyColumn; @@ -57,6 +59,8 @@ public abstract class FTSRestClient implements FTSRestClientI private int defaultResponsePageSize = 100; + protected HashMap mockQueries = null; + protected FTSRestClient() { @@ -428,6 +432,16 @@ public abstract class FTSRestClient implements FTSRestClientI "Couldn't find data column with name : " + nameOrCode); } + /** + * + * @param instance + * @param mocks {{working query, working response}, ...} + */ + public static void createMockFTSRestClient(FTSRestClient instance,String[][] mocks) + { + instance.setMock(mocks); + } + @Override public FTSDataColumnGroupI getDataColumnGroupById(String id) throws Exception @@ -446,22 +460,21 @@ public abstract class FTSRestClient implements FTSRestClientI throw new Exception("Couldn't find data column group with id : " + id); } - public String getMessageByHTTPStatusCode(int code, String service) + public static String getMessageByHTTPStatusCode(int code, String service) { String message = ""; switch (code) { case 400: - message = MessageManager.getString("exception.bad_request"); + message = "Bad request. There is a problem with your input."; break; case 410: - message = MessageManager.formatMessage( - "exception.fts_rest_service_no_longer_available", service); + message = service + " rest services no longer available!"; break; case 403: case 404: - message = MessageManager.getString("exception.resource_not_be_found"); + message = "The requested resource could not be found"; break; case 408: case 409: @@ -470,16 +483,21 @@ public abstract class FTSRestClient implements FTSRestClientI case 502: case 504: case 505: - message = MessageManager.formatMessage("exception.fts_server_error", - service); + message = "There seems to be an error from the " + service + + " server"; break; case 503: - message = MessageManager.getString("exception.service_not_available"); + message = "Service not available. The server is being updated, try again later."; break; default: break; } - return message; + return String.valueOf(code) + " " + message; + } + + public static void unMock(FTSRestClient instance) + { + instance.mockQueries=null; } protected String getResourceFile(String fileName) @@ -506,4 +524,37 @@ public abstract class FTSRestClient implements FTSRestClientI return defaultResponsePageSize; } + protected void setMock(String[][] mocks) + { + if (mocks==null) { + mockQueries=null; + return; + } + mockQueries=new HashMap(); + for (String[] mock:mocks) + { + mockQueries.put(mock[0],mock[1]); + } + } + + protected boolean isMocked() + { + return mockQueries!=null; + } + + @Override + public String[] getPreferencesColumnsFor(PreferenceSource source) + { + String[] columnNames = null; + switch (source) + { + case SEARCH_SUMMARY: + columnNames = new String[] { "", "Display", "Group" }; + break; + default: + // non structure sources don't return any other kind of preferences columns + break; + } + return columnNames; + } }