/[xmltv_parser]/trunk/libxmltv/Core/XMLTVParser.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/XMLTVParser.cs

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

trunk/libxmltv/Core/XMLTV_PARSER.cs revision 27 by william, Thu Mar 7 12:11:41 2013 UTC trunk/libxmltv/Core/XMLTVParser.cs revision 36 by william, Fri Mar 8 02:13:59 2013 UTC
# Line 9  using System.Xml.Linq; Line 9  using System.Xml.Linq;
9    
10  namespace libxmltv.Core  namespace libxmltv.Core
11  {  {
12      internal class XMLTV_PARSER : IXMLTV_PARSER      internal class XMLTVParser //: IXMLTV_PARSER
13      {      {
14                    private XMLTVRuntimeInstance instance;
15          public XMLTV_PARSER(object xmltv)          public XMLTVParser(XMLTVRuntimeInstance xmltv)
16          {          {
17              IXMLTV_LOADER _xmltv;              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVParser");
18              if (!Internals.VerifyInstance<IXMLTV_LOADER>(xmltv, out _xmltv)) { return; }              //IXMLTV_LOADER _xmltv;
19              XMLTV_LOADER = _xmltv;              //if (!Internals.VerifyInstance<IXMLTV_LOADER>(xmltv, out _xmltv)) { return; }
20                //XMLTV_LOADER = _xmltv;
21                //Create();
22                instance = xmltv;
23              Create();              Create();
24          }          }
25          #region IXMLTV_PARSER members          #region IXMLTV_PARSER members
26          public IXMLTV_LOADER XMLTV_LOADER { get; private set; }          //public IXMLTV_LOADER XMLTV_LOADER { get; private set; }
27          public void TestParse() { _imp_TestParse(); }          ////public void TestParse() { _imp_TestParse(); }
28          public IXMLTVSource Source { get; private set; }          //public IXMLTVSource Source { get; private set; }
29          public Dictionary<string, IXMLTVChannel> Channels { get; private set; }          //public Dictionary<string, IXMLTVChannel> Channels { get; private set; }
30          public Dictionary<int, IXMLTVProgram> Programs { get; private set; }          //public Dictionary<int, IXMLTVProgram> Programs { get; private set; }
31          #endregion          #endregion
32    
33          #region Parser Testing Methods          #region Parser Testing Methods
# Line 32  namespace libxmltv.Core Line 35  namespace libxmltv.Core
35          private void _imp_TestParse()          private void _imp_TestParse()
36          {          {
37              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Running XML_PARSER Test");              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Running XML_PARSER Test");
38              var doc = XMLTV_LOADER.XmlDoc;              var doc = instance.XmlDoc;
39              ParseRootElements(doc);              ParseRootElements(doc);
40              ParseChannels(doc);              ParseChannels(doc);
41              ParsePrograms(doc);              ParsePrograms(doc);
# Line 41  namespace libxmltv.Core Line 44  namespace libxmltv.Core
44          private void ParseRootElements(XDocument doc)          private void ParseRootElements(XDocument doc)
45          {          {
46              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parseing Root Data");                          XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parseing Root Data");            
47              Debug.Assert(doc.Root.Name == XMLTV_CONSTANTS.ROOT_ELEMENT, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTV_CONSTANTS.ROOT_ELEMENT, doc.Root.Name));              Debug.Assert(doc.Root.Name == XMLTVConstants.ROOT_ELEMENT, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTVConstants.ROOT_ELEMENT, doc.Root.Name));
48              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);
49              var attributes = doc.Root.Attributes().ToList();              var attributes = doc.Root.Attributes().ToList();
50              foreach (var attribute in attributes)              foreach (var attribute in attributes)
# Line 53  namespace libxmltv.Core Line 56  namespace libxmltv.Core
56          private void ParseChannels(XDocument doc)          private void ParseChannels(XDocument doc)
57          {          {
58              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Channel Data");              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Channel Data");
59              var elements = doc.Root.Descendants(XMLTV_CONSTANTS.CHANNEL_ELEMENT).ToList();              var elements = doc.Root.Descendants(XMLTVConstants.CHANNEL_ELEMENT).ToList();
60              foreach (var element in elements)              foreach (var element in elements)
61              {              {
62                  if (element.HasAttributes)                  if (element.HasAttributes)
# Line 80  namespace libxmltv.Core Line 83  namespace libxmltv.Core
83          private void ParsePrograms(XDocument doc)          private void ParsePrograms(XDocument doc)
84          {          {
85              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Program Data");              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Program Data");
86              var elements = doc.Root.Descendants(XMLTV_CONSTANTS.PROGRAM_ELEMENT).ToList();              var elements = doc.Root.Descendants(XMLTVConstants.PROGRAM_ELEMENT).ToList();
87              foreach (var element in elements)              foreach (var element in elements)
88              {              {
89                  if (element.HasAttributes)                  if (element.HasAttributes)
# Line 115  namespace libxmltv.Core Line 118  namespace libxmltv.Core
118          }          }
119          private void CreateXMLTVSource()          private void CreateXMLTVSource()
120          {          {
121              XMLTVSource source = new XMLTVSource(this);              XMLTVSource source = new XMLTVSource(instance);
122              Source = source;              instance.Source = source;
123          }          }
124          private void CreateXMLTVChannels()          private void CreateXMLTVChannels()
125          {          {
126              XMLTVChannelCollection channels = new XMLTVChannelCollection(this);              XMLTVChannelCollection channels = new XMLTVChannelCollection(instance);
127              Channels = channels.Collection;                          instance.Channels = channels.Collection;            
128          }          }
129          private void CreateXMLTVPrograms()          private void CreateXMLTVPrograms()
130          {          {
131              XMLTVProgramCollection programs = new XMLTVProgramCollection(this);              XMLTVProgramCollection programs = new XMLTVProgramCollection(instance);
132              Programs = programs.Collection;              instance.Programs = programs.Collection;
133          }          }
134          #endregion          #endregion
135      }      }

Legend:
Removed from v.27  
changed lines
  Added in v.36

  ViewVC Help
Powered by ViewVC 1.1.22