public override void GenerateForField(StructuredStringBuilder sb, TypeGeneration field, string typeStr) { LoquiType loqui = field as LoquiType; sb.AppendLine($"public MaskItem<{typeStr}, {loqui.GenerateMaskString(typeStr)}?>? {field.Name} {{ get; set; }}"); }
public override void GenerateForCtor(StructuredStringBuilder sb, TypeGeneration field, string typeStr, string valueStr) { LoquiType loqui = field as LoquiType; sb.AppendLine($"this.{field.Name} = new MaskItem<{typeStr}, {loqui.GenerateMaskString(typeStr)}?>({valueStr}, {(loqui.TargetObjectGeneration == null ? "null" : $"new {loqui.TargetObjectGeneration.GetMaskString(typeStr)}({valueStr})")});"); }
public override string GetMaskTypeStr(TypeGeneration field, string typeStr) { LoquiType loqui = field as LoquiType; return($"MaskItem<{typeStr}, {loqui.GenerateMaskString(typeStr)}?>?"); }
public override void GenerateForTranslate(StructuredStringBuilder sb, TypeGeneration field, string retAccessor, string rhsAccessor, bool indexed) { LoquiType loqui = field as LoquiType; if (IsUnknownGeneric(loqui)) { sb.AppendLine($"{retAccessor};"); sb.AppendLine($"throw new {nameof(NotImplementedException)}();"); } else { sb.AppendLine($"{retAccessor} = {rhsAccessor} == null ? null : new MaskItem{(indexed ? "Indexed" : null)}<R, {loqui.GenerateMaskString("R")}?>({(indexed ? $"{rhsAccessor}.Index, " : null)}eval({rhsAccessor}.Overall), {rhsAccessor}.Specific?.Translate(eval));"); } }