public StructuredDocument readDocumentStructure(File filename, Map<String, Object> options) {
this.rubyGemsPreloader.preloadRequiredLibraries(options);
RubyHash rubyHash = RubyHashUtil.convertMapToRubyHashWithSymbols(rubyRuntime, options);
DocumentRuby documentRuby = this.asciidoctorModule.load_file(filename.getAbsolutePath(), rubyHash);
int maxDeepLevel = options.containsKey(STRUCTURE_MAX_LEVEL) ? (Integer) (options.get(STRUCTURE_MAX_LEVEL))
: DEFAULT_MAX_LEVEL;
return toDocument(documentRuby, rubyRuntime, maxDeepLevel);
}