@Override
    public void setValue(ScaledImageProvider imageProvider) {
      this.imageProvider =
        imageProvider instanceof CachedScaledImageProvider ?
        (CachedScaledImageProvider)imageProvider :
        imageProvider != null ? (zoom, ancestor) -> imageProvider.apply(zoom, ancestor) :
        null;

      cachedBounds.clear();
      fireChangeEvent(new ChangeEvent(this));
    }
@Override
    public void setValue(ScaledImageProvider imageProvider)