X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fcore%2FFTSRestClient.java;h=00a081b8d3fbf4c21a9ba29d9d55265171188f66;hb=8c7a9e1133d84d0d80db855f85b052a737c245f3;hp=8ac740ceea8f111d9ef1ddf4eea41d25f5d09644;hpb=174606cd2bcaed91adb0a39639e8905fa9a8a6d2;p=jalview.git diff --git a/src/jalview/fts/core/FTSRestClient.java b/src/jalview/fts/core/FTSRestClient.java index 8ac740c..00a081b 100644 --- a/src/jalview/fts/core/FTSRestClient.java +++ b/src/jalview/fts/core/FTSRestClient.java @@ -3,10 +3,12 @@ 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.FileReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collection; import java.util.Objects; @@ -43,7 +45,10 @@ public abstract class FTSRestClient implements FTSRestClientI public void parseDataColumnsConfigFile() { String fileName = getColumnDataConfigFileName(); - try (BufferedReader br = new BufferedReader(new FileReader(fileName))) + + InputStream in = getClass().getResourceAsStream(fileName); + + try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) { String line; while ((line = br.readLine()) != null) @@ -127,25 +132,73 @@ public abstract class FTSRestClient implements FTSRestClientI @Override public String getCode() { - return lineData[1]; + return lineData[1].split("\\|")[0]; + } + + @Override + public String getAltCode() + { + return lineData[1].split("\\|").length > 1 ? lineData[1] + .split("\\|")[1] : getCode(); } @Override - public Class getDataColumnClass() + public DataTypeI getDataType() { - String classString = lineData[2]; - classString = classString.toUpperCase(); - switch (classString) + final String[] dataTypeString = lineData[2].split("\\|"); + final String classString = dataTypeString[0].toUpperCase(); + + return new DataTypeI() { - case "INT": - case "INTEGER": - return Integer.class; - case "DOUBLE": - return Double.class; - case "STRING": - default: - return String.class; - } + + @Override + public boolean isFormtted() + { + if (dataTypeString.length > 1 + && dataTypeString[1] != null) + { + switch (dataTypeString[1].toUpperCase()) + { + case "T": + case "TRUE": + return true; + case "F": + case "False": + default: + return false; + } + } + return false; + } + + @Override + public int getSignificantFigures() + { + if (dataTypeString.length > 2 + && dataTypeString[2] != null) + { + return Integer.valueOf(dataTypeString[2]); + } + return 0; + } + + @Override + public Class getDataTypeClass() + { + switch (classString) + { + case "INT": + case "INTEGER": + return Integer.class; + case "DOUBLE": + return Double.class; + case "STRING": + default: + return String.class; + } + } + }; + } @Override @@ -216,6 +269,7 @@ public abstract class FTSRestClient implements FTSRestClientI && this.getGroup().equals(that.getGroup()); } + }; dataColumns.add(dataCol); @@ -291,31 +345,6 @@ public abstract class FTSRestClient implements FTSRestClientI return result; } - /** - * Takes a collection of FTSDataColumnI and converts its 'code' values into a - * tab delimited string. - * - * @param dataColumnFields - * the collection of FTSDataColumnI to process - * @return the generated comma delimited string from the supplied - * FTSDataColumnI collection - */ - public String getDataColumnsFieldsAsTabDelimitedString( - Collection dataColumnFields) - { - String result = ""; - if (dataColumnFields != null && !dataColumnFields.isEmpty()) - { - StringBuilder returnedFields = new StringBuilder(); - for (FTSDataColumnI field : dataColumnFields) - { - returnedFields.append("\t").append(field.getName()); - } - returnedFields.deleteCharAt(0); - result = returnedFields.toString(); - } - return result; - } @Override public Collection getAllFTSDataColumns() @@ -338,7 +367,7 @@ public abstract class FTSRestClient implements FTSRestClientI } @Override - public Collection getAllDefaulDisplayedDataColumns() + public Collection getAllDefaultDisplayedFTSDataColumns() { if (defaulDisplayedDataColumns == null || defaulDisplayedDataColumns.isEmpty()) @@ -397,13 +426,48 @@ 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) + { + String message = ""; + switch (code) + { + case 400: + message = MessageManager + .getString("exception.bad_request"); + break; + + case 410: + message = MessageManager.formatMessage( + "exception.fts_rest_service_no_longer_available", service); + break; + case 403: + case 404: + message = MessageManager.getString("exception.resource_not_be_found"); + break; + case 408: + case 409: + case 500: + case 501: + case 502: + case 504: + case 505: + message = MessageManager.getString("exception.fts_server_error"); + break; + case 503: + message = MessageManager.getString("exception.service_not_available"); + break; + default: + break; + } + return message; + } + protected String getResourceFile(String fileName) { - ClassLoader classLoader = getClass().getClassLoader(); String result = ""; try { - result = classLoader.getResource(fileName).getFile(); + result = getClass().getResource(fileName).getFile(); } catch (Exception e) { e.printStackTrace(); @@ -415,6 +479,10 @@ public abstract class FTSRestClient implements FTSRestClientI @Override public int getDefaultResponsePageSize() { + if (dataColumns == null || dataColumns.isEmpty()) + { + parseDataColumnsConfigFile(); + } return defaultResponsePageSize; }