public override string GetValue(string fieldName)
{
switch (fieldName)
{
case Fields.Sequence:
return string.IsNullOrEmpty(Sequence) ? MzTab.NullFieldText : Sequence;
case Fields.ID:
return ID.ToString();
case Fields.Accession:
return Accession;
case Fields.Unique:
return Unique ? "1" : "0";
case Fields.Database:
return string.IsNullOrEmpty(Database) ? MzTab.NullFieldText : Database;
case Fields.DatabaseVersion:
return string.IsNullOrEmpty(DatabaseVersion) ? MzTab.NullFieldText : DatabaseVersion;
case Fields.SearchEngine:
return SearchEngines == null ? MzTab.NullFieldText : string.Join("|", SearchEngines);
case Fields.Reliability:
if (Reliability == MzTab.ReliabilityScore.NotSet)
return MzTab.NullFieldText;
return ((int) Reliability).ToString();
case Fields.Modifications:
return string.IsNullOrEmpty(Modifications) ? MzTab.NullFieldText : Modifications;
case Fields.RetentionTime:
return RetentionTime == null ? MzTab.NullFieldText : string.Join("|", RetentionTime);
case Fields.Charge:
return Charge.ToString();
case Fields.ExperimentalMZ:
return ExperimentalMZ.ToString();
case Fields.TheoreticalMZ:
return TheoreticalMZ.ToString();
case Fields.Uri:
return Uri == null ? MzTab.NullFieldText : Uri.ToString();
case Fields.SpectraReference:
return string.IsNullOrEmpty(SpectraReference) ? MzTab.NullFieldText : SpectraReference;
case Fields.PreviousAminoAcid:
return default(char).Equals(PreviousAminoAcid) ? "-" : PreviousAminoAcid.ToString();
case Fields.FollowingAminoAcid:
return default(char).Equals(FollowingAminoAcid) ? "-" : FollowingAminoAcid.ToString();
case Fields.StartResidue:
return StartResiduePosition.ToString();
case Fields.EndResidue:
return EndResiduePosition.ToString();
}
if (fieldName.Contains("["))
{
string condensedFieldName;
List<int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);
if (condensedFieldName == Fields.SearchEngineScore)
{
return GetListValue(_searchEngineScores, indices[0]);
}
}
if (fieldName.StartsWith(MzTab.OptionalColumnPrefix))
{
return GetOptionalData(fieldName);
}
throw new ArgumentException("Unexpected field name: " + fieldName);
}