/// <summary>Writes a primitive type.</summary> /// <param name="primitive">The primitive.</param> private void WritePrimitiveType( FhirPrimitive primitive) { string experimental = primitive.IsExperimental ? " (experimental)" : string.Empty; _writer.WriteLineIndented( $"- {primitive.Name}:" + $" {primitive.NameForExport(FhirTypeBase.NamingConvention.CamelCase)}" + $"::{primitive.TypeForExport(FhirTypeBase.NamingConvention.CamelCase, _primitiveTypeMap)}" + $"{experimental}"); _writer.IncreaseIndent(); // check for regex if (!string.IsNullOrEmpty(primitive.ValidationRegEx)) { _writer.WriteLineIndented($"[{primitive.ValidationRegEx}]"); } if (_info.ExtensionsByPath.ContainsKey(primitive.Path)) { WriteExtensions(_info.ExtensionsByPath[primitive.Path].Values); } if (_info.ProfilesByBaseType.ContainsKey(primitive.Path)) { WriteProfiles(_info.ProfilesByBaseType[primitive.Path].Values); } _writer.DecreaseIndent(); }
/// <summary>Adds a primitive node to 'primitive'.</summary> /// <param name="elements"> The elements.</param> /// <param name="primitive">The primitive.</param> private void AddPrimitive( Dictionary <string, CytoElement> elements, FhirPrimitive primitive) { if (elements.ContainsKey(primitive.Name)) { elements[primitive.Name].Data.Weight += _weightIncrement; if (elements[primitive.Name].Data.Weight > _maxNodeWeight) { _maxNodeWeight = (decimal)elements[primitive.Name].Data.Weight; } return; } CytoElement cy = new CytoElement() { Group = CytoElement.GroupNodes, Data = new CytoElementDataNode() { Id = primitive.Name, Name = primitive.Name, Weight = _weightIncrement, Group = _nodeGroupMap[FhirNodeInfo.FhirNodeType.Primitive], }, }; elements.Add(primitive.Name, cy); TryRecurse( elements, primitive.Name, FhirNodeInfo.FhirNodeType.Primitive, primitive.BaseTypeName); }