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 id1 == id2;
    } else {
      var id2 = entityHandler1.resolveID(value2);
      return id1 == id2;
    }
  } else if (entityHandler2 != null) {
    var id1 = entityHandler2.resolveID(value1);
    var id2 = entityHandler2.getID(value2);
    return id1 == id2;
  } else if (entityHandler != null) {
    var id1 = entityHandler.resolveID(value1);
    var id2 = entityHandler.resolveID(value2);
    return id1 == id2;
  }

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