call method

  1. @override
Object? call(
  1. Interpreter interpreter,
  2. List<Object?> arguments,
  3. Map<Symbol, Object?> namedArguments
)
override

Implementation

@override
Object? call(Interpreter interpreter, List<Object?> arguments,
    Map<Symbol, Object?> namedArguments) {
  var image = namedArguments[const Symbol('image')];
  if (image == null) {
    throw "image required in DecorationImage";
  }
  BoxFit? fit;
  var fitParsed = namedArguments[const Symbol('fit')];
  if (fitParsed != null) {
    fit = fitParsed as BoxFit;
  }
  double scale = parseDouble(namedArguments[const Symbol('scale')]) ?? 1.0;
  ImageRepeat repeat = ImageRepeat.noRepeat;
  var repeatParsed = namedArguments[const Symbol('repeat')];
  if (repeatParsed != null) {
    repeat = repeatParsed as ImageRepeat;
  }
  AlignmentGeometry alignment = Alignment.center;
  var alignmentParse = namedArguments[const Symbol('alignment')];
  if (alignmentParse != null) {
    alignment = alignmentParse as AlignmentGeometry;
  }
  return DecorationImage(
      repeat: repeat,
      alignment: alignment,
      image: image as ImageProvider,
      fit: fit,
      scale: scale);
}