JAL-2189 format help
[jalview.git] / src / jalview / io / gff / GffHelperI.java
1 package jalview.io.gff;
2
3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.SequenceFeature;
5 import jalview.datamodel.SequenceI;
6
7 import java.io.IOException;
8 import java.util.List;
9
10 /**
11  * An interface to described common functionality of different flavours of GFF
12  * 
13  * @author gmcarstairs
14  *
15  */
16 public interface GffHelperI
17 {
18
19   final String RENAME_TOKEN = "$RENAME_TO$";
20
21   /**
22    * Process one GFF feature line
23    * 
24    * @param seq
25    *          the sequence with which this feature is associated
26    * @param gffColumns
27    *          the GFF column data
28    * @param align
29    *          the alignment we are adding GFF to
30    * @param newseqs
31    *          any new sequences referenced by the GFF
32    * @param relaxedIdMatching
33    *          if true, match word tokens in sequence names
34    * @return a SequenceFeature if one should be created, else null
35    * @throws IOException
36    */
37   SequenceFeature processGff(SequenceI seq, String[] gffColumns,
38           AlignmentI align, List<SequenceI> newseqs,
39           boolean relaxedIdMatching) throws IOException;
40
41   // java 8 will allow static methods in interfaces:
42   // static boolean recognises(String [] columns);
43 }