SIL.FieldWorks.IText.ConcordanceControl.GetHvoOfMsaPartOfSpeech C# (CSharp) Method

GetHvoOfMsaPartOfSpeech() private static method

Get the hvo(s) for the Part of Speech for the various subclasses of MSA. N.B. If we add new subclasses or rearrange the class hierarchy, this will need to change.
private static GetHvoOfMsaPartOfSpeech ( IMoMorphSynAnalysis msa ) : List
msa IMoMorphSynAnalysis
return List
		private static List<int> GetHvoOfMsaPartOfSpeech(IMoMorphSynAnalysis msa)
		{
			var result = new List<int>();
			ICmPossibility pos;
			if (msa is IMoInflAffMsa)
			{
				pos = ((IMoInflAffMsa) msa).PartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
			}
			if (msa is IMoStemMsa)
			{
				pos = ((IMoStemMsa) msa).PartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
			}
			if (msa is IMoDerivAffMsa)
			{
				var derivMsa = ((IMoDerivAffMsa) msa);
				pos = derivMsa.ToPartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
				pos = derivMsa.FromPartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
			}
			if (msa is IMoDerivStepMsa)
			{
				pos = ((IMoDerivStepMsa)msa).PartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
			}
			if (msa is IMoUnclassifiedAffixMsa)
			{
				pos = ((IMoUnclassifiedAffixMsa)msa).PartOfSpeechRA;
				if (pos != null)
					result.Add(pos.Hvo);
			}
			return result;
		}