JoinOperator.fromJson constructor
JoinOperator.fromJson(
- Object? json_
Returns a new instance from a JSON value. May throw if the value does not have the expected structure.
Implementation
factory JoinOperator.fromJson(Object? json_) {
Object? json = json_;
if (json is Map) {
final MapEntry(:key, :value) =
json.entries.firstWhere((e) => e.key != 'runtimeType');
json = (
key is int ? key : _spec.cases.indexWhere((c) => c.label == key),
value,
);
}
return switch (json) {
(0, final value) ||
[0, final value] =>
JoinOperatorInner(JoinConstraint.fromJson(value)),
(1, final value) ||
[1, final value] =>
JoinOperatorLeftOuter(JoinConstraint.fromJson(value)),
(2, final value) ||
[2, final value] =>
JoinOperatorRightOuter(JoinConstraint.fromJson(value)),
(3, final value) ||
[3, final value] =>
JoinOperatorFullOuter(JoinConstraint.fromJson(value)),
(4, null) || [4, null] => const JoinOperatorCrossJoin(),
(5, final value) ||
[5, final value] =>
JoinOperatorLeftSemi(JoinConstraint.fromJson(value)),
(6, final value) ||
[6, final value] =>
JoinOperatorRightSemi(JoinConstraint.fromJson(value)),
(7, final value) ||
[7, final value] =>
JoinOperatorLeftAnti(JoinConstraint.fromJson(value)),
(8, final value) ||
[8, final value] =>
JoinOperatorRightAnti(JoinConstraint.fromJson(value)),
(9, null) || [9, null] => const JoinOperatorCrossApply(),
(10, null) || [10, null] => const JoinOperatorOuterApply(),
_ => throw Exception('Invalid JSON $json_'),
};
}