Clover.NET coverage report - Coverage for s2container.net

Coverage timestamp: 2006年5月30日 11:21:29

File Stats: LOC: 150   Methods: 5
NCLOC: 120 Classes: 1
 
Source File Conditionals Statements Methods TOTAL
Seasar.Framework.Xml\XmlHandlerParser.cs 66.7% 88.9% 80.0% 83.1%
coverage coverage
1   #region Copyright
2   /*
3   * Copyright 2005 the Seasar Foundation and the Others.
4   *
5   * Licensed under the Apache License, Version 2.0 (the "License");
6   * you may not use this file except in compliance with the License.
7   * You may obtain a copy of the License at
8   *
9   * http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14   * either express or implied. See the License for the specific language
15   * governing permissions and limitations under the License.
16   */
17   #endregion
18  
19   using System;
20   using System.Reflection;
21   using System.IO;
22   using System.Xml;
23   using System.Xml.Schema;
24   using System.Web;
25   using Seasar.Framework.Util;
26   using Seasar.Framework.Xml.Impl;
27  
28   namespace Seasar.Framework.Xml
29   {
30   /// <summary>
31   /// XmlHandlerParser の概要の説明です。
32   /// </summary>
33   public sealed class XmlHandlerParser
34   {
35   private XmlHandler xmlHandler_;
36  
37 147 public XmlHandlerParser(XmlHandler xmlHandler)
38   {
39 147 xmlHandler_ = xmlHandler;
40   }
41  
42 0 public XmlHandler XmlHandler
43   {
44   get { return xmlHandler_; }
45   }
46  
47 141 public object Parse(string path)
48   {
49 141 StreamReader reader = null;
50 141 string pathWithoutExt = Path.Combine(
51   Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path));
52 141 string extension = ResourceUtil.GetExtension(path);
53  
54 141 try
55   {
56 141 if(File.Exists(path))
57   {
58 0 reader = new StreamReader(path);
59   }
60 141 else if(HttpContext.Current != null)
61   {
62 0 string path4http = Path.Combine(
63   AppDomain.CurrentDomain.SetupInformation.ApplicationBase, path);
64 0 if(File.Exists(path4http)) reader = new StreamReader(path4http);
65   }
66 141 if(reader == null)
67   {
68 141 reader = ResourceUtil.GetResourceAsStreamReader(pathWithoutExt, extension);
69   }
70   }
71   catch(ResourceNotFoundRuntimeException)
72   {
73 141 Assembly[] assemblys = AppDomain.CurrentDomain.GetAssemblies();
74 141 foreach(Assembly assembly in assemblys)
75   {
76 591 try
77   {
78 591 reader = ResourceUtil.GetResourceAsStreamReader(pathWithoutExt,
79   extension,assembly);
80 141 break;
81   }
82   catch(ResourceNotFoundRuntimeException)
83   {
84 450 continue;
85   }
86   }
87   }
88 0 if(reader == null) throw new ResourceNotFoundRuntimeException(path);
89 141 return this.Parse(reader);
90   }
91  
92 147 public object Parse(StreamReader input)
93   {
94 147 XmlReaderSettings settings = new XmlReaderSettings();
95 147 settings.XmlResolver = new S2XmlResolver();
96 147 settings.ValidationType = ValidationType.DTD;
97 147 settings.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
98 147 settings.ProhibitDtd = false;
99  
100 147 XmlReader reader = XmlReader.Create(input, settings);
101  
102 147 try
103   {
104 6823 while(reader.Read())
105   {
106 6677 switch(reader.NodeType)
107   {
108   case XmlNodeType.Element :
109 1439 string elementName = reader.Name;
110 1439 bool isEmptyElement = reader.IsEmptyElement;
111 1439 AttributesImpl attributes = new AttributesImpl();
112 1439 if(reader.MoveToFirstAttribute())
113   {
114 1123 do
115   {
116 3073 attributes.AddAttribute(reader.Name, reader.Value);
117 3073 } while(reader.MoveToNextAttribute());
118   }
119 1439 xmlHandler_.StartElement(elementName, attributes);
120 1438 if(isEmptyElement) xmlHandler_.EndElement(reader.Name);
121 1438 break;
122   case XmlNodeType.Text :
123 460 xmlHandler_.Characters(reader.Value);
124 460 break;
125   case XmlNodeType.EndElement :
126 1188 xmlHandler_.EndElement(reader.Name);
127 1188 break;
128   }
129   }
130   }
131   finally
132   {
133 147 reader.Close();
134 147 reader = null;
135 147 input.Close();
136 147 input = null;
137   }
138  
139 146 return xmlHandler_.Result;
140   }
141  
142 7 private void ValidationHandler(object sender, ValidationEventArgs args)
143   {
144 7 Console.Error.WriteLine("***Validation error");
145 7 Console.Error.WriteLine("\tSeverity:{0}", args.Severity);
146 7 Console.Error.WriteLine("\tMessage :{0}", args.Message);
147   }
148   }
149   }
150