Keeping track of the IDs for "lookup?" I have been searching for a method in the API which takes a blip ID as an argument and returns the blip matching that ID but have been unable to find one. Am I missing something? Please tell me how this can be done if possible because my development has been stalled as a result.
Smola On Oct 23, 2:55 am, "Austin Chau (Google employee)" <[email protected]> wrote: > So yes, when a blip is out of context you would have no way to retrieve its > document content from the event callback alone. What can you do now is > maintain the context on your own with a datastore backend. Essentially > keeping track of all wavelet and blip ids for lookup. > We know that this is not ideal and we are working on this as speak to remove > the limited context on callback. Stay tuned for updates. > Austin > > 2009/10/22 Bálint Kriván <[email protected]> > > > > > Oh I see...So robot doesn't get the whole wavelet with all of the blips, > > but the blip of the related event and it's parent. > > Ok, but if I would like to access to the rootblip, and I get its id with > > wavelet.getRootBlipId(), how can I request its content > > (getDoucment().getText())? (wavelet.getRootBlip().getDocument().getText() > > also throws null exception in these cases, so I don't have any idea how to > > achieve this) > > > Thanks for your guidance! > > > On Fri, Oct 23, 2009 at 2:56 AM, Austin Chau (Google employee) < > > [email protected]> wrote: > > >> Hi, > >> To get the root blip id in your scenario - > > >> wave.appendBlip().getDocument().append(wavelet.getRootBlipId()); > > >> This would work because it does not require "context" of a grandparent > >> blip. The reason that you are getting exception is because the context > >> associated with an event callback only goes back its immediate parent. So > >> in your case if the triggering event is resulted from a grandchild blip > >> away > >> from root, it will no longer has context to recreate the root blip when you > >> invoked wavelet.getRootBlip() - thus you will get a null reference. > > >> Hope it helps, > >> Austin > > >> 2009/10/22 Bálint Kriván <[email protected]> > > >> Reply to myself and others: I think this is related to > >>>http://code.google.com/p/google-wave-resources/issues/detail?id=200. > > >>> 2009/10/22 Bálint Kriván <[email protected]> > > >>> Hi! > >>>> I have this little chunk of code: > > >>>> public void debug(RobotMessageBundle bundle, String msg) > > >>>> { > > >>>> List<String> list = new ArrayList(); > > >>>> list.add("<myaddress in google wave>"); > > >>>> Wavelet wave = bundle.createWavelet(list); > > >>>> wave.appendBlip().getDocument().append(msg); > > >>>> } > > >>>> @Override > > >>>> public void processEvents(RobotMessageBundle robotMessageBundle) { > > >>>> Wavelet wavelet = robotMessageBundle.getWavelet(); > > >>>> for (Event event : robotMessageBundle.getEvents()) { > > >>>> Blip currentBlip = event.getBlip(); > > >>>> switch (event.getType()) { > > >>>> case BLIP_SUBMITTED: > > >>>> debug(robotMessageBundle, > >>>>> String.valueOf(wavelet.getRootBlip().getBlipId())); // line 46! > > >>>> } > > >>>> } > > >>>> } > > >>>> So when I add a blip to the wavelet where the robot is, it should open a > >>>> new wave with me and send the id of the root blip (The top blip in the > >>>> wavelet). > >>>> But if this blip isn't right after the root blip (so the very first > >>>> Reply button) then I've got a NullPointerException: > > >>>> java.lang.NullPointerException > > >>>> at com.google.wave.api.impl.BlipImpl.getBlipId(BlipImpl.java:56) > > >>>> at robot.MainServlet.processEvents(MainServlet.java:46) > > >>>> at > >>>>> com.google.wave.api.AbstractRobotServlet.doPost(AbstractRobotServlet.java:8 > >>>>> 9) > > >>>> [...] > > >>>> What is the recommended way to access the very first blip (which is I > >>>> guess the RootBlip)? > > >>>> Thanks for your help! > > >>>> -- > >>>> Üdv, > >>>> Kriván Bálint > > >>> -- > >>> Üdv, > >>> Kriván Bálint > > > -- > > Üdv, > > Kriván Bálint --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Wave API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-wave-api?hl=en -~----------~----~----~----~------~----~------~--~---
