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)); } }