parent
560c591a5e
commit
de7edac411
@ -0,0 +1,25 @@
|
||||
public class SquareToCircleConverter implements ShapeConverter<Square, Circle> {
|
||||
@Override
|
||||
public Circle convert(Square source) {
|
||||
if (!canConvert(source)) {
|
||||
throw new IllegalArgumentException("Cannot convert null square");
|
||||
}
|
||||
|
||||
// Calculate radius of circle with equal area to the square
|
||||
double squareArea = source.calculateArea();
|
||||
double circleRadius = Math.sqrt(squareArea / Math.PI);
|
||||
|
||||
// Create circle with the same color as the square
|
||||
return new Circle(circleRadius, source.getColor());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConvert(Square source) {
|
||||
return source != null && source.getSide() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getConversionDescription() {
|
||||
return "Converts a square to a circle with equal area and same color";
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue