// ------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version: 17.0.0.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// ------------------------------------------------------------------------------
namespace ServiceClientGenerator.Generators
{
using System.IO;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using ServiceClientGenerator.DefaultConfiguration;
using System;
///
/// Class to produce the template output
///
#line 1 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
public partial class BaseGenerator : BaseGeneratorBase
{
#line hidden
///
/// Create the template output
///
public virtual string TransformText()
{
this.Write("\r\n\r\n");
return this.GenerationEnvironment.ToString();
}
#line 10 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
// An object that contains all the information about a service
public ServiceConfiguration Config { get; set; }
///
/// Model representing the default configuration modes as built
/// from the sdk-default-configurations.json file.
///
public DefaultConfigurationModel DefaultConfigurationModel { get; set; }
// Adds the Amazon Apache 2.0 license
public void AddLicenseHeader()
{
#line default
#line hidden
#line 23 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(@"/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the ""License"").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the ""license"" file accompanying this file. This file is distributed
* on an ""AS IS"" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the ");
#line default
#line hidden
#line 40 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(Path.GetFileName(this.Config.ModelPath)));
#line default
#line hidden
#line 40 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" service model.\r\n */\r\n");
#line default
#line hidden
#line 42 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Adds documentation to the begin operation based on the name
public void AddBeginAsyncDocumentation(Operation operation)
{
#line default
#line hidden
#line 48 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Initiates the asynchronous execution of the ");
#line default
#line hidden
#line 50 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 50 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" operation.\r\n /// \r\n /// \r\n /// Container for the necessary parameters to execute the ");
#line default
#line hidden
#line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" operation on Amazon");
#line default
#line hidden
#line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(@"Client.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking End");
#line default
#line hidden
#line 58 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 58 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n /// operation.\r\n");
#line default
#line hidden
#line 60 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
if(!string.IsNullOrEmpty(operation.RestAPIDocUrl))
{
#line default
#line hidden
#line 63 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// REST API Reference for ");
#line default
#line hidden
#line 64 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 64 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" Operation\r\n");
#line default
#line hidden
#line 65 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
// Generates the end operation async documentation
public void AddEndAsyncDocumentation(Operation operation)
{
#line default
#line hidden
#line 72 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Finishes the asynchronous execution of the ");
#line default
#line hidden
#line 74 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 74 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" operation.\r\n /// \r\n /// \r\n /// The IAsyncResult returned by the call to Begin");
#line default
#line hidden
#line 77 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 77 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(".\r\n /// \r\n /// Returns a ");
#line default
#line hidden
#line 79 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 79 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Result from ");
#line default
#line hidden
#line 79 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 79 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(".\r\n");
#line default
#line hidden
#line 80 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
if(!string.IsNullOrEmpty(operation.RestAPIDocUrl))
{
#line default
#line hidden
#line 83 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// REST API Reference for ");
#line default
#line hidden
#line 84 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 84 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" Operation\r\n");
#line default
#line hidden
#line 85 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
// Generates Client documentation
public void FormatServiceClientDocumentation(string documentation)
{
documentation = CleanupDocumentation(documentation);
#line default
#line hidden
#line 93 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Implementation for accessing ");
#line default
#line hidden
#line 95 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 95 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n ///\r\n");
#line default
#line hidden
#line 97 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 99 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 101 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Generates interface documentation
public void FormatServiceInterfaceDocumentation(string documentation)
{
documentation = CleanupDocumentation(documentation);
#line default
#line hidden
#line 108 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Interface for accessing ");
#line default
#line hidden
#line 110 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 110 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n ///\r\n");
#line default
#line hidden
#line 112 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 114 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 116 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Adds documentation to the class based on the shape
public void FormatClassDocumentation(Shape structure)
{
if(structure == null)
{
#line default
#line hidden
#line 124 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n\t/// Empty class reserved for future use.\r\n /// \r" +
"\n");
#line default
#line hidden
#line 128 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
return;
}
var documentation = CleanupDocumentation(structure.Documentation);
#line default
#line hidden
#line 132 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 134 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 136 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 138 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Adds documentation to the members of a structure
public void FormatPropertyDocumentation(Member member, string documentationPreface = "")
{
if (documentationPreface != null && documentationPreface != "")
{
if (!documentationPreface.EndsWith("."))
{
documentationPreface += ".";
}
documentationPreface = "
" + documentationPreface + "
";
}
var documentation = CleanupDocumentation(string.Format("Gets and sets the property {0}. {1}{2}", member.PropertyName, documentationPreface, member.Documentation));
#line default
#line hidden
#line 154 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 156 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 158 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 160 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
public void FormatOperationDocumentationSync(Operation operation, bool includeRequest)
{
FormatOperationDocumentationHelper(operation, includeRequest, false);
}
public void FormatOperationDocumentationAsync(Operation operation, bool includeRequest)
{
FormatOperationDocumentationHelper(operation, includeRequest, true);
}
// Documents the operation in a client or interface and optionally includes request param
private void FormatOperationDocumentationHelper(Operation operation, bool includeRequest, bool isAsync)
{
var documentation = CleanupDocumentation(operation.Documentation);
#line default
#line hidden
#line 178 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n /// \r\n");
#line default
#line hidden
#line 181 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 183 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 185 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
if (includeRequest)
{
#line default
#line hidden
#line 188 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// Container for the necessary parameters to execu" +
"te the ");
#line default
#line hidden
#line 189 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 189 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" service method.\r\n");
#line default
#line hidden
#line 190 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
if (isAsync)
{
// follows Async Pattern
#line default
#line hidden
#line 196 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// A cancellation toke" +
"n that can be used by other objects or threads to receive notice of cancellation" +
".\r\n /// \r\n");
#line default
#line hidden
#line 200 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 202 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// The response from the ");
#line default
#line hidden
#line 204 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 204 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" service method, as returned by ");
#line default
#line hidden
#line 204 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 204 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(".\r\n");
#line default
#line hidden
#line 205 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
// Skip adding exceptions in the ndoc because we are not generating exceptions from the service model.
if(this.Config.Namespace != "Amazon.S3")
{
foreach(var exception in operation.Exceptions)
{
this.FormatExceptionDocumentation(exception);
}
}
if(!string.IsNullOrEmpty(operation.RestAPIDocUrl))
{
#line default
#line hidden
#line 217 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// REST API Reference for ");
#line default
#line hidden
#line 218 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 218 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" Operation\r\n");
#line default
#line hidden
#line 219 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
// Generates operation documentation with a param tag for each member in the list
public void FormatOperationDocumentation(Operation operation, List members, bool isSync)
{
var documentation = CleanupDocumentation(operation.Documentation);
#line default
#line hidden
#line 228 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n /// \r\n");
#line default
#line hidden
#line 231 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 233 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 235 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
foreach(var item in members)
{
#line default
#line hidden
#line 237 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// ");
#line default
#line hidden
#line 238 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(item.GetParamDocumentationForOperation(operation.Name)));
#line default
#line hidden
#line 238 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n");
#line default
#line hidden
#line 239 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
if (!isSync)
{
#line default
#line hidden
#line 243 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// A cancellation toke" +
"n that can be used by other objects or threads to receive notice of cancellation" +
".\r\n /// \r\n");
#line default
#line hidden
#line 247 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 249 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// The response from the ");
#line default
#line hidden
#line 251 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 251 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" service method, as returned by ");
#line default
#line hidden
#line 251 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
#line default
#line hidden
#line 251 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(".\r\n");
#line default
#line hidden
#line 252 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
if (!this.Config.ServiceModel.Customizations.SuppressSimpleMethodExceptionDocs)
{
foreach(var exception in operation.Exceptions)
{
this.FormatExceptionDocumentation(exception);
}
}
if(!string.IsNullOrEmpty(operation.RestAPIDocUrl))
{
#line default
#line hidden
#line 263 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// REST API Reference for ");
#line default
#line hidden
#line 264 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 264 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" Operation\r\n");
#line default
#line hidden
#line 265 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
public void FormatOperationRequestDocumentation(Operation operation)
{
var documentation = CleanupDocumentation(operation.Documentation);
#line default
#line hidden
#line 272 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t/// \r\n\t/// Container for the parameters to the ");
#line default
#line hidden
#line 274 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 274 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" operation.\r\n");
#line default
#line hidden
#line 275 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 277 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t/// \r\n");
#line default
#line hidden
#line 279 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Generates documentation for an exception, added to operation documentation
public void FormatExceptionDocumentation(ExceptionShape exceptionShape)
{
var documentation = CleanupDocumentation(exceptionShape.Documentation);
#line default
#line hidden
#line 287 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 289 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
WriteCommentBlock(" ", documentation);
#line default
#line hidden
#line 291 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n");
#line default
#line hidden
#line 293 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Generates documentation for a result that is empty
public void FormatVoidResultDocumentation(string operationName)
{
#line default
#line hidden
#line 299 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t/// \r\n\t///\tReturns information about the ");
#line default
#line hidden
#line 301 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operationName));
#line default
#line hidden
#line 301 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" response metadata.\r\n\t///\tThe ");
#line default
#line hidden
#line 302 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operationName));
#line default
#line hidden
#line 302 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" operation has a void result type.\r\n\t/// \r\n");
#line default
#line hidden
#line 304 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
// Writes a block for an xml comment with correct line endings
// Every \n (new line) in the block is written on a new line of the block
private void WriteCommentBlock(string spaceBlock, string block)
{
foreach(var line in block.Split('\n'))
{
this.Write("{0}/// {1}\r\n", spaceBlock, line);
}
}
// Removes unneccesary tags from the documentation and formats paragraph tags correctly
public string CleanupDocumentation(string documentation)
{
documentation = documentation
.Replace("\r", "")
.Replace("\n", "")
.Replace("
", "")
.Replace("", "\n\n")
.Replace("
", "\n\n")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("","")
.Replace("","")
.Trim();
// Remove examples because these will be wire protocol examples
documentation = RemoveSnippets(documentation, "", "");
// Remove commented out documentation
documentation = RemoveSnippets(documentation, "");
documentation = RemoveSnippets(documentation, "");
documentation = RemoveSnippets(documentation, "");
documentation = RemoveSnippets(documentation, "");
documentation = RemoveSnippets(documentation, "");
// Remove the first para tags since it just be the first paragraph in the summary.
// This also helps clean up documentation that only contains one para block.
if(documentation.StartsWith(""))
{
int closePos= documentation.IndexOf("");
if (closePos < 0)
// note: documentation was transformed a few lines above
throw new Exception("Documentation is missing closing tag (ie or ): " + documentation);
var firstParaContent= documentation.Substring("".Length, closePos - "".Length);
documentation = firstParaContent + documentation.Substring(closePos + "".Length);
}
// Insert line breaks around 80 character line length
StringBuilder sb = new StringBuilder();
int position = 0;
int currentLineLength = 0;
while(position < documentation.Length)
{
char c = documentation[position];
if(c == '\n')
{
currentLineLength = 0;
sb.Append(c);
}
else if(c == ' ' && currentLineLength > 80)
{
currentLineLength = 0;
sb.Append("\n");
}
else
{
currentLineLength++;
sb.Append(c);
}
position++;
}
return sb.ToString().Trim();
}
private string RemoveSnippets(string documentation, string startToken, string endToken)
{
int startPos = documentation.IndexOf(startToken);
while(startPos != -1)
{
int closePos = documentation.IndexOf(endToken, startPos);
documentation = documentation.Substring(0, startPos) + documentation.Substring(closePos + endToken.Length);
startPos = documentation.IndexOf(startToken);
}
return documentation;
}
// Generates the comment block for simple constructors, each member is added as a param tag with the shape's documentation or
// a generic comment if no documentation is found
public void FormatSimpleConstructorDocumentation(string className, IList members)
{
#line default
#line hidden
#line 407 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Instantiates ");
#line default
#line hidden
#line 409 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(className));
#line default
#line hidden
#line 409 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" with the parameterized properties\r\n /// \r\n");
#line default
#line hidden
#line 411 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
foreach (var member in members)
{
#line default
#line hidden
#line 414 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// ");
#line default
#line hidden
#line 415 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.GetParamDocumentationForConstructor(className)));
#line default
#line hidden
#line 415 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\r\n");
#line default
#line hidden
#line 416 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
#line default
#line hidden
#line 421 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
// Generates methods for the client that have request members as parameters for easy calls to the operation
// Only generates them if they are specified in the customizations of the service
public void AddSimpleClientMethods(Operation operation, bool isSync)
{
if (this.Config.ServiceModel.Customizations.SimpleMethodsModel.CreateSimpleMethods(operation.Name))
{
var forms = this.Config.ServiceModel.Customizations.SimpleMethodsModel.SimpleMethods[operation.Name].Forms;
var members = this.Config.ServiceModel.FindShape(operation.RequestStructure.Name).Members;
foreach (var form in forms)
{
string currentParams = this.Config.ServiceModel.Customizations.SimpleMethodsModel.GetSimpleParameters(form, members);
var docMembers = this.Config.ServiceModel.Customizations.SimpleMethodsModel.GetFormMembers(form, members);
this.FormatOperationDocumentation(operation, docMembers, isSync);
if (isSync)
{
if(operation.IsDeprecated)
{
#line default
#line hidden
#line 441 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t\t[Obsolete(\"");
#line default
#line hidden
#line 442 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.DeprecationMessage));
#line default
#line hidden
#line 442 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\")]\r\n");
#line default
#line hidden
#line 443 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 445 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" public virtual ");
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Response ");
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("(");
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(currentParams));
#line default
#line hidden
#line 446 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(")\r\n");
#line default
#line hidden
#line 447 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
else
{
if (!string.IsNullOrEmpty(currentParams))
currentParams += ", ";
if(operation.IsDeprecated)
{
#line default
#line hidden
#line 455 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t\t[Obsolete(\"");
#line default
#line hidden
#line 456 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.DeprecationMessage));
#line default
#line hidden
#line 456 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\")]\r\n");
#line default
#line hidden
#line 457 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 459 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" public virtual Task<");
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Response> ");
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Async(");
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(currentParams));
#line default
#line hidden
#line 460 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("System.Threading.CancellationToken cancellationToken = default(CancellationToken)" +
")\r\n");
#line default
#line hidden
#line 461 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 463 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" {\r\n var request = new ");
#line default
#line hidden
#line 465 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 465 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Request();\r\n");
#line default
#line hidden
#line 466 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
foreach (var member in docMembers)
{
#line default
#line hidden
#line 469 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" request.");
#line default
#line hidden
#line 470 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
#line default
#line hidden
#line 470 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" = ");
#line default
#line hidden
#line 470 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(GeneratorHelpers.CamelCaseParam(member.PropertyName)));
#line default
#line hidden
#line 470 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(";\r\n");
#line default
#line hidden
#line 471 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
if (isSync)
{
#line default
#line hidden
#line 476 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" return ");
#line default
#line hidden
#line 477 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 477 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("(request);\r\n");
#line default
#line hidden
#line 478 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
else
{
#line default
#line hidden
#line 482 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" return ");
#line default
#line hidden
#line 483 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 483 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Async(request, cancellationToken);\r\n");
#line default
#line hidden
#line 484 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 486 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" }\r\n\r\n");
#line default
#line hidden
#line 489 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
}
#line default
#line hidden
#line 494 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
// Generates methods for the interface that have request members as parameters for easy calls to the operation
// Only generates them if they are specified in the customizations of the service
public void AddSimpleClientMethodInterfaces(Operation operation, bool isSync)
{
if (this.Config.ServiceModel.Customizations.SimpleMethodsModel.CreateSimpleMethods(operation.Name))
{
var forms = this.Config.ServiceModel.Customizations.SimpleMethodsModel.SimpleMethods[operation.Name].Forms;
var members = this.Config.ServiceModel.FindShape(operation.RequestStructure.Name).Members;
foreach (var form in forms)
{
string currentParams = this.Config.ServiceModel.Customizations.SimpleMethodsModel.GetSimpleParameters(form, members);
var docMembers = this.Config.ServiceModel.Customizations.SimpleMethodsModel.GetFormMembers(form, members);
this.FormatOperationDocumentation(operation, docMembers, isSync);
if (isSync)
{
if(operation.IsDeprecated)
{
#line default
#line hidden
#line 514 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t\t[Obsolete(\"");
#line default
#line hidden
#line 515 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.DeprecationMessage));
#line default
#line hidden
#line 515 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\")]\r\n");
#line default
#line hidden
#line 516 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 518 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" ");
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Response ");
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("(");
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(currentParams));
#line default
#line hidden
#line 519 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(");\r\n");
#line default
#line hidden
#line 520 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
else
{
if (!string.IsNullOrEmpty(currentParams))
currentParams += ", ";
if(operation.IsDeprecated)
{
#line default
#line hidden
#line 528 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\t\t[Obsolete(\"");
#line default
#line hidden
#line 529 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.DeprecationMessage));
#line default
#line hidden
#line 529 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("\")]\r\n");
#line default
#line hidden
#line 530 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 532 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" Task<");
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Response> ");
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("Async(");
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(currentParams));
#line default
#line hidden
#line 533 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("System.Threading.CancellationToken cancellationToken = default(CancellationToken)" +
");\r\n");
#line default
#line hidden
#line 534 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
}
}
#line default
#line hidden
#line 541 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
// Generates constructors for operation requests that have request members in the parameters for easy creation of requests
// Only generates them if they are specified in the customizations of the service
public void AddSimpleRequestConstructors(string className, Shape structure, string nameSpace)
{
if (this.Config.ServiceModel.Customizations.SimpleConstructorsModel.CreateSimpleConstructors(className))
{
var forms = this.Config.ServiceModel.Customizations.SimpleConstructorsModel.SimpleConstructors[className].Forms;
var members = structure.Members;
#line default
#line hidden
#line 550 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" /// \r\n /// Empty constructor used to set properties inde" +
"pendently even when a simple constructor is available\r\n /// \r\n " +
" public ");
#line default
#line hidden
#line 553 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(className));
#line default
#line hidden
#line 553 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("() { }\r\n\r\n");
#line default
#line hidden
#line 555 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
foreach (var form in forms)
{
string currentParams = this.Config.ServiceModel.Customizations.SimpleConstructorsModel.GetSimpleParameters(form, members);
var docMembers = this.Config.ServiceModel.Customizations.SimpleConstructorsModel.GetFormMembers(form, members);
#line default
#line hidden
#line 561 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
FormatSimpleConstructorDocumentation(className, docMembers);
#line default
#line hidden
#line 561 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" public ");
#line default
#line hidden
#line 562 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(className));
#line default
#line hidden
#line 562 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write("(");
#line default
#line hidden
#line 562 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(currentParams));
#line default
#line hidden
#line 562 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(")\r\n {\r\n");
#line default
#line hidden
#line 564 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
foreach (var member in docMembers)
{
#line default
#line hidden
#line 567 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" ");
#line default
#line hidden
#line 568 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
#line 568 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" = ");
#line default
#line hidden
#line 568 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(GeneratorHelpers.CamelCaseParam(member.PropertyName)));
#line default
#line hidden
#line 568 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(";\r\n");
#line default
#line hidden
#line 569 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
#line default
#line hidden
#line 572 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
this.Write(" }\r\n\r\n");
#line default
#line hidden
#line 575 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\BaseGenerator.tt"
}
}
}
#line default
#line hidden
}
#line default
#line hidden
#region Base class
///
/// Base class for this transformation
///
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
public class BaseGeneratorBase
{
#region Fields
private global::System.Text.StringBuilder generationEnvironmentField;
private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField;
private global::System.Collections.Generic.List indentLengthsField;
private string currentIndentField = "";
private bool endsWithNewline;
private global::System.Collections.Generic.IDictionary sessionField;
#endregion
#region Properties
///
/// The string builder that generation-time code is using to assemble generated output
///
protected System.Text.StringBuilder GenerationEnvironment
{
get
{
if ((this.generationEnvironmentField == null))
{
this.generationEnvironmentField = new global::System.Text.StringBuilder();
}
return this.generationEnvironmentField;
}
set
{
this.generationEnvironmentField = value;
}
}
///
/// The error collection for the generation process
///
public System.CodeDom.Compiler.CompilerErrorCollection Errors
{
get
{
if ((this.errorsField == null))
{
this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection();
}
return this.errorsField;
}
}
///
/// A list of the lengths of each indent that was added with PushIndent
///
private System.Collections.Generic.List indentLengths
{
get
{
if ((this.indentLengthsField == null))
{
this.indentLengthsField = new global::System.Collections.Generic.List();
}
return this.indentLengthsField;
}
}
///
/// Gets the current indent we use when adding lines to the output
///
public string CurrentIndent
{
get
{
return this.currentIndentField;
}
}
///
/// Current transformation session
///
public virtual global::System.Collections.Generic.IDictionary Session
{
get
{
return this.sessionField;
}
set
{
this.sessionField = value;
}
}
#endregion
#region Transform-time helpers
///
/// Write text directly into the generated output
///
public void Write(string textToAppend)
{
if (string.IsNullOrEmpty(textToAppend))
{
return;
}
// If we're starting off, or if the previous text ended with a newline,
// we have to append the current indent first.
if (((this.GenerationEnvironment.Length == 0)
|| this.endsWithNewline))
{
this.GenerationEnvironment.Append(this.currentIndentField);
this.endsWithNewline = false;
}
// Check if the current text ends with a newline
if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture))
{
this.endsWithNewline = true;
}
// This is an optimization. If the current indent is "", then we don't have to do any
// of the more complex stuff further down.
if ((this.currentIndentField.Length == 0))
{
this.GenerationEnvironment.Append(textToAppend);
return;
}
// Everywhere there is a newline in the text, add an indent after it
textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField));
// If the text ends with a newline, then we should strip off the indent added at the very end
// because the appropriate indent will be added when the next time Write() is called
if (this.endsWithNewline)
{
this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length));
}
else
{
this.GenerationEnvironment.Append(textToAppend);
}
}
///
/// Write text directly into the generated output
///
public void WriteLine(string textToAppend)
{
this.Write(textToAppend);
this.GenerationEnvironment.AppendLine();
this.endsWithNewline = true;
}
///
/// Write formatted text directly into the generated output
///
public void Write(string format, params object[] args)
{
this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args));
}
///
/// Write formatted text directly into the generated output
///
public void WriteLine(string format, params object[] args)
{
this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args));
}
///
/// Raise an error
///
public void Error(string message)
{
System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError();
error.ErrorText = message;
this.Errors.Add(error);
}
///
/// Raise a warning
///
public void Warning(string message)
{
System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError();
error.ErrorText = message;
error.IsWarning = true;
this.Errors.Add(error);
}
///
/// Increase the indent
///
public void PushIndent(string indent)
{
if ((indent == null))
{
throw new global::System.ArgumentNullException("indent");
}
this.currentIndentField = (this.currentIndentField + indent);
this.indentLengths.Add(indent.Length);
}
///
/// Remove the last indent that was added with PushIndent
///
public string PopIndent()
{
string returnValue = "";
if ((this.indentLengths.Count > 0))
{
int indentLength = this.indentLengths[(this.indentLengths.Count - 1)];
this.indentLengths.RemoveAt((this.indentLengths.Count - 1));
if ((indentLength > 0))
{
returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength));
this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength));
}
}
return returnValue;
}
///
/// Remove any indentation
///
public void ClearIndent()
{
this.indentLengths.Clear();
this.currentIndentField = "";
}
#endregion
#region ToString Helpers
///
/// Utility class to produce culture-oriented representation of an object as a string.
///
public class ToStringInstanceHelper
{
private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture;
///
/// Gets or sets format provider to be used by ToStringWithCulture method.
///
public System.IFormatProvider FormatProvider
{
get
{
return this.formatProviderField ;
}
set
{
if ((value != null))
{
this.formatProviderField = value;
}
}
}
///
/// This is called from the compile/run appdomain to convert objects within an expression block to a string
///
public string ToStringWithCulture(object objectToConvert)
{
if ((objectToConvert == null))
{
throw new global::System.ArgumentNullException("objectToConvert");
}
System.Type t = objectToConvert.GetType();
System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] {
typeof(System.IFormatProvider)});
if ((method == null))
{
return objectToConvert.ToString();
}
else
{
return ((string)(method.Invoke(objectToConvert, new object[] {
this.formatProviderField })));
}
}
}
private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper();
///
/// Helper to produce culture-oriented representation of an object as a string
///
public ToStringInstanceHelper ToStringHelper
{
get
{
return this.toStringHelperField;
}
}
#endregion
}
#endregion
}