/[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 107 by william, Sun Mar 10 12:58:40 2013 UTC revision 113 by william, Sun Mar 10 15:54:52 2013 UTC
# Line 56  namespace libxmltv.Core Line 56  namespace libxmltv.Core
56          #region Property Dictionary Support          #region Property Dictionary Support
57          private PropertyDictionary _MetaData;          private PropertyDictionary _MetaData;
58          public PropertyDictionary MetaData { get { return _MetaData; } private set { _MetaData = value; } }          public PropertyDictionary MetaData { get { return _MetaData; } private set { _MetaData = value; } }
59            public List<IExtraMetaData> GetExtraMetaData()
60            {
61                return (List<IExtraMetaData>)this.MetaData[XMLTVConstants.Programs.ProgramExtraMetaData];
62            }
63          #endregion          #endregion
64    
65          #endregion          #endregion
# Line 161  namespace libxmltv.Core Line 165  namespace libxmltv.Core
165                              var ctors = type.GetConstructors(flags);                              var ctors = type.GetConstructors(flags);
166                              bool has_default_ctor = false;                              bool has_default_ctor = false;
167                              foreach (var ctor in ctors) { if (ctor.GetParameters().Count() == 0) { has_default_ctor = true; } }                              foreach (var ctor in ctors) { if (ctor.GetParameters().Count() == 0) { has_default_ctor = true; } }
168                                ctors = null;
169                              if (!has_default_ctor) { continue; }                              if (!has_default_ctor) { continue; }
170                              raw_instance = Activator.CreateInstance(type, flags, null, new object[0], culture);                              raw_instance = Activator.CreateInstance(type, flags, null, new object[0], culture);
171                              if (raw_instance != null)                              if (raw_instance != null)
# Line 169  namespace libxmltv.Core Line 174  namespace libxmltv.Core
174                                  if (handler_value != null && handler_value.ToString() == node.Name.ToString())                                  if (handler_value != null && handler_value.ToString() == node.Name.ToString())
175                                  {                                  {
176                                      handler_type = type;                                      handler_type = type;
177                                        handler_value = null;
178                                        raw_instance = null;
179                                        handler_prop = null;
180                                        iface = null;
181                                      break;                                      break;
182                                  }                                  }
183                                    handler_value = null;
184                              }                              }
185                                raw_instance = null;
186                          }                          }
187                            handler_prop = null;
188                      }                      }
189                        iface = null;
190                  }                  }
191              }              }
192                t = null;
193                asm = null;
194                types = null;
195                classes = null;
196              if (handler_type == null)              if (handler_type == null)
197              {              {
198                  try                  try
# Line 201  namespace libxmltv.Core Line 218  namespace libxmltv.Core
218                  }                  }
219                  catch (Exception ex) { throw ex; }                  catch (Exception ex) { throw ex; }
220              }              }
221                raw_instance = null;
222                flags = 0;
223                culture = null;
224                node = null;
225          }          }
226    
227    
# Line 234  namespace libxmltv.Core Line 255  namespace libxmltv.Core
255                      }                      }
256                                            
257                  }                  }
258                    node = null;
259              }              }
260          }          }
261          #endregion          #endregion
# Line 250  namespace libxmltv.Core Line 272  namespace libxmltv.Core
272                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value);                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value);
273                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value);                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value);
274                  }                  }
275                    node = null;
276              }              }
277          }          }
278          #endregion          #endregion
# Line 266  namespace libxmltv.Core Line 289  namespace libxmltv.Core
289                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, node.Value);                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, node.Value);
290                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", node.Value);                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", node.Value);
291                  }                  }
292                    node = null;
293              }              }
294          }          }
295          #endregion          #endregion
# Line 282  namespace libxmltv.Core Line 306  namespace libxmltv.Core
306                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramDescription, node.Value);                      instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramDescription, node.Value);
307                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", node.Value);                      xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", node.Value);
308                  }                  }
309                    node = null;
310              }              }
311          }          }
312          #endregion          #endregion
# Line 297  namespace libxmltv.Core Line 322  namespace libxmltv.Core
322                  xmltv_logger.Verbose.Debug.WriteLine("Parsng unhandled extra program meta-data: {0}", node.Name.ToString());                  xmltv_logger.Verbose.Debug.WriteLine("Parsng unhandled extra program meta-data: {0}", node.Name.ToString());
323                  if (this.GetInstance() != null)                  if (this.GetInstance() != null)
324                  {                  {
325                      List<ExtraMetaData> list = new List<ExtraMetaData>();                      List<IExtraMetaData> list = new List<IExtraMetaData>();
326                      if (!instance.MetaData.ContainsProperty(XMLTVConstants.Programs.ProgramExtraMetaData)) { instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramExtraMetaData, new List<ExtraMetaData>()); }                      if (!instance.MetaData.ContainsProperty(XMLTVConstants.Programs.ProgramExtraMetaData)) { instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramExtraMetaData, new List<ExtraMetaData>()); }
327                      else { list = (List<ExtraMetaData>)instance.MetaData[XMLTVConstants.Programs.ProgramExtraMetaData]; }                      else { list = (List<IExtraMetaData>)instance.MetaData[XMLTVConstants.Programs.ProgramExtraMetaData]; }
328                      ExtraMetaData data = new ExtraMetaData(node);                      ExtraMetaData data = new ExtraMetaData(node);
329                      list.Add(data);                      list.Add(data);
330                      instance.MetaData[XMLTVConstants.Programs.ProgramExtraMetaData] = list;                      instance.MetaData[XMLTVConstants.Programs.ProgramExtraMetaData] = list;
331                        data = null;
332                  }                  }
333                    node = null;
334              }              }
335          }                }      
336          #endregion          #endregion

Legend:
Removed from v.107  
changed lines
  Added in v.113

  ViewVC Help
Powered by ViewVC 1.1.22