/** * Returns a view of this blip that will proxy for the specified id. * * A shallow copy of the current blip is returned with the {@code proxyingFor} * field set. Any modifications made to this copy will be done using the * {@code proxyForId}, i.e. the {@code robot+<proxyForId>@appspot.com} address * will be used. * * @param proxyForId the id to proxy. Please note that this parameter should * be properly encoded to ensure that the resulting participant id is * valid (see {@link Util#checkIsValidProxyForId(String)} for more * details). * @return a shallow copy of this blip with the proxying information set. */ public Blip proxyFor(String proxyForId) { Util.checkIsValidProxyForId(proxyForId); OperationQueue proxiedOperationQueue = operationQueue.proxyFor(proxyForId); return new Blip(this, proxiedOperationQueue); }
private Blip newBlip(String blipId, List<String> childBlipIds, String parentBlipId, List<Annotation> annotations, String content) { SortedMap<Integer, Element> elements = new TreeMap<Integer, Element>(); elements.put(14, new Gadget("http://a/b.xml")); Blip blip = new Blip(blipId, childBlipIds, content, Arrays.asList("robot@test.com", "user@test.com"), "user@test.com", 1000l, 123l, parentBlipId, null, annotations, elements, new ArrayList<String>(), wavelet); blips.put(blipId, blip); return blip; }
private Blip newBlip(String blipId, List<String> childBlipIds, String parentBlipId, List<Annotation> annotations, String content) { SortedMap<Integer, Element> elements = new TreeMap<Integer, Element>(); elements.put(14, new Gadget("http://a/b.xml")); Blip blip = new Blip(blipId, childBlipIds, content, Arrays.asList("robot@test.com", "user@test.com"), "user@test.com", 1000l, 123l, parentBlipId, null, annotations, elements, new ArrayList<String>(), wavelet); blips.put(blipId, blip); return blip; }
roles, blips, threads, opQueue); Blip rootBlip = new Blip(rootBlipId, "", null, "", wavelet); blips.put(rootBlipId, rootBlip);
/** * Creates a new {@code Blip} object used for this session. A temporary * id will be assigned to the newly created {@code Blip} object. * * @param wavelet the wavelet that owns this blip. * @param initialContent the initial content of the new blip. * @param parentBlipId the parent of this blip. * @return an instance of new {@code Blip} object used for this session. */ private static Blip newBlip(Wavelet wavelet, String initialContent, String parentBlipId, String blipId, String threadId) { Blip newBlip = new Blip(blipId, initialContent, parentBlipId, threadId, wavelet); if (parentBlipId != null) { Blip parentBlip = wavelet.getBlips().get(parentBlipId); if (parentBlip != null) { parentBlip.getChildBlipIds().add(newBlip.getBlipId()); } } wavelet.getBlips().put(newBlip.getBlipId(), newBlip); BlipThread thread = wavelet.getThread(threadId); if (thread != null) { thread.appendBlip(newBlip); } return newBlip; }
blips.put(rootBlipId, new Blip(rootBlipId, "", null, "", newWavelet));
elements.put(5, element4); Blip blip = new Blip("blip1", Collections.<String>emptyList(), "\n a ", Collections.<String>emptyList(), null, -1, -1, null, null, new ArrayList<Annotation>(), elements, new ArrayList<String>(), wavelet);
elements.put(5, element4); Blip blip = new Blip("blip1", Collections.<String>emptyList(), "\n a ", Collections.<String>emptyList(), null, -1, -1, null, null, new ArrayList<Annotation>(), elements, new ArrayList<String>(), wavelet);
return new Blip(blipId, childBlipIds, content, contributors, creator, lastModifiedTime, version, parentBlipId, threadId, annotations, elements, replyThreadIds, wavelet);
public void testTextIteratorDeletingMatches() { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "1", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(i + 1, range.getStart()); blip.setContent(blip.getContent().substring(0, range.getStart()) + blip.getContent().substring(range.getEnd())); iterator.shift(-1); } assertFalse(iterator.hasNext()); assertEquals("\n ", blip.getContent()); }
public void testTextIteratorDeletingMatches() { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "1", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(i + 1, range.getStart()); blip.setContent(blip.getContent().substring(0, range.getStart()) + blip.getContent().substring(range.getEnd())); iterator.shift(-1); } assertFalse(iterator.hasNext()); assertEquals("\n ", blip.getContent()); }
public void testSingleshotIterator() throws Exception { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); SingleshotIterator iterator = new BlipIterator.SingleshotIterator(blip, 0, 1); assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(0, range.getStart()); assertEquals(1, range.getEnd()); assertFalse(iterator.hasNext()); }
public void testSingleshotIterator() throws Exception { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); SingleshotIterator iterator = new BlipIterator.SingleshotIterator(blip, 0, 1); assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(0, range.getStart()); assertEquals(1, range.getEnd()); assertFalse(iterator.hasNext()); }
public void testTextIteratorShiftInsertAfter() { Blip blip = new Blip("blip1", "\nfoofoofoo", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "foo", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(i * 6 + 1, range.getStart()); blip.setContent(blip.getContent().substring(0, range.getEnd()) + "foo" + blip.getContent().substring(range.getEnd())); iterator.shift(range.getEnd() - range.getStart() + 2); } assertFalse(iterator.hasNext()); assertEquals("\nfoofoofoofoofoofoo", blip.getContent()); }
public void testTextIteratorShiftInsertAfter() { Blip blip = new Blip("blip1", "\nfoofoofoo", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "foo", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertEquals(i * 6 + 1, range.getStart()); blip.setContent(blip.getContent().substring(0, range.getEnd()) + "foo" + blip.getContent().substring(range.getEnd())); iterator.shift(range.getEnd() - range.getStart() + 2); } assertFalse(iterator.hasNext()); assertEquals("\nfoofoofoofoofoofoo", blip.getContent()); }
public void testTextIteratorWithoutShift() { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "1", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertNotNull(range); assertEquals(i * 2 + 1, range.getStart()); assertEquals(i * 2 + 2, range.getEnd()); } assertFalse(iterator.hasNext()); }
public void testTextIteratorWithoutShift() { Blip blip = new Blip("blip1", "\n1 1 1", null, null, wavelet); TextIterator iterator = new BlipIterator.TextIterator(blip, "1", -1); for (int i = 0; i < 3; ++i) { assertTrue(iterator.hasNext()); Range range = iterator.next(); assertNotNull(range); assertEquals(i * 2 + 1, range.getStart()); assertEquals(i * 2 + 2, range.getEnd()); } assertFalse(iterator.hasNext()); }
public void testSerializeAndDeserialize() throws Exception { SortedMap<Integer, Element> elements = new TreeMap<Integer, Element>(); elements.put(14, new Gadget("http://a/b.xml")); Blip expectedBlip = new Blip("blip1", Arrays.asList("blip2", "blip3"), "\nhello world!\n another line", Arrays.asList("robot@test.com", "user@test.com"), "user@test.com", 1000l, 123l, null, null, Arrays.asList(new Annotation("key", "val", 2, 3)), elements, new ArrayList<String>(), wavelet); Blip actualBlip = Blip.deserialize(wavelet.getOperationQueue(), wavelet, expectedBlip.serialize()); assertEquals(expectedBlip.getWaveId(), actualBlip.getWaveId()); assertEquals(expectedBlip.getWaveletId(), actualBlip.getWaveletId()); assertEquals(expectedBlip.getBlipId(), actualBlip.getBlipId()); assertEquals(expectedBlip.getContent(), actualBlip.getContent()); assertEquals(expectedBlip.getCreator(), actualBlip.getCreator()); assertEquals(expectedBlip.getLastModifiedTime(), actualBlip.getLastModifiedTime()); assertEquals(expectedBlip.getParentBlipId(), actualBlip.getParentBlipId()); assertEquals(expectedBlip.getVersion(), actualBlip.getVersion()); assertEquals(expectedBlip.getContributors(), actualBlip.getContributors()); assertEquals(expectedBlip.getChildBlipIds(), actualBlip.getChildBlipIds()); assertEquals(expectedBlip.getElements().keySet(), actualBlip.getElements().keySet()); assertEquals(expectedBlip.getAnnotations().size(), actualBlip.getAnnotations().size()); }
public void testSerializeAndDeserialize() throws Exception { SortedMap<Integer, Element> elements = new TreeMap<Integer, Element>(); elements.put(14, new Gadget("http://a/b.xml")); Blip expectedBlip = new Blip("blip1", Arrays.asList("blip2", "blip3"), "\nhello world!\n another line", Arrays.asList("robot@test.com", "user@test.com"), "user@test.com", 1000l, 123l, null, "<some string>", Arrays.asList(new Annotation("key", "val", 2, 3)), elements, new ArrayList<String>(), wavelet); Blip actualBlip = Blip.deserialize(wavelet.getOperationQueue(), wavelet, expectedBlip.serialize()); assertEquals(expectedBlip.getWaveId(), actualBlip.getWaveId()); assertEquals(expectedBlip.getWaveletId(), actualBlip.getWaveletId()); assertEquals(expectedBlip.getBlipId(), actualBlip.getBlipId()); assertEquals(expectedBlip.getContent(), actualBlip.getContent()); assertEquals(expectedBlip.getCreator(), actualBlip.getCreator()); assertEquals(expectedBlip.getLastModifiedTime(), actualBlip.getLastModifiedTime()); assertEquals(expectedBlip.getParentBlipId(), actualBlip.getParentBlipId()); assertEquals(expectedBlip.getVersion(), actualBlip.getVersion()); assertEquals(expectedBlip.getContributors(), actualBlip.getContributors()); assertEquals(expectedBlip.getChildBlipIds(), actualBlip.getChildBlipIds()); assertEquals(expectedBlip.getElements().keySet(), actualBlip.getElements().keySet()); assertEquals(expectedBlip.getAnnotations().size(), actualBlip.getAnnotations().size()); }