*/
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.util.Locale;
import java.io.BufferedReader;
import java.io.IOException;
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
private int defaultResponsePageSize = 100;
+ protected HashMap<String,String> mockQueries = null;
+
protected FTSRestClient()
{
InputStream in = getClass().getResourceAsStream(fileName);
- try (BufferedReader br = new BufferedReader(new InputStreamReader(in)))
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(in)))
{
String line;
while ((line = br.readLine()) != null)
public DataTypeI getDataType()
{
final String[] dataTypeString = lineData[2].split("\\|");
- final String classString = dataTypeString[0].toUpperCase();
+ final String classString = dataTypeString[0].toUpperCase(Locale.ROOT);
return new DataTypeI()
{
if (dataTypeString.length > 1
&& dataTypeString[1] != null)
{
- switch (dataTypeString[1].toUpperCase())
+ switch (dataTypeString[1].toUpperCase(Locale.ROOT))
{
case "T":
case "TRUE":
"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
break;
case 410:
- message = MessageManager.formatMessage(
- service + " rest services no longer available!");
+ message = service + " rest services no longer available!";
break;
case 403:
case 404:
return String.valueOf(code) + " " + message;
}
+ public static void unMock(FTSRestClient instance)
+ {
+ instance.mockQueries=null;
+ }
+
protected String getResourceFile(String fileName)
{
String result = "";
return defaultResponsePageSize;
}
+ protected void setMock(String[][] mocks)
+ {
+ if (mocks==null) {
+ mockQueries=null;
+ return;
+ }
+ mockQueries=new HashMap<String,String>();
+ 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;
+ }
}