public override string GetValue(string fieldName)
{
switch (fieldName)
{
case Fields.Mode:
return Enum.GetName(typeof (MzTab.MzTabMode), Mode);
case Fields.Type:
return Enum.GetName(typeof (MzTab.MzTabType), Type);
case Fields.Description:
return Description;
case Fields.Title:
return Title;
case Fields.Version:
return Version;
case Fields.ID:
return ID;
case Fields.ProteinQuantificationUnit:
return ProteinQuantificationUnit == null ? MzTab.NullFieldText : ProteinQuantificationUnit.ToString();
}
if (fieldName.Contains("["))
{
string condensedFieldName;
List<int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);
switch (condensedFieldName)
{
case Fields.FixedMod:
return GetListValue(_fixedModifications, indices[0]);
case Fields.FixedModSite:
return GetListValue(_fixedModificationSites, indices[0]);
case Fields.VariableMod:
return GetListValue(_variableModifications, indices[0]);
case Fields.PsmSearchEngineScore:
return GetListValue(_psmSearchEngineScores, indices[0]);
case Fields.ProteinSearchEngineScore:
return GetListValue(_proteinSearchEngineScores, indices[0]);
case Fields.StudyVariableDescription:
return GetListValue(_studyVariableDescriptions, indices[0]);
case Fields.MsRunLocation:
return GetListValue(_msRunLocations, indices[0]);
case Fields.Software:
return GetListValue(_software, indices[0]);
case Fields.SoftwareSettings:
return GetFieldValue(_software, indices[0], sw => sw.Settings, indices[1]);
}
}
throw new ArgumentException("Unexpected field name: " + fieldName);
}