IMap<K, V> constructor
IMap<K, V> ()
Creates an empty IMap.
K
must be of type Guid
or String
and V
must be of type
Object?
or String
.
Implementation
factory IMap() {
if (isSameType<K, Guid>() && isSimilarType<V, Object>()) {
final mediaPropertySet = MediaPropertySet();
final mapPtr = mediaPropertySet.toInterface(IID_IMap_Guid_Object);
mediaPropertySet.release();
return IMap.fromRawPointer(mapPtr,
iterableIid: IID_IIterable_IKeyValuePair_Guid_Object);
}
if (isSameType<K, String>()) {
if (isSameType<V, String>()) {
final stringMap = StringMap();
final mapPtr = stringMap.toInterface(IID_IMap_String_String);
stringMap.release();
return IMap.fromRawPointer(mapPtr,
iterableIid: IID_IIterable_IKeyValuePair_String_String);
}
if (isSimilarType<V, Object>()) {
final propertySet = PropertySet();
final mapPtr = propertySet.toInterface(IID_IMap_String_Object);
propertySet.release();
return IMap.fromRawPointer(mapPtr,
iterableIid: IID_IIterable_IKeyValuePair_String_Object);
}
}
throw ArgumentError('Unsupported key-value pair: IMap<$K, $V>');
}