code: Optional<SQLPPMapping> loadPPMapping(Supplier<Optional<File>> mappingFileSupplier,
                                           Supplier<Optional<Reader>> mappingReaderSupplier,
                                           Supplier<Optional<Graph>> mappingGraphSupplier)
              throws MappingIOException, InvalidMappingException, DuplicateMappingException {
  
          if (options.ppMapping.isPresent()) {
              return options.ppMapping;
          }
  
          SQLMappingParser parser = getInjector().getInstance(SQLMappingParser.class);
  
          Optional<File> optionalMappingFile = mappingFileSupplier.get();
          if (optionalMappingFile.isPresent()) {
              return Optional.of(parser.parse(optionalMappingFile.get()));
          }
  
          Optional<Reader> optionalMappingReader = mappingReaderSupplier.get();
          if (optionalMappingReader.isPresent()) {
              return Optional.of(parser.parse(optionalMappingReader.get()));
          }
          Optional<Graph> optionalMappingGraph = mappingGraphSupplier.get();
          if (optionalMappingGraph.isPresent()) {
              return Optional.of(parser.parse(optionalMappingGraph.get()));
          }
  
          return Optional.empty();
      }
docs: TODO: also consider the other steps