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