private AimTemplateTreeCharacteristicQuantification CharacteristicQuantificationFromXsdCharacteristicQuantification( ComponentCharacteristicAllowedTermCharacteristicQuantification characteristicQuantification) { var intervals = new List<TemplateTree.Interval>(); var numericals = new List<TemplateTree.Numerical>(); var scales = new List<TemplateTree.Scale>(); var quantiles = new List<TemplateTree.Quantile>(); AimTemplateTreeCharacteristicQuantification quantification = null; var nonQuantifiables = new List<StandardCodedTerm>(); string name = characteristicQuantification.name; bool annotatorConfidence = characteristicQuantification.annotatorConfidence; int index = 0; int.TryParse(characteristicQuantification.characteristicQuantificationIndex, out index); if (characteristicQuantification.NonQuantifiable != null) { nonQuantifiables.AddRange(characteristicQuantification.NonQuantifiable.Select(nonQuantifiable => StandardCodedTermFomXsdNonQuantifiable(nonQuantifiable))); } if (characteristicQuantification.Items != null) { foreach (var quantificationItem in characteristicQuantification.Items) { if (quantificationItem is Interval) { intervals.Add(AimTemplateTreeIntervalFromXsdInterval((Interval)quantificationItem)); } if (quantificationItem is Scale) { scales.Add(AimTemplateTreeScaleFromXsdScale((Scale)quantificationItem)); } if (quantificationItem is Quantile) { quantiles.Add(AimTemplateTreeQuantileFromXsdQuantile((Quantile)quantificationItem)); } if (quantificationItem is Numerical) { numericals.Add(AimTemplateTreeNumericalFromXsdNumerical((Numerical)quantificationItem)); } } } if (quantiles.Count > 0) quantification = new AimTemplateTreeQuantileQuantification( quantiles[0], name, annotatorConfidence, index, nonQuantifiables); if (intervals.Count > 0) quantification = new AimTemplateTreeIntervalQuantification( intervals, name, annotatorConfidence, index, nonQuantifiables); else if (numericals.Count > 0) quantification = new AimTemplateTreeNumericalQuantification( numericals, name, annotatorConfidence, index, nonQuantifiables); else if (scales.Count > 0) quantification = new AimTemplateTreeScaleQuantification( scales[0], name, annotatorConfidence, index, nonQuantifiables); else if (quantification == null) quantification = new AimTemplateTreeCharacteristicQuantification( name, annotatorConfidence, index, nonQuantifiables); return quantification; }
private AimTemplateTreeCharacteristicQuantification CharacteristicQuantificationFromXsdCharacteristicQuantification( ComponentCharacteristicAllowedTermCharacteristicQuantification characteristicQuantification) { var intervals = new List <TemplateTree.Interval>(); var numericals = new List <TemplateTree.Numerical>(); var scales = new List <TemplateTree.Scale>(); var quantiles = new List <TemplateTree.Quantile>(); AimTemplateTreeCharacteristicQuantification quantification = null; var nonQuantifiables = new List <StandardCodedTerm>(); string name = characteristicQuantification.name; bool annotatorConfidence = characteristicQuantification.annotatorConfidence; int index = 0; int.TryParse(characteristicQuantification.characteristicQuantificationIndex, out index); if (characteristicQuantification.NonQuantifiable != null) { nonQuantifiables.AddRange(characteristicQuantification.NonQuantifiable.Select(nonQuantifiable => StandardCodedTermFomXsdNonQuantifiable(nonQuantifiable))); } if (characteristicQuantification.Items != null) { foreach (var quantificationItem in characteristicQuantification.Items) { if (quantificationItem is Interval) { intervals.Add(AimTemplateTreeIntervalFromXsdInterval((Interval)quantificationItem)); } if (quantificationItem is Scale) { scales.Add(AimTemplateTreeScaleFromXsdScale((Scale)quantificationItem)); } if (quantificationItem is Quantile) { quantiles.Add(AimTemplateTreeQuantileFromXsdQuantile((Quantile)quantificationItem)); } if (quantificationItem is Numerical) { numericals.Add(AimTemplateTreeNumericalFromXsdNumerical((Numerical)quantificationItem)); } } } if (quantiles.Count > 0) { quantification = new AimTemplateTreeQuantileQuantification( quantiles[0], name, annotatorConfidence, index, nonQuantifiables); } if (intervals.Count > 0) { quantification = new AimTemplateTreeIntervalQuantification( intervals, name, annotatorConfidence, index, nonQuantifiables); } else if (numericals.Count > 0) { quantification = new AimTemplateTreeNumericalQuantification( numericals, name, annotatorConfidence, index, nonQuantifiables); } else if (scales.Count > 0) { quantification = new AimTemplateTreeScaleQuantification( scales[0], name, annotatorConfidence, index, nonQuantifiables); } else if (quantification == null) { quantification = new AimTemplateTreeCharacteristicQuantification( name, annotatorConfidence, index, nonQuantifiables); } return(quantification); }