diff --git a/CircleToSquareConverter.java b/CircleToSquareConverter.java new file mode 100644 index 0000000..e5846f3 --- /dev/null +++ b/CircleToSquareConverter.java @@ -0,0 +1,25 @@ +public class CircleToSquareConverter implements ShapeConverter { + @Override + public Square convert(Circle source) { + if (!canConvert(source)) { + throw new IllegalArgumentException("Cannot convert null circle"); + } + + // Calculate side length of square with equal area to the circle + double circleArea = source.calculateArea(); + double squareSide = Math.sqrt(circleArea); + + // Create square with the same color as the circle + return new Square(squareSide, source.getColor()); + } + + @Override + public boolean canConvert(Circle source) { + return source != null && source.getRadius() > 0; + } + + @Override + public String getConversionDescription() { + return "Converts a circle to a square with equal area and same color"; + } +} \ No newline at end of file