Skip to content

Commit

Permalink
Handle arrays of DictionaryType in javaFuncs.getJavaType()
Browse files Browse the repository at this point in the history
  • Loading branch information
SpeedsterF2 committed Apr 3, 2024
1 parent c6c99a6 commit d71205e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 6.5.1
* Handle arrays of DictionaryType in javaFuncs.getJavaType()

# 6.5.0
* Introduce 'format' attribute to StringType

Expand Down
7 changes: 6 additions & 1 deletion tests/generators/test_javaFuncs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import yacg.model.model as model

from yacg.model.model import IntegerType, IntegerTypeFormatEnum, NumberType, NumberTypeFormatEnum
from yacg.model.model import StringType, EnumType #, DictionaryType
from yacg.model.model import StringType, EnumType, DictionaryType
from yacg.model.model import DateType, TimeType, DateTimeType, UuidType
from yacg.model.model import ComplexType, BytesType, ObjectType
import yacg.generators.helper.javaFuncs as javaFuncs
Expand Down Expand Up @@ -164,6 +164,11 @@ def testgetJavaTypes(self):
self.assertEqual('Foo', javaFuncs.getJavaType(enumType, False))
self.assertEqual('java.util.List<Foo>', javaFuncs.getJavaType(enumType, True))

dictType = DictionaryType()
dictType.valueType = UuidType()
self.assertEqual('java.util.Map<String, java.util.UUID>', javaFuncs.getJavaType(dictType, False))
self.assertEqual('java.util.List<java.util.Map<String, java.util.UUID>>', javaFuncs.getJavaType(dictType, True))

def testJavaFuncs(self):
myType = getExampleType()
self.assertEqual('ExampleType', myType.name)
Expand Down
2 changes: 1 addition & 1 deletion yacg/generators/helper/javaFuncs.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def getJavaType(typeObj, isArray):
elif isinstance(typeObj, model.DateTimeType):
return 'java.time.LocalDateTime' if not isArray else 'java.util.List<java.time.LocalDateTime>'
elif isinstance(typeObj, model.DictionaryType):
return 'java.util.Map<String, {}>'.format(getJavaType(typeObj.valueType, False))
return 'java.util.Map<String, {}>'.format(getJavaType(typeObj.valueType, False)) if not isArray else 'java.util.List<java.util.Map<String, {}>>'.format(getJavaType(typeObj.valueType, False))
elif isinstance(typeObj, model.ComplexType):
return typeObj.name if not isArray else 'java.util.List<{}>'.format(typeObj.name)
else:
Expand Down

0 comments on commit d71205e

Please sign in to comment.