parent
72fba66e94
commit
707e16dbe1
@ -0,0 +1,25 @@
|
||||
public class CircleToSquareConverter implements ShapeConverter<Circle, Square> {
|
||||
@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";
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue