/** * Automatically finds and sets an appropriate implicit title for the * document. Will include the first line token as part of the covered range, * so it's easy to detect if a line is part of a title, by checking for the * annotation. * * If the title has been explicitly set, does nothing. * * @param doc */ public static <N, E extends N, T extends N> void maybeFindAndSetImplicitTitle( final MutableDocument<N, E, T> doc) { if (hasExplicitTitle(doc)) { // Explicit title is set - do not touch return; } Range range = findImplicitTitle(doc); if (range != null) { setImplicitTitle(doc, range.getStart(), range.getEnd()); } }
public void testSettingTitleChangesExpliciticity() { getDoc("<body><line id=\"1\"/>Some text<line/>Some mor</body>"); int startText = findLocationById(doc, "1") + 2; // Explicit set on blank doc TitleHelper.setExplicitTitle(doc, "Blah"); assertEquals("Blah", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); // Change to implicit TitleHelper.setImplicitTitle(doc, startText + 1, startText + 7); assertEquals("ome te", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); // Back to explicit TitleHelper.setExplicitTitle(doc, "Blah2"); assertEquals("Blah2", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); }
public void testSettingTitleChangesExpliciticity() { getDoc("<body><line id=\"1\"/>Some text<line/>Some mor</body>"); int startText = findLocationById(doc, "1") + 2; // Explicit set on blank doc TitleHelper.setExplicitTitle(doc, "Blah"); assertEquals("Blah", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); // Change to implicit TitleHelper.setImplicitTitle(doc, startText + 1, startText + 7); assertEquals("ome te", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); // Back to explicit TitleHelper.setExplicitTitle(doc, "Blah2"); assertEquals("Blah2", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); }