JAL-3121 'attributes map' in GFF3 without special 'jvmap_' token
[jalview.git] / src / jalview / io / gff / GffHelperI.java
index 3d9dc6f..387ee60 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.io.gff;
 
 import jalview.datamodel.AlignmentI;
@@ -15,6 +35,12 @@ import java.util.List;
  */
 public interface GffHelperI
 {
+  /*
+   * GFF3 spec requires comma, equals, semi-colon, tab, percent characters to be
+   * encoded as %2C, %3D, %3B, %09, %25 respectively within data values
+   * see https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md
+   */
+  final String GFF_ENCODABLE = ",=;\t%";
 
   final String RENAME_TOKEN = "$RENAME_TO$";
 
@@ -35,9 +61,8 @@ public interface GffHelperI
    * @throws IOException
    */
   SequenceFeature processGff(SequenceI seq, String[] gffColumns,
-          AlignmentI align,
-          List<SequenceI> newseqs, boolean relaxedIdMatching)
-          throws IOException;
+          AlignmentI align, List<SequenceI> newseqs,
+          boolean relaxedIdMatching) throws IOException;
 
   // java 8 will allow static methods in interfaces:
   // static boolean recognises(String [] columns);