castSet method
Casts set
to this type (Set<T>
) if a ClassReflection or EnumReflection
for T
is registered at ReflectionFactory.
Implementation
Set castSet(Set set, {bool nullable = false}) {
var mainType = isCollection ? (argumentType(0) ?? TypeInfo.tDynamic) : this;
var reflectionFactory = ReflectionFactory();
var reflection =
reflectionFactory.getRegisterClassReflection(mainType.type) ??
reflectionFactory.getRegisterEnumReflection(mainType.type);
if (reflection != null) {
return reflection.castSet(set, mainType.type, nullable: nullable) ?? set;
}
if (mainType.isValidGenericType) {
return mainType.callCasted(<E>() => set.cast<E>());
} else {
return set;
}
}