equalsValuesEntity static method

bool? equalsValuesEntity(
  1. Object value1,
  2. Object value2, {
  3. EntityHandler? entityHandler,
})

Implementation

static bool? equalsValuesEntity(
  Object value1,
  Object value2, {
  EntityHandler? entityHandler,
}) {
  if (value1 is EntityReference) {
    return value1.equalsEntityID(value2);
  } else if (value2 is EntityReference) {
    return value2.equalsEntityID(value1);
  }

  var reflectionFactory = ReflectionFactory();

  EntityHandler? entityHandler1 = value1.isPrimitiveValue
      ? null
      : reflectionFactory
                .getRegisterClassReflection(value1.runtimeType)
                ?.entityHandler ??
            EntityHandlerProvider.globalProvider.getEntityHandler(
              obj: value1,
            );

  EntityHandler? entityHandler2 = value2.isPrimitiveValue
      ? null
      : reflectionFactory
                .getRegisterClassReflection(value2.runtimeType)
                ?.entityHandler ??
            EntityHandlerProvider.globalProvider.getEntityHandler(
              obj: value2,
            );

  if (entityHandler1 != null) {
    var id1 = entityHandler1.getID(value1);

    if (entityHandler2 != null) {
      if (entityHandler1 != entityHandler2) return false;
      var id2 = entityHandler2.getID(value2);
      return _equalsIDs(id1, id2);
    } else {
      var id2 = entityHandler1.resolveID(value2);
      return _equalsIDs(id1, id2);
    }
  } else if (entityHandler2 != null) {
    var id1 = entityHandler2.resolveID(value1);
    var id2 = entityHandler2.getID(value2);
    return _equalsIDs(id1, id2);
  } else if (entityHandler != null) {
    var id1 = entityHandler.resolveID(value1);
    var id2 = entityHandler.resolveID(value2);
    return _equalsIDs(id1, id2);
  }

  return equalsValuesEntityMap(value1, value2, entityHandler: entityHandler);
}