001    package calhoun.analysis.crf.io;
002    
003    import java.io.BufferedReader;
004    import java.io.IOException;
005    import java.io.Writer;
006    import java.util.Map;
007    
008    /** an input component that reads in a name for each sequence.  Creates an {@link NameInputSequence}.
009     * Can be used as a regular input component or as part of an interleaved input.
010     */
011    public class NameInput extends InterleavedInputComponentBase {
012            private static final long serialVersionUID = -2944973705715162476L;
013            
014            public boolean read(BufferedReader r, Map<String, InputSequence<?>> output) throws IOException {
015                    String data = r.readLine();
016                    if(data == null)
017                            return false;
018                    output.put(name, new NameInputSequence(data));
019                    return true;
020            }
021    
022            public void write(Writer w, Map<String, ? extends InputSequence<?>> data) throws IOException {
023                    w.write(((NameInputSequence) data.get(name)).getX(0));
024                    w.write('\n');
025            }
026    }