Add alias type definitions for Java

When a spec defines a Model at the top level that is a non-aggretate type (such
as string, number or boolean), it essentially represents an alias for the simple
type. For example, the following spec snippet creates an alias of the boolean
type that for all intents and purposes acts just like a regular boolean.

    definitions:
      JustABoolean:
        type: boolean

This can be modeled in some languages through built-in mechanisms, such as
typedefs in C++. Java, however, just not have a clean way of representing this.

This change introduces an internal mechanism for representing aliases. It
maintains a map in DefaultCodegen that tracks these types of definitions, and
wherever it sees the "JustABoolean" type in the spec, it generates code that
uses the built-in "Boolean" instead.

This functionality currenlty only applies to Java, but could be extended to
other languages later.

The change adds a few examples of this to the fake endpoint spec for testing,
which means all of the samples change as well.
This commit is contained in:
Benjamin Douglas
2017-04-17 12:39:49 -07:00
parent b1a39ac820
commit 9058099e5b
279 changed files with 25635 additions and 1370 deletions

View File

@@ -0,0 +1,42 @@
# coding: utf-8
"""
Swagger Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
Contact: apiteam@swagger.io
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
from __future__ import absolute_import
import os
import sys
import unittest
import petstore_api
from petstore_api.rest import ApiException
from petstore_api.models.outer_boolean import OuterBoolean
class TestOuterBoolean(unittest.TestCase):
""" OuterBoolean unit test stubs """
def setUp(self):
pass
def tearDown(self):
pass
def testOuterBoolean(self):
"""
Test OuterBoolean
"""
model = petstore_api.models.outer_boolean.OuterBoolean()
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,42 @@
# coding: utf-8
"""
Swagger Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
Contact: apiteam@swagger.io
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
from __future__ import absolute_import
import os
import sys
import unittest
import petstore_api
from petstore_api.rest import ApiException
from petstore_api.models.outer_composite import OuterComposite
class TestOuterComposite(unittest.TestCase):
""" OuterComposite unit test stubs """
def setUp(self):
pass
def tearDown(self):
pass
def testOuterComposite(self):
"""
Test OuterComposite
"""
model = petstore_api.models.outer_composite.OuterComposite()
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,42 @@
# coding: utf-8
"""
Swagger Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
Contact: apiteam@swagger.io
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
from __future__ import absolute_import
import os
import sys
import unittest
import petstore_api
from petstore_api.rest import ApiException
from petstore_api.models.outer_number import OuterNumber
class TestOuterNumber(unittest.TestCase):
""" OuterNumber unit test stubs """
def setUp(self):
pass
def tearDown(self):
pass
def testOuterNumber(self):
"""
Test OuterNumber
"""
model = petstore_api.models.outer_number.OuterNumber()
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,42 @@
# coding: utf-8
"""
Swagger Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
Contact: apiteam@swagger.io
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
from __future__ import absolute_import
import os
import sys
import unittest
import petstore_api
from petstore_api.rest import ApiException
from petstore_api.models.outer_string import OuterString
class TestOuterString(unittest.TestCase):
""" OuterString unit test stubs """
def setUp(self):
pass
def tearDown(self):
pass
def testOuterString(self):
"""
Test OuterString
"""
model = petstore_api.models.outer_string.OuterString()
if __name__ == '__main__':
unittest.main()