linkInternal<E> method

QueryBuilder<OBJ, R, QAfterFilterCondition> linkInternal<E>(
  1. IsarCollection<E> targetCollection,
  2. FilterQuery<E> q,
  3. String linkName
)

Implementation

QueryBuilder<OBJ, R, QAfterFilterCondition> linkInternal<E>(
  IsarCollection<E> targetCollection,
  FilterQuery<E> q,
  String linkName,
) {
  final qb = q(QueryBuilder(targetCollection, false, _whereSort));
  final qbFinished = qb.andOrInternal(FilterGroupType.or);

  final conditions = qbFinished._filterOr.filters;
  if (conditions.isEmpty) {
    return copyWith();
  }

  FilterOperation filter;
  if (conditions.length == 1) {
    filter = conditions[0];
  } else {
    filter = qbFinished._filterOr;
  }
  return addFilterCondition(LinkFilter(
    targetCollection: targetCollection,
    filter: filter,
    linkName: linkName,
  ));
}