/[xmltv_parser]/branches/linux/xmltv_parser/libxmltv/Core/XMLTVProgram.cs
ViewVC logotype

Diff of /branches/linux/xmltv_parser/libxmltv/Core/XMLTVProgram.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 104 by william, Sun Mar 10 11:10:30 2013 UTC revision 105 by william, Sun Mar 10 11:35:26 2013 UTC
# Line 178  namespace libxmltv.Core Line 178  namespace libxmltv.Core
178              }              }
179              if (handler_type == null)              if (handler_type == null)
180              {              {
181                  StringBuilder node_builder = new StringBuilder();                  try
182                  node_builder.AppendFormat("<{0} ", node.Name);                  {
183                  if (node.HasAttributes) { foreach (var attribute in node.Attributes()) { node_builder.AppendFormat("{0}=\"{1}\" ", attribute.Name, attribute.Value); } }                      raw_instance = Activator.CreateInstance(typeof(UnhandledExtraMetaData), flags, null, new object[] { this, node }, culture);
184                  string node_text = string.Format("{0}>", node_builder.ToString().TrimEnd(new char[] { ' ' }));                  }
185                  xmltv_logger.Verbose.Warn.WriteLine("Ignoring unhandled extra meta-data: {0}", node_text);                  catch (Exception ex) { throw ex; }
186    
187                    if (raw_instance == null)
188                    {
189                        StringBuilder node_builder = new StringBuilder();
190                        node_builder.AppendFormat("<{0} ", node.Name);
191                        if (node.HasAttributes) { foreach (var attribute in node.Attributes()) { node_builder.AppendFormat("{0}=\"{1}\" ", attribute.Name, attribute.Value); } }
192                        string node_text = string.Format("{0}>", node_builder.ToString().TrimEnd(new char[] { ' ' }));
193                        xmltv_logger.Verbose.Warn.WriteLine("Ignoring unhandled extra meta-data: {0}", node_text);
194                    }
195              }              }
196              else              else
197              {              {
198                  raw_instance = Activator.CreateInstance(handler_type, flags, null, new object[] { this, node }, culture);                  try
199                    {
200                        raw_instance = Activator.CreateInstance(handler_type, flags, null, new object[] { this, node }, culture);
201                    }
202                    catch (Exception ex) { throw ex; }
203              }              }
204          }          }
205    
206    
207    
208          #region sub-classes          #region sub-classes      
209          #region program title          #region programme: stop/start/channelid
         private class title : XMLTVBase<XMLTVProgram>  
         {  
             public title() : base(null, XMLTVConstants.Programs.ProgramTitle) { }  
             public title(XMLTVProgram instance, XElement node)  
                 : base(instance, XMLTVConstants.Programs.ProgramTitle)  
             {                  
                 if(node == null){throw new NullReferenceException("The node instance was null");}                  
                 if (node.Value != null)  
                 {  
                     instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value);  
                     xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value);  
                 }                  
             }  
         }  
         #endregion  
         #region program stop/start/channel (programme)  
210          private class programme : XMLTVBase<XMLTVProgram>          private class programme : XMLTVBase<XMLTVProgram>
211          {          {
212              public programme() : base(null, XMLTVConstants.Programs.RootElement) { }              public programme() : base(null, XMLTVConstants.Programs.RootElement) { }
# Line 240  namespace libxmltv.Core Line 237  namespace libxmltv.Core
237              }              }
238          }          }
239          #endregion          #endregion
240            #region title
241          #region sub title          private class title : XMLTVBase<XMLTVProgram>
242            {
243                public title() : base(null, XMLTVConstants.Programs.ProgramTitle) { }
244                public title(XMLTVProgram instance, XElement node)
245                    : base(instance, XMLTVConstants.Programs.ProgramTitle)
246                {
247                    if (node == null) { throw new NullReferenceException("The node instance was null"); }
248                    if (node.Value != null)
249                    {
250                        instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value);
251                        xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value);
252                    }
253                }
254            }
255            #endregion
256            #region sub-title
257          private class subtitle : XMLTVBase<XMLTVProgram>          private class subtitle : XMLTVBase<XMLTVProgram>
258          {          {
259              public subtitle() : base(null, XMLTVConstants.Programs.ProgramSubTitle) { }              public subtitle() : base(null, XMLTVConstants.Programs.ProgramSubTitle) { }
# Line 257  namespace libxmltv.Core Line 269  namespace libxmltv.Core
269              }              }
270          }          }
271          #endregion          #endregion
272          #region sub title          #region description
273          private class description : XMLTVBase<XMLTVProgram>          private class description : XMLTVBase<XMLTVProgram>
274          {          {
275              public description() : base(null, XMLTVConstants.Programs.ProgramDescription) { }              public description() : base(null, XMLTVConstants.Programs.ProgramDescription) { }
# Line 273  namespace libxmltv.Core Line 285  namespace libxmltv.Core
285              }              }
286          }          }
287          #endregion          #endregion
288    
289            #region UnhandledExtraMetaData
290            private class UnhandledExtraMetaData : XMLTVBase<XMLTVProgram>
291            {
292                public UnhandledExtraMetaData() : base(null, null) { }
293                public UnhandledExtraMetaData(XMLTVProgram instance, XElement node)
294                    : base(instance, null)
295                {
296                    if (node == null) { throw new NullReferenceException("The node instance was null"); }
297                    //if (node.Value != null)
298                    //{
299                    //    instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramDescription, node.Value);
300                    //    xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", node.Value);
301                    //}
302                    xmltv_logger.Verbose.Debug.WriteLine("Parsng unhandled extra meta-data: {0}", node.Name.ToString());
303    
304                    if (this.GetInstance() != null)
305                    {
306                        if (!instance.MetaData.ContainsProperty(XMLTVConstants.Programs.ProgramExtraMetaData))
307                        {
308                            instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramExtraMetaData, null);
309                        }
310                    }
311    
312                }
313            }
314            #endregion
315          #endregion          #endregion
316      }      }
317  }  }

Legend:
Removed from v.104  
changed lines
  Added in v.105

  ViewVC Help
Powered by ViewVC 1.1.22