001    /*
002     * To change this template, choose Tools | Templates
003     * and open the template in the editor.
004     */
005    
006    package org.biojava3.core.sequence.io;
007    
008    import java.util.List;
009    
010    import org.biojava3.core.sequence.RNASequence;
011    import org.biojava3.core.sequence.compound.NucleotideCompound;
012    import org.biojava3.core.sequence.io.template.SequenceCreatorInterface;
013    import org.biojava3.core.sequence.loader.ArrayListProxySequenceReader;
014    import org.biojava3.core.sequence.template.AbstractSequence;
015    import org.biojava3.core.sequence.template.CompoundSet;
016    import org.biojava3.core.sequence.template.ProxySequenceReader;
017    
018    /**
019     * Used to create a RNA sequence
020     *
021     * @author Scooter Willis <willishf at gmail dot com>
022     */
023    public class RNASequenceCreator implements
024        SequenceCreatorInterface<NucleotideCompound> {
025    
026      private final CompoundSet<NucleotideCompound> compoundSet;
027    /**
028     *
029     * @param compoundSet
030     */
031      public RNASequenceCreator(CompoundSet<NucleotideCompound> compoundSet) {
032        this.compoundSet = compoundSet;
033      }
034    /**
035     *
036     * @param sequence
037     * @param index
038     * @return
039     */
040      public AbstractSequence<NucleotideCompound> getSequence(String sequence, long index) {
041        return new RNASequence(sequence, compoundSet);
042      }
043    /**
044     *
045     * @param proxyLoader
046     * @param index
047     * @return
048     */
049      public AbstractSequence<NucleotideCompound> getSequence(
050          ProxySequenceReader<NucleotideCompound> proxyLoader, long index) {
051        return new RNASequence(proxyLoader, compoundSet);
052      }
053    /**
054     * 
055     * @param list
056     * @return
057     */
058      public AbstractSequence<NucleotideCompound> getSequence(List<NucleotideCompound> list) {
059        ArrayListProxySequenceReader<NucleotideCompound> store =
060          new ArrayListProxySequenceReader<NucleotideCompound>();
061        store.setCompoundSet(compoundSet);
062        store.setContents(list);
063        return new RNASequence(store);
064      }
065    }