WebViewDataClearingResult constructor

WebViewDataClearingResult({
  1. Set<WebViewDataType> clearedDataTypes = const <WebViewDataType>{},
  2. Set<WebViewDataType> unsupportedDataTypes = const <WebViewDataType>{},
  3. Map<WebViewDataType, String> failures = const <WebViewDataType, String>{},
})

Creates a website data clearing result.

Implementation

WebViewDataClearingResult({
  Set<WebViewDataType> clearedDataTypes = const <WebViewDataType>{},
  Set<WebViewDataType> unsupportedDataTypes = const <WebViewDataType>{},
  Map<WebViewDataType, String> failures = const <WebViewDataType, String>{},
}) : clearedDataTypes = UnmodifiableSetView<WebViewDataType>(
       Set<WebViewDataType>.of(clearedDataTypes),
     ),
     unsupportedDataTypes = UnmodifiableSetView<WebViewDataType>(
       Set<WebViewDataType>.of(unsupportedDataTypes),
     ),
     failures = UnmodifiableMapView<WebViewDataType, String>(
       Map<WebViewDataType, String>.of(failures),
     ) {
  final Set<WebViewDataType> classified = <WebViewDataType>{
    ...this.clearedDataTypes,
    ...this.unsupportedDataTypes,
    ...this.failures.keys,
  };
  final int classificationCount =
      this.clearedDataTypes.length +
      this.unsupportedDataTypes.length +
      this.failures.length;
  if (classified.length != classificationCount) {
    throw ArgumentError(
      'A website data type cannot have more than one clearing outcome.',
    );
  }
  if (!classified.containsAll(WebViewDataType.values)) {
    throw ArgumentError(
      'Every website data type must have exactly one clearing outcome.',
    );
  }
}