package org.nexml.model;
import java.util.Set;
public interface MolecularMatrix extends Matrix<CharacterState> {
public static final String DNA = "Dna";
public static final String RNA = "Rna";
public static final String Protein = "Protein";
/**
* Gets the character state sets associated with the
* invocant matrix. Typically, this would be a single,
* fixed state set.
*/
Set<CharacterStateSet> getCharacterStateSets();
/**
* Gets the default character state set. Typically this
* will be a fixed, IUPAC-compliant state set.
* @return
*/
CharacterStateSet getCharacterStateSet();
/**
* Creates and returns a new character state set
*/
CharacterStateSet createCharacterStateSet();
/**
* This method creates a char element, i.e. a column definition.
* Because NeXML requires for categorical matrices that these
* column definitions have an attribute to reference the
* applicable state set, the state set object needs to be passed
* in here, from which the attribute's value is set.
* @author rvosa
*/
Character createCharacter(CharacterStateSet characterStateSet);
/**
* Retrieves a fixed character state set for IUPAC single
* character DNA nucleotide symbols
*/
CharacterStateSet getDNACharacterStateSet();
/**
* Retrieves a fixed character state set for IUPAC single
* character RNA nucleotide symbols
*/
CharacterStateSet getRNACharacterStateSet();
/**
* Retrieves a fixed character state set for IUPAC single
* character amino acid symbols
*/
CharacterStateSet getProteinCharacterStateSet();
CharacterState parseSymbol(String symbol,String subDataType);
}