Merge branch 'develop' into task/JAL-2196pdbeProperties
[jalview.git] / src / jalview / fts / service / pdb / PDBFTSRestClient.java
index 29450e8..06bf55b 100644 (file)
@@ -140,8 +140,7 @@ public class PDBFTSRestClient extends FTSRestClient
                 .queryParam("wt", "json").queryParam("fl", wantedFields)
                 .queryParam("rows", String.valueOf(responseSize))
                 .queryParam("start", String.valueOf(offSet))
-                .queryParam("q", query)
-                .queryParam("sort", sortParam);
+                .queryParam("q", query).queryParam("sort", sortParam);
       }
       // Execute the REST request
       ClientResponse clientResponse = webResource.accept(
@@ -162,8 +161,8 @@ public class PDBFTSRestClient extends FTSRestClient
         }
         else
         {
-          errorMessage = getMessageByHTTPStatusCode(clientResponse
-.getStatus(), "PDB");
+          errorMessage = getMessageByHTTPStatusCode(
+                  clientResponse.getStatus(), "PDB");
           throw new Exception(errorMessage);
         }
       }
@@ -198,7 +197,6 @@ public class PDBFTSRestClient extends FTSRestClient
     }
   }
 
-
   /**
    * Process error response from PDB server if/when one occurs.
    * 
@@ -326,15 +324,15 @@ public class PDBFTSRestClient extends FTSRestClient
       {
         try
         {
-          summaryRowData[colCounter++] = (field.getDataColumnClass() == Integer.class) ? Integer
-                  .valueOf(fieldData)
-                  : (field.getDataColumnClass() == Double.class) ? Double
-                          .valueOf(fieldData)
-                          : fieldData;
+          summaryRowData[colCounter++] = (field.getDataType()
+                  .getDataTypeClass() == Integer.class) ? Integer
+                  .valueOf(fieldData) : (field.getDataType()
+                  .getDataTypeClass() == Double.class) ? Double
+                  .valueOf(fieldData) : sanitiseData(fieldData);
         } catch (Exception e)
         {
           e.printStackTrace();
-            System.out.println("offending value:" + fieldData);
+          System.out.println("offending value:" + fieldData);
         }
       }
     }
@@ -389,13 +387,20 @@ public class PDBFTSRestClient extends FTSRestClient
     };
   }
 
+  private static String sanitiseData(String data)
+  {
+    String cleanData = data.replaceAll("\\[\"", "").replaceAll("\\]\"", "")
+            .replaceAll("\\[", "").replaceAll("\\]", "")
+            .replaceAll("\",\"", ", ").replaceAll("\"", "");
+    return cleanData;
+  }
+
   @Override
   public String getColumnDataConfigFileName()
   {
     return "/fts/pdb_data_columns.txt";
   }
 
-
   public static FTSRestClientI getInstance()
   {
     if (instance == null)
@@ -404,4 +409,18 @@ public class PDBFTSRestClient extends FTSRestClient
     }
     return instance;
   }
+
+  private Collection<FTSDataColumnI> allDefaultDisplayedStructureDataColumns;
+
+  public Collection<FTSDataColumnI> getAllDefaultDisplayedStructureDataColumns()
+  {
+    if (allDefaultDisplayedStructureDataColumns == null
+            || allDefaultDisplayedStructureDataColumns.isEmpty())
+    {
+      allDefaultDisplayedStructureDataColumns = new ArrayList<FTSDataColumnI>();
+      allDefaultDisplayedStructureDataColumns.addAll(super
+              .getAllDefaultDisplayedFTSDataColumns());
+    }
+    return allDefaultDisplayedStructureDataColumns;
+  }
 }