ExportOptions extends AbstractOptions<ExportOptions> { public ExportOptions() { } ExportOptions();  ExportOptions(boolean withBranchSV, boolean indent, boolean onlyMainCc, TopologyLevel topologyLevel, boolean throwExceptionIfExtensionNotFound);  ExportOptions(boolean withBranchSV, boolean indent, boolean onlyMainCc, TopologyLevel topologyLevel, boolean throwExceptionIfExtensionNotFound, String version); @Override ExportOptions addExtension(String extension); boolean isWithBranchSV(); ExportOptions setWithBranchSV(boolean withBranchSV); boolean isIndent(); ExportOptions setIndent(boolean indent); boolean isOnlyMainCc(); ExportOptions setOnlyMainCc(boolean onlyMainCc); boolean isAnonymized(); ExportOptions setAnonymized(boolean anonymized); TopologyLevel getTopologyLevel(); ExportOptions setTopologyLevel(TopologyLevel topologyLevel); @Override ExportOptions setExtensions(Set<String> extensions); boolean isThrowExceptionIfExtensionNotFound(); ExportOptions setThrowExceptionIfExtensionNotFound(boolean throwException); String getVersion(); ExportOptions setVersion(String version); ExportOptions addExtensionVersion(String extensionName, String extensionVersion); Optional<String> getExtensionVersion(String extensionName); boolean isSorted(); ExportOptions setSorted(boolean sorted);  }
@Test public void exportOptionsTest() { ExportOptions options = new ExportOptions(); Set<String> extensionsList = Sets.newHashSet("loadFoo", "loadBar"); options.setExtensions(extensionsList); assertEquals(Boolean.FALSE, options.withNoExtension()); assertTrue(options.withExtension("loadFoo")); assertFalse(options.withAllExtensions()); assertEquals(Boolean.FALSE, options.isAnonymized()); assertEquals(Boolean.TRUE, options.isIndent()); assertEquals(Boolean.TRUE, options.isWithBranchSV()); options.addExtension("loadTest"); assertEquals(3, (int) options.getExtensions().map(Set::size).orElse(-1)); }