CollationOptions.fromMap constructor

CollationOptions.fromMap(
  1. Map<String, Object> collationMap
)

A constructor that accepts a Map with the following schema: { locale:

Implementation

factory CollationOptions.fromMap(Map<String, Object> collationMap) {
  if (collationMap[keyLocale] is! String) {
    throw MongoDartError('$keyLocale must be of type String');
  }
  if (collationMap[keyCaseLevel] != null &&
      collationMap[keyCaseLevel] is! bool) {
    throw MongoDartError('$keyCaseLevel must be of type bool');
  }
  if (collationMap[keyCaseFirst] != null &&
      collationMap[keyCaseFirst] is! String) {
    throw MongoDartError('$keyCaseFirst must be of type String');
  }
  if (collationMap[keyStrength] != null &&
      collationMap[keyStrength] is! int) {
    throw MongoDartError('$keyStrength must be of type int');
  }
  if (collationMap[keyNumericOrdering] != null &&
      collationMap[keyNumericOrdering] is! bool) {
    throw MongoDartError('$keyNumericOrdering must be of type bool');
  }
  if (collationMap[keyAlternate] != null &&
      collationMap[keyAlternate] is! String) {
    throw MongoDartError('$keyAlternate must be of type String');
  }
  if (collationMap[keyMaxVariable] != null &&
      collationMap[keyMaxVariable] is! String) {
    throw MongoDartError('$keyMaxVariable must be of type String');
  }
  if (collationMap[keyBackwards] != null &&
      collationMap[keyBackwards] is! bool) {
    throw MongoDartError('$keyBackwards must be of type bool');
  }
  if (collationMap[keyNormalization] != null &&
      collationMap[keyNormalization] is! bool) {
    throw MongoDartError('$keyNormalization must be of type bool');
  }

  return CollationOptions(collationMap[keyLocale] as String,
      caseLevel: collationMap[keyCaseLevel] as bool? ?? false,
      caseFirst: collationMap[keyCaseFirst] as String?,
      strength: collationMap[keyStrength] as int?,
      numericOrdering: collationMap[keyNumericOrdering] as bool? ?? false,
      alternate: collationMap[keyAlternate] as String?,
      maxVariable: collationMap[keyMaxVariable] as String?,
      backwards: collationMap[keyBackwards] as bool? ?? false,
      normalization: collationMap[keyNormalization] as bool? ?? false);
}