private void loadNextFile(SourceLocation source) {
        lines.clear();
        lastLoadedLocation = source;
        LOGGER.finer(() -> "Opening source location file for " + source);

        try (LineNumberReader reader = openSourceLocation(source)) {
            String lineString;
            while ((lineString = reader.readLine()) != null) {
                lines.add(new Line(reader.getLineNumber(), lineString));
            }
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }
    }
This class loads model files into memory, one at a time, and either shows leading lines up to a source location or
shows lines that are relevant to a source location use context from a {@link Model}.

<p>Sort sequences of {@link SourceLocation}s before calling {@link #loadContext(FromSourceLocation)} to avoid
needing to open and parse the same file more than once.

@see SourceContextLoader#createLineBasedLoader
@see SourceContextLoader#createModelAwareLoader
smithy-model/src/main/java/software/amazon/smithy/model/loader/sourcecontext/DefaultSourceLoader.java