I am taking this back. There are 2 implementations that do this, and the other one is actually using the code you are suggesting ( in the atombase class). For consistency and simplicity i am changing the code as you suggested.
Frank Mantek Google On Oct 9, 2007, at 10:37 AM, Frank Mantek wrote: > you analysis is correct, i will change findextensions though > differently. I don't like creating a new array just to figure out > that nothing is there. So i probably if (something there) ... the > case. > > Frank Mantek > Google > On Oct 9, 2007, at 9:16 AM, Kulvinder Singh wrote: > >> Afetr i corrected the problem, i tried to cretae a deleted >> recurrence exception and got the following error : >> >> >> org.xml.sax.SAXParseException: Element type "http:" must >> be followed by either attribute specifications, ">" >> or "/>". >> >> Now what does that mean ? >> >> I am using Google API 1.1.0.0 with no other modifications. Where >> is the problem now ? >> >> Seems like that the new API release changes have not been tested >> properly. >> >> I seem to be harsh but it seems to have shaken my trust on the >> credibility of the releases >> >> Thanks >> Kulvinder Singh >> ----- Original Message ---- >> From: Kulvinder Singh <[EMAIL PROTECTED]> >> To: Google API <[email protected]> >> Sent: Tuesday, October 9, 2007 12:36:35 PM >> Subject: 3rd Major bug in new Google API 1.1.0.0 >> >> Hi, >> >> In the series of bugs in new calendar .NET API 1.1.0.0, there is >> another bug and i found it through the following : >> >> I am trying to add an exception in a Google Event as follows : >> >> OriginalEvent originalEvent = new OriginalEvent(); >> >> originalEvent.OriginalStartTime = originalWhen; >> >> originalEvent.Href = selfURIContent; >> >> originalEvent.IdOriginal = Common.GetGcalEventSubID(selfURIContent); >> >> gCalExceptionEvent.OriginalEvent = originalEvent; >> >> >> As soon as i executed my code, it threw an exception at : >> originalEvent.OriginalStartTime >> >> >> which is >> >> >> ///////////////////////////////////////////////////////////////////// >> / >> >> /// <summary>accessor method public original Start Time</summary> >> >> /// <returns> </returns> >> >> ///////////////////////////////////////////////////////////////////// >> / >> >> public When OriginalStartTime >> >> { >> >> get >> >> { >> >> return FindExtension(GDataParserNameTable.XmlWhenElement, >> >> BaseNameTable.gNamespace) as When; >> >> } >> >> set >> >> { >> >> ReplaceExtension(GDataParserNameTable.XmlWhenElement, >> >> BaseNameTable.gNamespace, value); >> >> } >> >> } >> >> >> and >> >> >> public void ReplaceExtension(string localName, string ns, Object obj) >> >> { >> >> DeleteExtensions(localName, ns); >> >> this.ExtensionElements.Add(obj); >> >> } >> >> >> >> /// <summary> >> >> /// Delete's all Extensions from the Extension list that match >> >> /// a localName and a Namespace. >> >> /// </summary> >> >> /// <param name="localName">the local name to find</param> >> >> /// <param name="ns">the namespace to match, if null, ns is >> ignored</param> >> >> /// <returns>int - the number of deleted extensions</returns> >> >> public int DeleteExtensions(string localName, string ns) >> >> { >> >> // Find them first >> >> ArrayList arr = FindExtensions(localName, ns); >> >> foreach (object ob in arr) >> >> { >> >> this.extensions.Remove(ob); >> >> } >> >> return arr.Count; >> >> } >> >> >> >> basically, the erros is being thrown by FindExtensiosn method >> since it uses this.extensions which is null >> >> >> /// <summary> >> >> /// Finds all ExtensionElement based on it's local name >> >> /// and it's namespace. If namespace is NULL, allwhere >> >> /// the localname matches is found. If there are extensionelements >> that do >> >> /// not implment ExtensionElementFactory, they will not be taken >> into account >> >> /// Primary use of this is to find XML nodes >> >> /// </summary> >> >> /// <param name="localName">the xml local name of the element to >> find</param> >> >> /// <param name="ns">the namespace of the elementToPersist</param> >> >> /// <returns>none</returns> >> >> public ArrayList FindExtensions(string localName, string ns) >> >> { >> >> return Utilities.FindExtensions(this.extensions, localName, ns, >> new ArrayList()); >> >> } >> >> >> I think that instead of using this.extensions directly, it should >> have been : >> >> >> ///////////////////////////////////////////////////////////////////// >> / >> >> /// <summary>the list of extensions for this container >> >> /// the elements in that list MUST implement IExtensionElementFactory >> >> /// and IExtensionElement</summary> >> >> /// <returns> </returns> >> >> ///////////////////////////////////////////////////////////////////// >> / >> >> public ArrayList ExtensionElements >> >> { >> >> get >> >> { >> >> if (this.extensions == null) >> >> { >> >> this.extensions = new ArrayList(); >> >> } >> >> return this.extensions; >> >> } >> >> set { this.extensions = value; } >> >> } >> >> >> so that the function FindExtensions look like : >> >> >> >> /// <summary> >> >> /// Finds all ExtensionElement based on it's local name >> >> /// and it's namespace. If namespace is NULL, allwhere >> >> /// the localname matches is found. If there are extensionelements >> that do >> >> /// not implment ExtensionElementFactory, they will not be taken >> into account >> >> /// Primary use of this is to find XML nodes >> >> /// </summary> >> >> /// <param name="localName">the xml local name of the element to >> find</param> >> >> /// <param name="ns">the namespace of the elementToPersist</param> >> >> /// <returns>none</returns> >> >> public ArrayList FindExtensions(string localName, string ns) >> >> { >> >> return Utilities.FindExtensions(ExtensionElements, localName, ns, >> new ArrayList()); >> >> } >> >> >> >> Please correct me if i am wrong somewhere. >> >> >> Thanks >> >> Kulvinder Singh >> >> >> Don't let your dream ride pass you by. Make it a reality with >> Yahoo! Autos. >> >> >> Be a better Heartthrob. Get better relationship answers from >> someone who knows. >> Yahoo! Answers - Check it out. >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Calendar Data 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-calendar-help-dataapi?hl=en -~----------~----~----~----~------~----~------~--~---
