package matrix;

public class SubMatrixInitializer<T> implements MatrixInitializer<T> {
    private final Matrix<T> originalMatrix;
    private final Coordinate corner;

    public SubMatrixInitializer(Matrix<T> originalMatrix, Coordinate corner) {
        this.originalMatrix = originalMatrix;
        this.corner = corner;
    }

    @Override
    public T initialValueAt(Coordinate coordinate) {
        return originalMatrix.get(coordinate.plus(corner));
    }
}