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 }