//This test asserts that a request with optional parameters is generated correctly with the order present //in the metadata public void GeneratesSnippetsWithOptionalParametersInCorrectOrder() { //Arrange LanguageExpressions expressions = new JavaExpressions(); const string jsonObject = "{\r\n " + "\"address\": \"Sheet1!A1:D5\",\r\n" + "\"hasHeaders\": true\r\n" + "}"; var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/tables/add") { Content = new StringContent(jsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "String address = \"Sheet1!A1:D5\";\r\n" + "\r\n" + "boolean hasHeaders = true;\r\n" + "\r\n" + "graphClient.me().drive().items(\"{id}\").workbook().tables()\n" + "\t.add(address,hasHeaders)\n" + "\t.buildRequest()\n" + "\t.post();"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This test asserts that a request with the odata.type property overrides the type from the metadata public void GeneratesSnippetsWithOverridenTypeInBody() { //Arrange LanguageExpressions expressions = new JavaExpressions(); const string jsonObject = "{\r\n " + "\"@odata.type\": \"#microsoft.graph.fileAttachment\",\r\n " + //subclass to use to override metadata superclass "\"name\": \"smile\",\r\n " + "\"contentBytes\": \"R0lGODdhEAYEAA7\"\r\n" + "}"; var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/messages/AAMkpsDRVK/attachments") { Content = new StringContent(jsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "FileAttachment attachment = new FileAttachment();\r\n" + // Use the FileAttachment class rather than the Attachment superclass from metadata "attachment.name = \"smile\";\r\n" + "attachment.contentBytes = \"R0lGODdhEAYEAA7\";\r\n" + "\r\n" + "graphClient.me().messages(\"AAMkpsDRVK\").attachments()\n" + "\t.buildRequest()\n" + "\t.post(attachment);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This tests asserts that we can generate snippets with query options present public void GeneratesSnippetsWithHeaderOptions() { //Arrange LanguageExpressions expressions = new JavaExpressions(); var requestPayload = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/events/AAMkAGIAAAoZDOFAAA=?$select=subject,body,bodyPreview,organizer,attendees,start,end,location"); requestPayload.Headers.Add("Prefer", "outlook.timezone=\"Pacific Standard Time\""); var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "LinkedList<Option> requestOptions = new LinkedList<Option>();\r\n" + "requestOptions.add(new HeaderOption(\"Prefer\", \"outlook.timezone=\\\"Pacific Standard Time\\\"\"));\r\n" + //Header Options present "\r\n" + "Event event = graphClient.me().events(\"AAMkAGIAAAoZDOFAAA=\")\n" + "\t.buildRequest( requestOptions )\n" + "\t.select(\"subject,body,bodyPreview,organizer,attendees,start,end,location\")\n" + "\t.get();"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
public void Translate(string sourcesPath, IEnumerable <string> assembliesPaths, string javaOutputPath) { if (string.IsNullOrEmpty(sourcesPath)) { throw new ArgumentException(nameof(sourcesPath)); } if (assembliesPaths == null) { throw new ArgumentNullException(nameof(assembliesPaths)); } if (string.IsNullOrEmpty(javaOutputPath)) { javaOutputPath = sourcesPath + "\\java"; } if (!(javaOutputPath.EndsWith("/java") || javaOutputPath.EndsWith("\\java"))) { throw new ArgumentException($"Provided {nameof(javaOutputPath)} path is incorrect, it must end with 'java' directory."); } var javaGenerator = new JavaGenerator(); javaGenerator.Generate(sourcesPath, javaOutputPath, assembliesPaths); }
// This tests asserts that a type beginning with "@" character is also added to the AdditionalData bag public void GeneratesSnippetsWithTypesStartingWithTheAtSymbol() { //Arrange LanguageExpressions expressions = new JavaExpressions(); const string jsonObject = "{\r\n" + " \"name\": \"New Folder\",\r\n" + " \"folder\": { },\r\n" + " \"@microsoft.graph.conflictBehavior\": \"rename\"\r\n" + //to be added to the AdditionalData "}"; var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/drive/root/children") { Content = new StringContent(jsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "DriveItem driveItem = new DriveItem();\r\n" + "driveItem.name = \"New Folder\";\r\n" + "Folder folder = new Folder();\r\n" + "driveItem.folder = folder;\r\n" + "driveItem.additionalDataManager().put(\"@microsoft.graph.conflictBehavior\", new JsonPrimitive(\"rename\"));\r\n" + "\r\n" + "graphClient.me().drive().root().children()\n" + "\t.buildRequest()\n" + "\t.post(driveItem);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
Generator CreateGenerator() { Generator generator = null; switch (Options.GeneratorKind) { case GeneratorKind.C: generator = new CGenerator(Context); break; case GeneratorKind.ObjectiveC: generator = new ObjCGenerator(Context); break; case GeneratorKind.Java: generator = new JavaGenerator(Context); break; case GeneratorKind.Swift: generator = new SwiftGenerator(Context); break; default: throw new NotImplementedException(); } return(generator); }
//This tests asserts that we can generate snippets from json objects with nested arrays inside them. public void RecursivelyGeneratesNestedPhonesListFromJsonObject() { //Arrange LanguageExpressions expressions = new JavaExpressions(); //json string with nested objects string array const string userJsonObject = "{\r\n \"accountEnabled\": true,\r\n " + "\"businessPhones\": [\r\n \"businessPhones-value\",\"businessPhones-value2\",\"businessPhones-value3\"\r\n ],\r\n " +//nested ArrayObject with 3 items "\"city\": \"city-value\"\r\n}"; var requestPayload = new HttpRequestMessage(HttpMethod.Patch, "https://graph.microsoft.com/v1.0/me") { Content = new StringContent(userJsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "User user = new User();\r\n" + "user.accountEnabled = true;\r\n" + "LinkedList<String> businessPhonesList = new LinkedList<String>();\r\n" + "businessPhonesList.add(\"businessPhones-value\");\r\n" + "businessPhonesList.add(\"businessPhones-value2\");\r\n" + "businessPhonesList.add(\"businessPhones-value3\");\r\n" + "user.businessPhones = businessPhonesList;\r\n" + "user.city = \"city-value\";\r\n" + "\r\n" + "graphClient.me()\n" + "\t.buildRequest()\n" + "\t.patch(user);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
/// <summary> /// Entry point to generate snippets from the payload /// </summary> /// <param name="language"></param> /// <param name="httpRequestMessage"></param> /// <returns>String of snippet generated</returns> public string ProcessPayloadRequest(HttpRequestMessage httpRequestMessage, string language) { var(edmModel, serviceRootUri) = GetModelAndServiceUriTuple(httpRequestMessage.RequestUri); var snippetModel = new SnippetModel(httpRequestMessage, serviceRootUri.AbsoluteUri, edmModel); switch (language.ToLower()) { case "c#": var csharpGenerator = new CSharpGenerator(edmModel, IsCommandLine); return(csharpGenerator.GenerateCodeSnippet(snippetModel, CSharpExpressions)); case "javascript": return(JavaScriptGenerator.GenerateCodeSnippet(snippetModel, JavascriptExpressions)); case "objective-c": var objectiveCGenerator = new ObjectiveCGenerator(edmModel); return(objectiveCGenerator.GenerateCodeSnippet(snippetModel, ObjectiveCExpressions)); case "java": var javaGenerator = new JavaGenerator(edmModel); return(javaGenerator.GenerateCodeSnippet(snippetModel, JavaExpressions)); default: throw new Exception("Invalid Language selected"); } }
//This tests asserts that we can generate snippets with $ref that adds/creates references with // a reference that is not a Uri public void GeneratesSnippetsAddingReferencesToDirectoryObjectWithNonUriReference() { //Arrange LanguageExpressions expressions = new JavaExpressions(); const string messageJsonObject = "{\r\n \"@odata.id\": \"ExampleID\"\r\n}"; var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/groups/{id}/owners/$ref") { Content = new StringContent(messageJsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "DirectoryObject directoryObject = new DirectoryObject();\r\n" + "directoryObject.Id = \"ExampleID\";\r\n" + "\r\n" + "graphClient.groups(\"{id}\").owners().references()\n" + "\t.buildRequest()\n" + "\t.post(directoryObject);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
public object Any(TypesJava request) { if (request.BaseUrl == null) { request.BaseUrl = Request.GetBaseUrl(); } var typesConfig = NativeTypesMetadata.GetConfig(request); //Include SS types by removing ServiceStack namespaces if (typesConfig.AddServiceStackTypes) { typesConfig.IgnoreTypesInNamespaces = new List <string>(); } ExportMissingSystemTypes(typesConfig); var metadataTypes = NativeTypesMetadata.GetMetadataTypes(Request, typesConfig); metadataTypes.Types.RemoveAll(x => x.Name == "Service"); var java = new JavaGenerator(typesConfig).GetCode(metadataTypes, base.Request, NativeTypesMetadata); return(java); }
//生成数据管理器 private void GenDataManager(ExcelData excelData, string outputPath, string package) { if (_isOutputCSharp) { CSharpGenerator.GenDataManager(excelData, outputPath); } else if (!string.IsNullOrEmpty(package)) { JavaGenerator.GenDataManager(excelData, outputPath, package); } }
//This tests asserts that we return an error if we try to get beta snippets for Java public void ThrowsNotImplementedExceptionForBeta() { //Arrange LanguageExpressions expressions = new JavaExpressions(); //Act var requestPayload = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/beta/me"); var snippetModel = new SnippetModel(requestPayload, "https://graph.microsoft.com/beta", _edmModel); //Assert that we do not generate snippets for java beta for now Assert.Throws <NotImplementedException>(() => JavaGenerator.GenerateCodeSnippet(snippetModel, expressions)); }
public void DDLToJavaBeanTest() { javaBeanConfig = new JavaBeanConfig(); javaBeanConfig.DDLConfig = ddlConfig; javaBeanConfig.PackageName = "com.wintop.third.cbs.bean"; javaBeanConfig.VOPackageName = "com.wintop.third.cbs.vo"; javaBeanConfig.JavaDiretory = @"D:\fgq\work\code\wintop-third-eas\bean\third-cbs-bean\src\main\java"; javaBeanConfig.OmmitPrefix = "ODS"; JavaGenerator toJavaBean = new JavaGenerator(); toJavaBean.GenerateBean(javaBeanConfig); }
public Generator(Database database) { _database = database; _sqlGenerator = new SqlGenerator(_database); _phpGenerator = new PhpGenerator(_database); _typescriptGenerator = new TypescriptGenerator(_database); _notificationSystem = new NotificationSystem(); _cSharpGenerator = new CSharpGenerator(_database); _documentationGenerator = new DocumentationGenerator(_database); _javaGenerator = new JavaGenerator(_database); _pythonGenerator = new PythonGenerator(_database); _generatorConfigGenerator = new GeneratorConfigGenerator(_database); _authenticationSystem = new AuthenticationSystem(_database); }
public void Test() { IExtensionPoint[] extensionPoints = { new StringExtensionPoint() }; var generator = new JavaGenerator(extensionPoints.OfType <ITypeResolver>().ToArray()); var options = new TranslationOptions { IsBeautify = true, MultiThreading = false }; var translatorRunner = new TranslationRunner(generator, extensionPoints, options); var inDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFiles"); var outDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFilesOut"); translatorRunner.Translate(inDir, outDir, null); }
void Generate() { Output = new ProjectOutput(); Generator generator = null; switch (Options.GeneratorKind) { case GeneratorKind.C: generator = new CGenerator(Context); break; case GeneratorKind.ObjectiveC: generator = new ObjCGenerator(Context); break; case GeneratorKind.Java: generator = new JavaGenerator(Context); break; default: throw new NotImplementedException(); } generator.SetupPasses(); foreach (var unit in Context.ASTContext.TranslationUnits) { var outputs = generator.Generate(new[] { unit }); foreach (var output in outputs) { output.Process(); var text = output.Generate(); Output.WriteOutput(output.FilePath, text); } } if (Options.GenerateSupportFiles) { GenerateSupportFiles(); } }
//This tests asserts that we can generate snippets with $ref operator inside it public void GeneratesSnippetsWithReferenceSegmentInPath() { //Arrange LanguageExpressions expressions = new JavaExpressions(); var requestPayload = new HttpRequestMessage(HttpMethod.Delete, "https://graph.microsoft.com/v1.0/groups/{id}/owners/{id}/$ref"); var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "graphClient.groups(\"{id}\").owners(\"{id}\").reference()\n" + "\t.buildRequest()\n" + "\t.delete();"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This tests asserts that we can properly generate snippets for odata actions with parameters public void GeneratesSnippetsForOdataActionsWithParameters() { //Arrange LanguageExpressions expressions = new JavaExpressions(); var requestPayload = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/worksheets/{id|name}/range(address='A1:B2')"); var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "WorkbookRange workbookRange = graphClient.me().drive().items(\"{id}\").workbook().worksheets(\"{id|name}\")\n" + "\t.range(\"A1:B2\")\n" +//parameter has double quotes "\t.buildRequest()\n" + "\t.get();"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This tests asserts that we can generate snippets from json objects with nested objects inside them. public void RecursivelyGeneratesNestedPasswordProfileObjectFromJson() { //Arrange LanguageExpressions expressions = new JavaExpressions(); //json string with nested object properties const string userJsonObject = "{\r\n \"accountEnabled\": true,\r\n " + "\"displayName\": \"displayName-value\",\r\n " + "\"mailNickname\": \"mailNickname-value\",\r\n " + "\"userPrincipalName\": \"[email protected]\",\r\n " + " \"passwordProfile\" : {\r\n \"forceChangePasswordNextSignIn\": true,\r\n \"password\": \"password-value\"\r\n }\r\n}";//nested passwordProfile Object var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/users") { Content = new StringContent(userJsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "User user = new User();\r\n" + "user.accountEnabled = true;\r\n" + "user.displayName = \"displayName-value\";\r\n" + "user.mailNickname = \"mailNickname-value\";\r\n" + "user.userPrincipalName = \"[email protected]\";\r\n" + "PasswordProfile passwordProfile = new PasswordProfile();\r\n" + "passwordProfile.forceChangePasswordNextSignIn = true;\r\n" + "passwordProfile.password = \"password-value\";\r\n" + "user.passwordProfile = passwordProfile;\r\n" + "\r\n" + "graphClient.users()\n" + "\t.buildRequest()\n" + "\t.post(user);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This tests asserts that we can generate snippets with query options present public void GeneratesSnippetsWithQueryOptions() { //Arrange LanguageExpressions expressions = new JavaExpressions(); var requestPayload = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime=2017-01-01T19:00:00.0000000&endDateTime=2017-01-07T19:00:00.0000000"); var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "LinkedList<Option> requestOptions = new LinkedList<Option>();\r\n" + "requestOptions.add(new QueryOption(\"startDateTime\", \"2017-01-01T19:00:00.0000000\"));\r\n" + //Query Options present "requestOptions.add(new QueryOption(\"endDateTime\", \"2017-01-07T19:00:00.0000000\"));\r\n" + //Query Options present "\r\n" + "IEventCollectionPage calendarView = graphClient.me().calendar().calendarView()\n" + "\t.buildRequest( requestOptions )\n" + "\t.get();"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
//This tests asserts that we can generate snippets from json objects with nested object lists(JArray) inside them. public void RecursivelyGeneratesNestedRecipientListObjectsFromJson() { //Arrange LanguageExpressions expressions = new JavaExpressions(); //json string with nested object array const string messageJsonObject = "{\r\n " + "\"subject\":\"Did you see last night's game?\",\r\n" + "\"importance\":\"Low\",\r\n" + "\"body\":{\r\n" + "\"contentType\":\"HTML\",\r\n" + "\"content\":\"They were <b>awesome</b>!\"\r\n" + "},\r\n" + "\"toRecipients\":[\r\n" + "{\r\n" + "\"emailAddress\":{\r\n" + "\"address\":\"[email protected]\"\r\n" + "}\r\n" + "},\r\n" + "{\r\n" + "\"emailAddress\":{\r\n" + "\"address\":\"[email protected]\"\r\n" + "}\r\n" + "}\r\n" + "]\r\n" + "}"; var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/messages") { Content = new StringContent(messageJsonObject) }; var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel); //Act by generating the code snippet var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions); //Assert code snippet string matches expectation const string expectedSnippet = "Message message = new Message();\r\n" + "message.subject = \"Did you see last night's game?\";\r\n" + "message.importance = Importance.LOW;\r\n" + "ItemBody body = new ItemBody();\r\n" + "body.contentType = BodyType.HTML;\r\n" + "body.content = \"They were <b>awesome</b>!\";\r\n" + "message.body = body;\r\n" + "LinkedList<Recipient> toRecipientsList = new LinkedList<Recipient>();\r\n" + "Recipient toRecipients = new Recipient();\r\n" + "EmailAddress emailAddress = new EmailAddress();\r\n" + "emailAddress.address = \"[email protected]\";\r\n" + "toRecipients.emailAddress = emailAddress;\r\n" + "toRecipientsList.add(toRecipients);\r\n" + "Recipient toRecipients1 = new Recipient();\r\n" + "EmailAddress emailAddress1 = new EmailAddress();\r\n" + "emailAddress1.address = \"[email protected]\";\r\n" + "toRecipients1.emailAddress = emailAddress1;\r\n" + "toRecipientsList.add(toRecipients1);\r\n" + "message.toRecipients = toRecipientsList;\r\n" + "\r\n" + "graphClient.me().messages()\n" + "\t.buildRequest()\n" + "\t.post(message);"; //Assert the snippet generated is as expected Assert.Equal(AuthProviderPrefix + expectedSnippet, result); }
public static void PerformModelGenerate(TargetLanguage targetLanguage, TargetDatabaseConnector targetDatabaseConnector, string connectionString, string directory, string @namespace) { IModelGenerator generator = default; switch (targetLanguage) { case TargetLanguage.CSharp: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new CSharpGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new CSharpGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new CSharpGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new CSharpGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new CSharpGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.VisualBasic: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new VisualBasicGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new VisualBasicGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new VisualBasicGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new VisualBasicGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new VisualBasicGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.TypeScript: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new TypeScriptGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new TypeScriptGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new TypeScriptGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new TypeScriptGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new TypeScriptGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.PHP: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new PHPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new PHPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new PHPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new PHPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new PHPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Python: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new PythonGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new PythonGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new PythonGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new PythonGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new PythonGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Python37: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new Python37Generator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new Python37Generator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new Python37Generator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new Python37Generator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new Python37Generator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Java: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new JavaGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new JavaGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new JavaGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new JavaGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new JavaGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.CPP: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new CPPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new CPPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new CPPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new CPPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new CPPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Golang: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new GolangGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new GolangGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new GolangGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new GolangGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new GolangGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; } generator.Generate(); }