getEntityHandler<T> method

  1. @override
EntityHandler<T>? getEntityHandler<T>({
  1. T? obj,
  2. Type? type,
  3. String? typeName,
  4. EntityHandler? knownEntityHandler,
})
override

Implementation

@override
EntityHandler<T>? getEntityHandler<T>(
    {T? obj,
    Type? type,
    String? typeName,
    EntityHandler? knownEntityHandler}) {
  var entityHandler = super.getEntityHandler<T>(
      obj: obj,
      type: type,
      typeName: typeName,
      knownEntityHandler: knownEntityHandler);
  if (entityHandler != null) {
    return entityHandler;
  }

  var objType = obj?.runtimeType;

  if (obj is EntityReference) {
    objType = obj.type;
    obj = obj.entity;
  }

  var classReflectionForType =
      reflection.siblingClassReflectionFor<T>(obj: obj, type: type);

  if (classReflectionForType != null) {
    return classReflectionForType.entityHandler;
  }

  entityHandler =
      ReflectionFactory().getRegisterEntityHandler<T>(type ?? objType);
  return entityHandler;
}