ConsoleLogger.java

package com.example.graphics.observer;

import com.example.graphics.model.Shape;

/**
 * Console logger implementation of the ShapeObserver interface.
 * This logs shape changes to the console.
 */
public class ConsoleLogger implements ShapeObserver {
    @Override
    public void onShapeAdded(Shape shape) {
        System.out.println("Shape added: " + shape.getClass().getSimpleName() + 
                           " at position (" + shape.getX() + "," + shape.getY() + ")");
    }
    
    @Override
    public void onShapeRemoved(Shape shape) {
        System.out.println("Shape removed: " + shape.getClass().getSimpleName() + 
                           " at position (" + shape.getX() + "," + shape.getY() + ")");
    }
    
    @Override
    public void onShapeModified(Shape shape) {
        System.out.println("Shape modified: " + shape.getClass().getSimpleName() + 
                           " at position (" + shape.getX() + "," + shape.getY() + ")");
    }
}