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)); }
/** * 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()); } }
/** * Returns the position of the body element in an initial, empty, blip. */ public static int getInitialBlipBodyPosition() { IndexedDocument<Node, Element, Text> d = DocProviders.POJO.build( TitleHelper.emptyDocumentWithTitle(), DocumentSchema.NO_SCHEMA_CONSTRAINTS); return getBodyPosition(d); }
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 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 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 testFindImplicitTitle() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); Range range = TitleHelper.findImplicitTitle(doc); assertTrue(range.getEnd() > range.getStart()); getDoc("<body></body>"); range = TitleHelper.findImplicitTitle(doc); assertNull(range); getDoc(""); range = TitleHelper.findImplicitTitle(doc); assertNull(range); }
/** * Retrieves the title of a {@link Wavelet}. * * @param wavelet The {@link Wavelet} to retrieve the title from. * @param conversation The wavelet conversation * @return the title of the {@link Wavelet}, or an empty string if it has * no title. */ private static String getTitle(Wavelet wavelet, Conversation conversation) { ConversationThread rootThread = conversation.getRootThread(); if (rootThread == null) { return ""; } ConversationBlip firstBlip = rootThread.getFirstBlip(); if (firstBlip == null) { return ""; } Document doc = firstBlip.getContent(); return TitleHelper.extractTitle(doc); }
@Override public void execute( OperationRequest operation, OperationContext context, ParticipantId participant) throws InvalidRequestException { String title = OperationUtil.getRequiredParameter(operation, ParamsProperty.WAVELET_TITLE); ObservableConversation conversation = context.openConversation(operation, participant).getRoot(); String blipId = conversation.getRootThread().getFirstBlip().getId(); Document doc = context.getBlip(conversation, blipId).getContent(); TitleHelper.setExplicitTitle(doc, title); }
public void appendBlipWithText(String text) { ConversationBlip blip = conversation.getRootThread().appendBlip(); LineContainers.appendToLastLine(blip.getContent(), XmlStringBuilder.createText(text)); TitleHelper.maybeFindAndSetImplicitTitle(blip.getContent()); }
if (isPunctuation(c)) { afterPunctuation = true; } else if (afterPunctuation && isWhitespace(c)) {
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 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 testFindImplicitTitle() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); Range range = TitleHelper.findImplicitTitle(doc); assertTrue(range.getEnd() > range.getStart()); getDoc("<body></body>"); range = TitleHelper.findImplicitTitle(doc); assertNull(range); getDoc(""); range = TitleHelper.findImplicitTitle(doc); assertNull(range); }
if (firstBlip != null) { Document firstBlipContents = firstBlip.getContent(); title = TitleHelper.extractTitle(firstBlipContents).trim(); } else { title = EMPTY_WAVELET_TITLE;
public void appendBlipWithText(String text) { ConversationBlip blip = conversation.getRootThread().appendBlip(); LineContainers.appendToLastLine(blip.getContent(), XmlStringBuilder.createText(text)); TitleHelper.maybeFindAndSetImplicitTitle(blip.getContent()); }
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)); }
TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text!", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text!!", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text!?.!", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("The number 5.5 is good", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text!?.!", TitleHelper.extractTitle(doc)); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("", TitleHelper.extractTitle(doc)); assertEquals(firstLineLocation, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null));
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)); }