/** * 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 testExplicitValueOverrides() { getDoc("<body><line/>Some text<line/>Some more text</body>"); doc.setAnnotation(2, 7, TitleHelper.TITLE_KEY, "Blah"); assertEquals("Blah", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); }
public void testExplicitValueOverrides() { getDoc("<body><line/>Some text<line/>Some more text</body>"); doc.setAnnotation(2, 7, TitleHelper.TITLE_KEY, "Blah"); assertEquals("Blah", 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)); }
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 testFindingImplicitTitleDoesntOverrideExplicit() { getDoc("<body><line/>Some text<line/>Some more text</body>"); TitleHelper.setExplicitTitle(doc, "Blah"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Blah", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); }
public void testFindingImplicitTitleDoesntOverrideExplicit() { getDoc("<body><line/>Some text<line/>Some more text</body>"); TitleHelper.setExplicitTitle(doc, "Blah"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Blah", TitleHelper.extractTitle(doc)); assertTrue(TitleHelper.hasExplicitTitle(doc)); }
public void testEmptyTitleWhenNoAnnotation() { assertEquals("", TitleHelper.extractTitle(getDoc( "<body><line/>Some text<line/>Some more text</body>"))); assertEquals("", TitleHelper.extractTitle(getDoc( "Just text"))); assertFalse(TitleHelper.hasExplicitTitle(doc)); }
public void testEmptyTitleWhenNoAnnotation() { assertEquals("", TitleHelper.extractTitle(getDoc( "<body><line/>Some text<line/>Some more text</body>"))); assertEquals("", TitleHelper.extractTitle(getDoc( "Just text"))); assertFalse(TitleHelper.hasExplicitTitle(doc)); }
public void testEmptyValueUsesEncompassedText() { getDoc("<body><line id=\"1\"/>Some text<line/>Some more text</body>"); int startText = findLocationById(doc, "1") + 2; for (int i = 0; i <= startText; i++) { doc.resetAnnotation(i, startText + 7, TitleHelper.TITLE_KEY, ""); assertEquals("Some te", TitleHelper.extractTitle(doc)); } doc.resetAnnotation(startText + 1, startText + 7, TitleHelper.TITLE_KEY, ""); assertEquals("ome te", TitleHelper.extractTitle(doc)); doc.resetAnnotation(startText + 1, startText + 13, TitleHelper.TITLE_KEY, ""); assertEquals("ome textSo", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); }
public void testEmptyValueUsesEncompassedText() { getDoc("<body><line id=\"1\"/>Some text<line/>Some more text</body>"); int startText = findLocationById(doc, "1") + 2; for (int i = 0; i <= startText; i++) { doc.resetAnnotation(i, startText + 7, TitleHelper.TITLE_KEY, ""); assertEquals("Some te", TitleHelper.extractTitle(doc)); } doc.resetAnnotation(startText + 1, startText + 7, TitleHelper.TITLE_KEY, ""); assertEquals("ome te", TitleHelper.extractTitle(doc)); doc.resetAnnotation(startText + 1, startText + 13, TitleHelper.TITLE_KEY, ""); assertEquals("ome textSo", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); }
public void testFindingImplicitTitleClearsFromInvalidDocuments() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); doc.emptyElement(doc.getDocumentElement()); doc.appendXml(XmlStringBuilder.createText("Blah. Blah").wrap("x")); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); assertEquals(-1, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); }
public void testFindingImplicitTitleClearsFromInvalidDocuments() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); doc.emptyElement(doc.getDocumentElement()); doc.appendXml(XmlStringBuilder.createText("Blah. Blah").wrap("x")); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); assertEquals(-1, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); }
assertFalse(TitleHelper.hasExplicitTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc));
assertFalse(TitleHelper.hasExplicitTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc));