public override async Task Load(XElement node, bool requireName = true) { await base.Load(node, requireName); if (node.TryGetAttribute <string>("maleMarker", out var maleMarker)) { MaleMarker = new RecordType(maleMarker); } if (node.TryGetAttribute <string>("femaleMarker", out var femaleMarker)) { FemaleMarker = new RecordType(femaleMarker); } if (MaleMarker.HasValue != FemaleMarker.HasValue) { throw new ArgumentException("Both submarkers must be set at once."); } this.MarkerPerGender = node.GetAttribute <bool>("markerPerGender"); if (MaleMarker.HasValue) { this.SubTypeGeneration.NullableProperty.OnNext((true, true)); } FemaleConversions = RecordTypeConverterModule.GetConverter(node.Element(XName.Get("FemaleTypeOverrides", LoquiGenerator.Namespace))); MaleConversions = RecordTypeConverterModule.GetConverter(node.Element(XName.Get("MaleTypeOverrides", LoquiGenerator.Namespace))); }
public override void GenerateInRegistration(FileGeneration fg) { base.GenerateInRegistration(fg); RecordTypeConverterModule.GenerateConverterMember(fg, this.ObjectGen, this.FemaleConversions, $"{this.Name}Female"); RecordTypeConverterModule.GenerateConverterMember(fg, this.ObjectGen, this.MaleConversions, $"{this.Name}Male"); }