View Javadoc

1   package uk.ac.ebi.intenz.tools.sib.writer;
2   
3   /**
4    * This interface provides a method to format lines according to the rules of the <code>enzyme.dat</code> file.
5    * <p/>
6    * Some of the rules can be found <a target="_blank" href="http://enzyme.expasy.org/enzuser.txt">here</a>.
7    * <p/>
8    * The formatting of lines is dependent on the {@link LineType line type} and the content of each line type. A
9    * <code>LineFormatter</code> implementation will provide a means to format and wrap the lines of a
10   * {@link LineType line type} by implementing {@link LineFormatter#formatLines(String, LineType)
11   * formatLines(String, LineType)}.
12   * <p/>
13   * As rules for wrapping lines are often applicable to several {@link LineType line types}, the wrapping is defined by
14   * the interface {@link LineWrapper LineWrapper}, which defines the implementation of line wrapping rules. These rules
15   * should be used within a <code>LineFormatter</code> concrete class.
16   * <p/>
17   * Apart from the correct line wrapping the <code>LineFormatter</code> must take care of proper formatting in the
18   * beginning of the line, i.e. line headers.<br/>
19   * For example, in case of the <code><b>CC</b></code> line type the
20   * <code>LineFormatter</code> must format each line beginning with <b><code>&gt;CC   &lt;</code></b> plus an additional
21   * <code><b>&gt;-!- &lt;</b></code> to indicate the beginning of a sentence or spaces, if the line is a continuation of
22   * a sentence.
23   * <p/>
24   * <b>Example:</b>
25   * <p/>
26   * <img src="../../../../../../../images/example_formatter.gif">
27   *
28   * @author Michael Darsow
29   * @version $Revision: 1.2 $ $Date: 2008/01/28 11:43:23 $
30   */
31  public interface LineFormatter {
32  
33    /** Defines the maximum line width within the flat file. **/
34    static final int LINEWIDTH = 78;
35  
36    /**
37     * This method takes care of proper formatting of the line(s) corresponding one {@link LineType line type} as
38     * described in the class description.
39     *
40     * @param text The whole text of one line type.
41     * @param lineType The {@link LineType line type}.
42     * @return the formatted lines.
43     * @throws EnzymeFlatFileWriteException if an error occured during the formatting process.
44     */
45    String formatLines(String text, LineType lineType) throws EnzymeFlatFileWriteException;
46  }