public override string GetValue(string fieldName)
{
switch (fieldName)
{
case Fields.Sequence:
return Sequence;
case Fields.Accession:
return Accession;
case Fields.Unique:
return Unique ? "1" : "0";
case Fields.Database:
return Database;
case Fields.DatabaseVersion:
return DatabaseVersion;
case Fields.SearchEngine:
return string.Join("|", SearchEngines);
case Fields.Reliability:
if (Reliability == MzTab.ReliabilityScore.NotSet)
return MzTab.NullFieldText;
return ((int) Reliability).ToString();
case Fields.Modifications:
return Modifications;
case Fields.RetentionTime:
return string.Join("|", RetentionTime);
case Fields.Charge:
return Charge.ToString();
case Fields.MZ:
return MZ.ToString();
case Fields.Uri:
return Uri.ToString();
case Fields.SpectraReference:
return SpectraReference;
case Fields.RetentionTimeWindow:
return string.Join("|", RetentionTimeWindows);
}
if (fieldName.Contains("["))
{
string condensedFieldName;
List<int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);
switch (condensedFieldName)
{
case Fields.AbundanceAssay:
return GetListValue(_abundanceAssays, indices[0]);
case Fields.AbundanceStudyVariable:
return GetListValue(_abundanceStudyVariables, indices[0]);
case Fields.AbundanceStDevStudyVariable:
return GetListValue(_abundanceStdevStudyVariables, indices[0]);
case Fields.AbudnanceStdErrorStudyVariable:
return GetListValue(_abundanceStandardErrorStudyVariables, indices[0]);
case Fields.BestSearchEngineScore:
return GetListValue(_bestSearchEngineScores, indices[0]);
}
}
if (fieldName.StartsWith(MzTab.OptionalColumnPrefix))
{
return GetOptionalData(fieldName);
}
throw new ArgumentException("Unexpected field name: " + fieldName);
}