diff --git a/src/main/java/shape/Decorator.java b/src/main/java/shape/Decorator.java new file mode 100644 index 0000000000000000000000000000000000000000..d2428a05cf83f2e2d7baa58cc7690686a1b99c0c --- /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); +}