castSet method

Set castSet(
  1. Set set, {
  2. bool nullable = false,
})

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;
  }
}