private static void WritePropertyDeclaration(DataClassWriter writer, Property property) { if (property.CustomImpl) { return; } writer .WriteSummary(property) .WriteLine(GetPublicPropertyDeclaration(property)) .WriteLine(GetInternalPropertyDeclarationOrNull(property)); }
private static void WritePropertyDeclaration(DataClassWriter writer, Property property) { if (property.CustomImpl) { return; } writer .WriteSummary(property) .WritePublicProperty(property) .WriteInternalPropertyWhenNeeded(property); }
private static DataClassWriter WriteToolPath(this DataClassWriter writer) { if (!(writer.DataClass is SettingsClass settingsClass)) { return(writer); } var tool = settingsClass.Tool.NotNull(); var resolver = !tool.CustomExecutable ? $"{tool.GetClassName()}.{tool.Name}Path" : "GetToolPath()"; return(writer .WriteSummary($"Path to the {tool.Name} executable.") .WriteLine($"public override string ToolPath => base.ToolPath ?? {resolver};")); }
private static DataClassWriter WriteToolPath(this DataClassWriter writer) { if (!(writer.DataClass is SettingsClass settingsClass)) { return(writer); } var tool = settingsClass.Tool.NotNull(); var resolvers = new List <string>(); if (tool.CustomExecutable) { resolvers.Add("{GetToolPath()}".DoubleQuoteInterpolated()); } if (tool.PackageId != null) { resolvers.Add("ToolPathResolver.GetPackageExecutable(" + $"{tool.PackageId.DoubleQuoteInterpolated()}, " + $"{(tool.PackageExecutable ?? "{GetPackageExecutable()}").DoubleQuoteInterpolated()})"); } if (tool.EnvironmentExecutable != null) { resolvers.Add("ToolPathResolver.GetEnvironmentExecutable(" + $"{tool.EnvironmentExecutable.DoubleQuoteInterpolated()})"); } if (tool.PathExecutable != null) { resolvers.Add("ToolPathResolver.GetPathExecutable(" + $"{tool.PathExecutable.DoubleQuoteInterpolated()})"); } if (resolvers.Count == 0) { return(writer); } Trace.Assert(resolvers.Count == 1, "resolvers.Count == 1"); return(writer .WriteSummary($"Path to the {tool.Name} executable.") .WriteLine($"public override string ToolPath => base.ToolPath ?? {resolvers.Single()};")); }
// ReSharper disable once CyclomaticComplexity private static DataClassWriter WriteToolPath(this DataClassWriter writer) { var settingsClass = writer.DataClass as SettingsClass; if (settingsClass == null) { return(writer); } var tool = settingsClass.Tool.NotNull(); var resolvers = new List <string> { "base.ToolPath" }; if (tool.CustomExecutable) { resolvers.Add("{GetToolPath()}".DoubleQuoteInterpolated()); } if (tool.PackageId != null) { resolvers.Add("ToolPathResolver.GetPackageExecutable(" + $"{tool.PackageId.DoubleQuoteInterpolated()}, " + $"{(tool.PackageExecutable ?? "{GetPackageExecutable()}").DoubleQuoteInterpolated()})"); } if (tool.EnvironmentExecutable != null) { resolvers.Add("ToolPathResolver.GetEnvironmentExecutable(" + $"{tool.EnvironmentExecutable.DoubleQuoteInterpolated()})"); } if (tool.PathExecutable != null) { resolvers.Add("ToolPathResolver.GetPathExecutable(" + $"{tool.PathExecutable.DoubleQuoteInterpolated()})"); } if (resolvers.Count == 1) { return(writer); } return(writer .WriteSummary($"Path to the {tool.Name} executable.") .WriteLine($"public override string ToolPath => {resolvers.Join(" ?? ")};")); }
private static void WritePropertyDeclaration(DataClassWriter writer, Property property) { if (property.CustomImpl) { return; } var type = GetPublicPropertyType(property); var implementation = GetPublicPropertyImplementation(property); var hasInternalProperty = property.IsList() || property.IsDictionary() || property.IsLookupTable(); writer .WriteSummary(property) .WriteObsoleteAttributeWhenObsolete(property) .WriteLineIfTrue(!hasInternalProperty, GetJsonSerializationAttribute(property)) .WriteLineIfTrue(hasInternalProperty, GetJsonIgnoreAttribute(property)) .WriteLine($"public virtual {type} {property.Name} {implementation}") .WriteLineIfTrue(hasInternalProperty, GetJsonSerializationAttribute(property)) .WriteLineIfTrue(hasInternalProperty, $"internal {property.Type} {property.Name}Internal {{ get; set; }}{GetPropertyInitialization(property)}"); }