findPrimaryFieldInList function

FieldElement? findPrimaryFieldInList(
  1. OrmBuildContext ctx,
  2. Iterable<FieldElement> fields
)

Implementation

FieldElement? findPrimaryFieldInList(
    OrmBuildContext ctx, Iterable<FieldElement> fields) {
  for (var field_ in fields) {
    var field = field_ is RelationFieldImpl ? field_.originalField : field_;
    var element = _findElement(field);
    // print(
    //     'Searching in ${ctx.buildContext.originalClassName}=>${field?.name} (${field.runtimeType})');
    // Check for column annotation...
    var columnAnnotation = columnTypeChecker.firstAnnotationOf(element);

    if (columnAnnotation != null) {
      var column = reviveColumn(ConstantReader(columnAnnotation));
      // print(
      //     '  * Found column on ${field.name} with indexType = ${column.indexType}');
      // print(element.metadata);
      if (column.indexType == IndexType.primaryKey) return field;
    }
  }

  var specialId = fields.firstWhereOrNull((f) => isSpecialId(ctx, f));
  // print(
  //     'Special ID on ${ctx.buildContext.originalClassName} => ${specialId?.name}');
  return specialId;
}