JAL-1260 refactored multi-line qualifier separators
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 18 Aug 2020 14:32:00 +0000 (15:32 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 18 Aug 2020 14:32:00 +0000 (15:32 +0100)
src/jalview/io/FlatFile.java

index c247601..4c1777c 100644 (file)
@@ -215,7 +215,7 @@ public abstract class FlatFile extends AlignFile
      */
     CdsData data = new CdsData();
     StringBuilder sb = new StringBuilder().append(location);
-    line = parseFeatureQualifier(sb, LOCATION);
+    line = parseFeatureQualifier(sb, false);
     data.cdsLocation = sb.toString();
 
     while (line != null)
@@ -250,7 +250,8 @@ public abstract class FlatFile extends AlignFile
       String value = line.substring(eqPos + 1);
       value = removeQuotes(value);
       sb = new StringBuilder().append(value);
-      line = parseFeatureQualifier(sb, qualifier);
+      boolean asText = !"translation".equals(qualifier);
+      line = parseFeatureQualifier(sb, asText);
       String featureValue = sb.toString();
 
       if ("protein_id".equals(qualifier))
@@ -638,11 +639,11 @@ public abstract class FlatFile extends AlignFile
    * 
    * @param sb
    *          a string buffer primed with the first line of the value
-   * @param qualifierName
+   * @param asText
    * @return
    * @throws IOException
    */
-  String parseFeatureQualifier(StringBuilder sb, String qualifierName)
+  String parseFeatureQualifier(StringBuilder sb, boolean asText)
           throws IOException
   {
     String line;
@@ -665,11 +666,10 @@ public abstract class FlatFile extends AlignFile
       }
 
       /*
-       * heuristic rule: most multi-line value (e.g. /product) are text,
-       * so add a space for word boundary at a new line; not for translation
+       * if text (e.g. /product), add a word separator for a new line,
+       * else (e.g. /translation) don't
        */
-      if (!"translation".equals(qualifierName)
-              && !LOCATION.equals(qualifierName))
+      if (asText)
       {
         sb.append(" ");
       }