1 package uk.ac.ebi.intenz.tools.sib.writer;
2
3 /**
4 * Defines a method to retrieve the next line wrapping position.
5 * <p/>
6 * Unfortunately the line wrapping "rules" applied manually are sometimes following the sole rule:
7 * <p/>
8 * <center><b><code>if (looks nice) then wrap();</code></b></center>
9 * <p/>which makes it impossible to create an identical flat file in an
10 * automated way.<br/>
11 * Therefore the wrapping classes implementing this interface should try to cover all manual line wrapping rules which
12 * do not follow this rule.
13 * <p>
14 * The line wrapping rules are defined in the following PDF file:<p/>
15 * • <a href="../../../../../../../pdf/enzyme_LW_rules.pdf">enzyme_LW_rules.pdf</a> (preliminary version,
16 * i.e. not approved by Amos)
17 *
18 * @author Michael Darsow
19 * @version $Revision: 1.2 $ $Date: 2008/01/28 11:43:23 $
20 */
21 public interface LineWrapper {
22 /**
23 * Returns the next position in the line where the wrapping should be performed.
24 * <p/>
25 * This method is supposed to be used by a {@link LineFormatter LineFormatter} implementation within
26 * a loop as long as the text does not fit into one line.
27 *
28 * @param text The text to be wrapped.
29 * @param netLineWidth Net line width (w/o line header in the begining).
30 * @return athe line break position.
31 * @throws EnzymeFlatFileWriteException if an error occured during this process.
32 */
33 int findPosition(String text, int netLineWidth) throws EnzymeFlatFileWriteException;
34 }