isSiblingEntityType method

bool isSiblingEntityType(
  1. EntityRepository<Object> tableRepository,
  2. Type columnType, {
  3. EntityRepository<Object>? columnRepository,
})

Returns true if columnType is a sibling of the tableRepository.

Implementation

bool isSiblingEntityType(EntityRepository tableRepository, Type columnType,
    {EntityRepository? columnRepository}) {
  columnRepository ??= getEntityRepositoryByType(columnType);
  if (columnRepository == null) return false;

  if (tableRepository is DBEntityRepository) {
    var tableAdapter = tableRepository.repositoryAdapter.databaseAdapter;

    if (columnRepository is DBEntityRepository) {
      var columnAdapter = columnRepository.repositoryAdapter.databaseAdapter;
      if (columnAdapter != tableAdapter) {
        return false;
      }
    }
  } else if (tableRepository.provider != columnRepository.provider) {
    return false;
  }

  return true;
}