From 409638676ee5f2b13d19abca644254952f16cf14 Mon Sep 17 00:00:00 2001 From: Vincent Coetzee Date: Mon, 8 May 2017 12:26:30 +0200 Subject: [PATCH] Added code to templates to ensure correct generation of code for Swift3 (#5390) * Added code to templates to ensure generation of code for Swift3 that builds on both Apple platforms and Linux. Fixed a bug in the Model decoders that prevented code from building for Linux * Ran the script to generate the PetStore API --- .../src/main/resources/swift3/AlamofireImplementations.mustache | 1 + .../src/main/resources/swift3/Extensions.mustache | 1 + .../swagger-codegen/src/main/resources/swift3/Models.mustache | 2 +- modules/swagger-codegen/src/main/resources/swift3/api.mustache | 1 + .../default/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift | 1 + .../default/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift | 1 + .../default/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift | 1 + .../default/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift | 1 + .../Classes/Swaggers/AlamofireImplementations.swift | 1 + .../default/PetstoreClient/Classes/Swaggers/Extensions.swift | 1 + .../swift3/default/PetstoreClient/Classes/Swaggers/Models.swift | 2 +- .../PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift | 1 + .../PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift | 1 + .../PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift | 1 + .../PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift | 1 + .../Classes/Swaggers/AlamofireImplementations.swift | 1 + .../promisekit/PetstoreClient/Classes/Swaggers/Extensions.swift | 1 + .../promisekit/PetstoreClient/Classes/Swaggers/Models.swift | 2 +- .../rxswift/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift | 1 + .../rxswift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift | 1 + .../rxswift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift | 1 + .../rxswift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift | 1 + .../Classes/Swaggers/AlamofireImplementations.swift | 1 + .../rxswift/PetstoreClient/Classes/Swaggers/Extensions.swift | 1 + .../swift3/rxswift/PetstoreClient/Classes/Swaggers/Models.swift | 2 +- 25 files changed, 25 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/swift3/AlamofireImplementations.mustache b/modules/swagger-codegen/src/main/resources/swift3/AlamofireImplementations.mustache index 8ef9da6b3b1..35d187923f4 100644 --- a/modules/swagger-codegen/src/main/resources/swift3/AlamofireImplementations.mustache +++ b/modules/swagger-codegen/src/main/resources/swift3/AlamofireImplementations.mustache @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire class AlamofireRequestBuilderFactory: RequestBuilderFactory { diff --git a/modules/swagger-codegen/src/main/resources/swift3/Extensions.mustache b/modules/swagger-codegen/src/main/resources/swift3/Extensions.mustache index 4d8918a616b..3bcd23e4b34 100644 --- a/modules/swagger-codegen/src/main/resources/swift3/Extensions.mustache +++ b/modules/swagger-codegen/src/main/resources/swift3/Extensions.mustache @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire{{#usePromiseKit}} import PromiseKit{{/usePromiseKit}} diff --git a/modules/swagger-codegen/src/main/resources/swift3/Models.mustache b/modules/swagger-codegen/src/main/resources/swift3/Models.mustache index a0b0c259b6e..7f6e5bd9403 100644 --- a/modules/swagger-codegen/src/main/resources/swift3/Models.mustache +++ b/modules/swagger-codegen/src/main/resources/swift3/Models.mustache @@ -70,7 +70,7 @@ class Decoders { static func decode(clazz: T.Type, source: AnyObject, instance: AnyObject?) -> T { initialize() if T.self is Int32.Type && source is NSNumber { - return source.int32Value as! T; + return (source as! NSNumber).int32Value as! T; } if T.self is Int64.Type && source is NSNumber { return source.int64Value as! T; diff --git a/modules/swagger-codegen/src/main/resources/swift3/api.mustache b/modules/swagger-codegen/src/main/resources/swift3/api.mustache index 495762a46a9..371057a682e 100644 --- a/modules/swagger-codegen/src/main/resources/swift3/api.mustache +++ b/modules/swagger-codegen/src/main/resources/swift3/api.mustache @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire{{#usePromiseKit}} import PromiseKit{{/usePromiseKit}}{{#useRxSwift}} import RxSwift{{/useRxSwift}} diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift index 51e54c5af34..36969deb653 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift index 7378416c9c4..ddb79ca09ee 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift index f6b937da861..9ad185d9c0a 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift index b07b5c89faf..5f5d7754609 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift index 8ef9da6b3b1..35d187923f4 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire class AlamofireRequestBuilderFactory: RequestBuilderFactory { diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Extensions.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Extensions.swift index ebb5a78e161..8fcf71332ae 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Extensions.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Extensions.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire extension Bool: JSONEncodable { diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Models.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Models.swift index a9f80d6961b..79af37e3021 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Models.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Models.swift @@ -70,7 +70,7 @@ class Decoders { static func decode(clazz: T.Type, source: AnyObject, instance: AnyObject?) -> T { initialize() if T.self is Int32.Type && source is NSNumber { - return source.int32Value as! T; + return (source as! NSNumber).int32Value as! T; } if T.self is Int64.Type && source is NSNumber { return source.int64Value as! T; diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift index 3847ae1dc6a..0e217357c88 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import PromiseKit diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift index c1dbe4ed14a..cedd7e12c5a 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import PromiseKit diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift index 369138f1d01..abef290860d 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import PromiseKit diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift index 9530e6edb81..2e7a5a2da0c 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import PromiseKit diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift index 8ef9da6b3b1..35d187923f4 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire class AlamofireRequestBuilderFactory: RequestBuilderFactory { diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Extensions.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Extensions.swift index 221636e5fac..0268660cd6b 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Extensions.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Extensions.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import PromiseKit diff --git a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Models.swift b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Models.swift index dbf9aadf8f2..2fe841e1d92 100644 --- a/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Models.swift +++ b/samples/client/petstore/swift3/promisekit/PetstoreClient/Classes/Swaggers/Models.swift @@ -70,7 +70,7 @@ class Decoders { static func decode(clazz: T.Type, source: AnyObject, instance: AnyObject?) -> T { initialize() if T.self is Int32.Type && source is NSNumber { - return source.int32Value as! T; + return (source as! NSNumber).int32Value as! T; } if T.self is Int64.Type && source is NSNumber { return source.int64Value as! T; diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift index 976fa6cc0da..abcbfe8d0b7 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/FakeAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import RxSwift diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift index 524ed037b61..87af8e2606a 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import RxSwift diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift index 5177e56f53c..45af2fe899d 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import RxSwift diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift index 1b7ce47f4ae..2bfdebd0c46 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift @@ -5,6 +5,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire import RxSwift diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift index 8ef9da6b3b1..35d187923f4 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/AlamofireImplementations.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire class AlamofireRequestBuilderFactory: RequestBuilderFactory { diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Extensions.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Extensions.swift index ebb5a78e161..8fcf71332ae 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Extensions.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Extensions.swift @@ -4,6 +4,7 @@ // https://github.com/swagger-api/swagger-codegen // +import Foundation import Alamofire extension Bool: JSONEncodable { diff --git a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Models.swift b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Models.swift index dbf9aadf8f2..2fe841e1d92 100644 --- a/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Models.swift +++ b/samples/client/petstore/swift3/rxswift/PetstoreClient/Classes/Swaggers/Models.swift @@ -70,7 +70,7 @@ class Decoders { static func decode(clazz: T.Type, source: AnyObject, instance: AnyObject?) -> T { initialize() if T.self is Int32.Type && source is NSNumber { - return source.int32Value as! T; + return (source as! NSNumber).int32Value as! T; } if T.self is Int64.Type && source is NSNumber { return source.int64Value as! T;