From 259d36ec6783dfc409f1606376aa9ba0b73cb574 Mon Sep 17 00:00:00 2001 From: a23022716 <celia.arezki.1@etu.univ-amu.fr> Date: Fri, 27 Sep 2024 11:59:33 +0200 Subject: [PATCH] The Decorator class adds functionality to the shapes. It also implements Shape and delegates method calls to the decorated shape. --- src/main/java/shape/Decorator.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/shape/Decorator.java diff --git a/src/main/java/shape/Decorator.java b/src/main/java/shape/Decorator.java new file mode 100644 index 0000000..d2428a0 --- /dev/null +++ b/src/main/java/shape/Decorator.java @@ -0,0 +1,29 @@ +package shape; +import javafx.scene.canvas.GraphicsContext; +import javafx.geometry.Point2D; + +public abstract class Decorator implements Shape { + protected Shape decoratedShape; + + public Decorator(Shape decoratedShape) { + this.decoratedShape = decoratedShape; + } + + @Override + public int pointsCount() { + return decoratedShape.pointsCount(); + } + + @Override + public Point2D point(int index) { + return decoratedShape.point(index); + } + + @Override + public void draw(GraphicsContext graphicsContext) { + decoratedShape.draw(graphicsContext); + drawDecoration(graphicsContext); + } + + protected abstract void drawDecoration(GraphicsContext graphicsContext); +} -- GitLab