@Override public Abstract.ClassDefinition loadSource(SourceId sourceId, ErrorReporter errorReporter) throws IOException { if (sourceId.getStorage() != this) return null; if (!isAvailable(sourceId)) return null; Path file = sourceFileForSource(sourceId); FileSource fileSource = new FileSource(sourceId, file); Abstract.ClassDefinition definition = fileSource.load(errorReporter); // Make sure we loaded the right revision return Files.getLastModifiedTime(file).equals(sourceId.myMtime) ? definition : null; }