when<T> method

T? when<T>({
  1. T notNull(
    1. NotNull
    )?,
  2. T nullable(
    1. NullColumnConstraint
    )?,
  3. T primaryKey(
    1. PrimaryKeyColumn
    )?,
  4. T unique(
    1. UniqueColumn
    )?,
  5. T check(
    1. CheckColumn
    )?,
  6. T isDefault(
    1. Default
    )?,
  7. T collate(
    1. CollateConstraint
    )?,
  8. T foreignKey(
    1. ForeignKeyColumnConstraint
    )?,
  9. T mappedBy(
    1. MappedBy
    )?,
  10. T generatedAs(
    1. GeneratedAs
    )?,
})

Implementation

T? when<T>({
  T Function(NotNull)? notNull,
  T Function(NullColumnConstraint)? nullable,
  T Function(PrimaryKeyColumn)? primaryKey,
  T Function(UniqueColumn)? unique,
  T Function(CheckColumn)? check,
  T Function(Default)? isDefault,
  T Function(CollateConstraint)? collate,
  T Function(ForeignKeyColumnConstraint)? foreignKey,
  T Function(MappedBy)? mappedBy,
  T Function(GeneratedAs)? generatedAs,
}) {
  if (this is NotNull) {
    return notNull?.call(this as NotNull);
  } else if (this is NullColumnConstraint) {
    return nullable?.call(this as NullColumnConstraint);
  } else if (this is PrimaryKeyColumn) {
    return primaryKey?.call(this as PrimaryKeyColumn);
  } else if (this is UniqueColumn) {
    return unique?.call(this as UniqueColumn);
  } else if (this is CheckColumn) {
    return check?.call(this as CheckColumn);
  } else if (this is Default) {
    return isDefault?.call(this as Default);
  } else if (this is CollateConstraint) {
    return collate?.call(this as CollateConstraint);
  } else if (this is ForeignKeyColumnConstraint) {
    return foreignKey?.call(this as ForeignKeyColumnConstraint);
  } else if (this is MappedBy) {
    return mappedBy?.call(this as MappedBy);
  } else if (this is GeneratedAs) {
    return generatedAs?.call(this as GeneratedAs);
  } else {
    throw Exception('Did not expect $runtimeType as a ColumnConstraint');
  }
}