JMap<K, V>.fromPointer constructor

JMap<K, V>.fromPointer(
  1. Pointer<Void> ptr, {
  2. String clsName = _jMapCls,
})

Implementation

JMap.fromPointer(Pointer<Void> ptr, {String clsName = _jMapCls})
    : super.fromPointer(ptr, clsName) {
  Set keySet = JSet<K>.fromPointer(
          (callMethodSync('keySet', 'Ljava/util/Set;') as JObject).pointer)
      .raw;
  Map temp = {};
  String itemType = '';
  for (var key in keySet) {
    dynamic item = callMethodSync('get', 'Ljava/lang/Object;',
        args: [boxingWrapperClass(key)],
        assignedSignature: ['Ljava/lang/Object;']);
    final valueConvertor = getRegisterPointerConvertor(V.toString());
    if (valueConvertor != null) {
      temp[key] = valueConvertor((item as JObject).pointer);
      continue;
    }
    if (item is String) {
      temp[key] = unBoxingWrapperClass(item, 'java/lang/String');
      continue;
    }
    if (itemType == '') {
      itemType = (item as JObject).className!;
    }
    temp[key] = unBoxingWrapperClass((item as JObject).pointer, itemType);
  }
  raw = temp;
}