filterOnSave method

  1. @override
  2. @protected
  3. @mustCallSuper
DynamicMap filterOnSave(
  1. DynamicMap rawData
)
override

You can filter the data to be saved.

rawData will be the data that will be decoded and stored in DynamicMap.

The value returned is stored as data.

保存するデータをフィルターすることができます。

rawDataDynamicMapにデコードされた保存されるデータになります。

戻り値に返した値がデータとして保存されます。

Implementation

@override
@protected
@mustCallSuper
DynamicMap filterOnSave(DynamicMap rawData) {
  assert(
    searchValueFieldKey.isNotEmpty,
    "[searchValueFieldKey] is empty. Please specify a non-empty string.",
  );
  final searchText = buildSearchText(fromMap(rawData));
  if (searchText.isEmpty) {
    return super.filterOnSave(rawData);
  }
  return super.filterOnSave(
    Map.unmodifiable({
      ...rawData,
      searchValueFieldKey: searchText
          .replaceAll(" ", " ")
          .split(" ")
          .expand(
            (e) => e
                .toLowerCase()
                .replaceAll(".", "")
                .toHankakuNumericAndAlphabet()
                .toZenkakuKatakana()
                .toKatakana()
                .splitByCharacterAndBigram(),
          )
          .distinct()
          .toMap((e) => MapEntry(e, true)),
    }),
  );
}