class ShapeViewDecoratorAnimation extends AbstractAnimation<LienzoShapeView<?>> {

    @Override
    public AnimationHandle run() {
        final List<IAnimationHandle> handles = new LinkedList<>();
        getDecorators().forEach(dec -> handles.add(animate(dec)));
        return new AnimationHandle() {

            @Override
            public AnimationHandle run() {
                handles.forEach(IAnimationHandle::run);
                return this;
            }

            @Override
            public AnimationHandle stop() {
                handles.forEach(IAnimationHandle::stop);
                return this;
            }

            @Override
            public boolean isRunning() {
                for (IAnimationHandle h : handles) {
                    if (h.isRunning()) {
                        return true;
                    }
                }
                return false;
            }
        };
    }

      ShapeViewDecoratorAnimation(final Supplier<LienzoShapeView<?>> shapeView,
                                final String fillColor,
                                final double fillAlpha);
      ShapeViewDecoratorAnimation(final Supplier<LienzoShapeView<?>> shapeView,
                                final String strokeColor,
                                final double strokeWidth,
                                final double strokeAlpha);

}