Merge pull request #13 from TouchInstinct/bugs/null_collections_fix

fixed unmodifiableColletion(null) bug
This commit is contained in:
Gavriil 2017-06-09 16:48:35 +03:00 committed by GitHub
commit 408ec7ab39
1 changed files with 20 additions and 4 deletions

View File

@ -585,9 +585,17 @@ class FieldInfo {
}
if (type == FieldType.LIST) {
builder.addStatement("return \$T.unmodifiableList(\$L)", Types.COLLECTIONS, name)
if (couldContainsNull()) {
builder.addStatement("return \$L != null ? \$T.unmodifiableList(\$L) : null", name, Types.COLLECTIONS, name)
} else {
builder.addStatement("return \$T.unmodifiableList(\$L)", Types.COLLECTIONS, name)
}
} else if (type == FieldType.MAP) {
builder.addStatement("return \$T.unmodifiableMap(\$L)", Types.COLLECTIONS, name)
if (couldContainsNull()) {
builder.addStatement("return \$L != null ? \\$T.unmodifiableMap(\\$L) : null", name, Types.COLLECTIONS, name)
} else {
builder.addStatement("return \$T.unmodifiableMap(\$L)", name, Types.COLLECTIONS, name)
}
} else {
builder.addStatement("return \$L", name)
}
@ -606,9 +614,17 @@ class FieldInfo {
.addParameter(parameterBuilder.build())
if (type == FieldType.LIST) {
builder.addStatement("this.\$L = new \$T<>(\$L)", name, Types.ARRAY_LIST, name)
if (couldContainsNull()) {
builder.addStatement("this.\$L = \$L !=null ? new \$T<>(\$L) : null", name, name, Types.ARRAY_LIST, name)
} else {
builder.addStatement("this.\$L = new \$T<>(\$L)", name, Types.ARRAY_LIST, name)
}
} else if (type == FieldType.MAP) {
builder.addStatement("this.\$L = new \$T<>(\$L)", name, Types.HASH_MAP, name)
if (couldContainsNull()) {
builder.addStatement("this.\$L = \$L !=null ? new \$T<>(\$L) : null", name, name, Types.HASH_MAP, name)
} else {
builder.addStatement("this.\$L = new \$T<>(\$L)", name, name, Types.HASH_MAP, name)
}
} else {
builder.addStatement("this.\$L = \$L", name, name)
}