Dev: fix AnyCodable basic type encoding
This commit is contained in:
parent
6883ee4c5c
commit
fc83412915
|
@ -520,6 +520,12 @@ extension JavaEncoder {
|
|||
}
|
||||
else if T.self == AnyCodable.self {
|
||||
let anyCodableValue = value as! AnyCodable
|
||||
if let javaClassname = JavaCoderConfig.codableClassNames[anyCodableValue.typeName] {
|
||||
let encodableClosure = JavaCoderConfig.encodableClosures[anyCodableValue.typeName]!
|
||||
let javaObject = try encodableClosure(anyCodableValue.value)
|
||||
storage = JNIStorageObject(type: .object(className: javaClassname), javaObject: javaObject)
|
||||
}
|
||||
else {
|
||||
let storageType: JNIStorageType
|
||||
let fullClassName: String
|
||||
if anyCodableValue.typeName == AnyCodable.DictionaryTypeName {
|
||||
|
@ -530,10 +536,6 @@ extension JavaEncoder {
|
|||
fullClassName = ArrayListClassname
|
||||
storageType = .anyCodable(codable: .array)
|
||||
}
|
||||
else if let javaClassname = JavaCoderConfig.codableClassNames[anyCodableValue.typeName] {
|
||||
fullClassName = javaClassname
|
||||
storageType = .anyCodable(codable: .object(className: fullClassName))
|
||||
}
|
||||
else {
|
||||
fullClassName = package + "/" + anyCodableValue.typeName
|
||||
storageType = .anyCodable(codable: .object(className: fullClassName))
|
||||
|
@ -547,6 +549,7 @@ extension JavaEncoder {
|
|||
javaObjects.append(storage)
|
||||
try anyCodableValue.encode(to: self)
|
||||
}
|
||||
}
|
||||
else if Mirror(reflecting: value).displayStyle == .enum {
|
||||
let fullClassName = package + "/" + String(describing: type(of: value))
|
||||
// We don't create object for enum. Should be created at JavaEnumValueEncodingContainer
|
||||
|
|
Loading…
Reference in New Issue