private bool ParseSubComponent(CalendarReader calReader)
        {
            CalendarComponentBase calendarComponentBase = this.NewComponent(calReader);
            bool result;

            if (calendarComponentBase.Parse(calReader))
            {
                if (this.ProcessSubComponent(calendarComponentBase))
                {
                    this.subComponents.Add(calendarComponentBase);
                    result = true;
                }
                else
                {
                    ExTraceGlobals.ICalTracer.TraceError <string>((long)this.GetHashCode(), "CalendarComponentBase::ParseSubComponent. Failed to process component: {0}", calendarComponentBase.componentName);
                    result = false;
                }
            }
            else
            {
                ExTraceGlobals.ICalTracer.TraceError <string>((long)this.GetHashCode(), "CalendarComponentBase::ParseSubComponent. Failed to parse component: {0}", calendarComponentBase.componentName);
                result = false;
            }
            return(result);
        }