public override string GetValue(string fieldName)
{
switch (fieldName)
{
case Fields.Accession:
return Accession;
case Fields.Description:
return Description;
case Fields.Database:
return Database;
case Fields.DatabaseVersion:
return DatabaseVersion;
case Fields.SearchEngine:
return SearchEngines == null ? MzTab.NullFieldText : string.Join("|", SearchEngines);
case Fields.TaxID:
return TaxID.ToString();
case Fields.Species:
return Species;
case Fields.Modifications:
return Modificiations;
case Fields.AmbiguityMembers:
return AmbiguityMembers == null ? MzTab.NullFieldText : string.Join(",", AmbiguityMembers);
case Fields.Reliability:
if (Reliability == MzTab.ReliabilityScore.NotSet)
return MzTab.NullFieldText;
return ((int) Reliability).ToString();
case Fields.Coverage:
return Coverage.ToString();
case Fields.Uri:
return Uri != null ? Uri.ToString() : MzTab.NullFieldText;
case Fields.GoTerms:
return GoTerms == null ? MzTab.NullFieldText : string.Join("|", GoTerms);
}
if (fieldName.Contains("["))
{
string condensedFieldName;
List<int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);
switch (condensedFieldName)
{
case Fields.SearchEngine:
return GetListValue(_searchEngines, indices[0]);
case Fields.BestSearchEngineScore:
return GetListValue(_bestSearchEngineScores, indices[0]);
case Fields.AbundancePerAssay:
return GetListValue(_abundanceAssays, indices[0]);
case Fields.AbundanceStudyVariables:
return GetListValue(_abundanceStudyVariables, indices[0]);
case Fields.AbundanceStdevStudyVariables:
return GetListValue(_abundanceStdevStudyVariables, indices[0]);
case Fields.AbundanceStandardErrorStudyVariables:
return GetListValue(_abundanceStandardErrorStudyVariables, indices[0]);
case Fields.SearchEngineScoreMsRun:
return GetListValue(_searchEngineScoreMsRun, indices[0], indices[1]);
case Fields.NumberOfPsmsPerMsRun:
return GetListValue(_numberOfPsmsPerMsRun, indices[0]);
case Fields.NumberOfDistinctPeptidesPerMsRun:
return GetListValue(_numberOfDistinctPeptidesPerMsRun, indices[0]);
case Fields.NumberOfUniquePeptidesPerMsRun:
return GetListValue(_numberOfUniquePeptidesPerMsRun, indices[0]);
}
}
if (fieldName.StartsWith(MzTab.OptionalColumnPrefix))
{
return GetOptionalData(fieldName);
}
throw new ArgumentException("Unexpected field name: " + fieldName);
}