EMMA Coverage Report (generated Wed Dec 16 17:19:59 CET 2009)
[all classes][org.sourceforge.xradar.resolver]

COVERAGE SUMMARY FOR SOURCE FILE [XRadarCatalogResolver.java]

nameclass, %method, %block, %line, %
XRadarCatalogResolver.java100% (1/1)100% (3/3)67%  (20/30)86%  (6/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class XRadarCatalogResolver100% (1/1)100% (3/3)67%  (20/30)86%  (6/7)
resolve (String, String): Source 100% (1/1)55%  (12/22)75%  (3/4)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
XRadarCatalogResolver (): void 100% (1/1)100% (4/4)100% (2/2)

1/**
2 * BSD-style license; for more info see http://xradar.sourceforge.net/license.html
3 */
4package org.sourceforge.xradar.resolver;
5 
6import java.util.regex.Pattern;
7 
8import org.apache.xml.resolver.tools.CatalogResolver;
9import org.sourceforge.xradar.util.XRadarUtils;
10 
11import javax.xml.transform.Source;
12import javax.xml.transform.TransformerException;
13 
14/**
15* @author pfouquet
16* @author Romain PELISSE <belaran@gmail.com>
17
18* <p>Apache CatalogResolver extension to fix a path-related issue on Windows system.</p>
19
20* <p>Such a path D:\temp\test.xml would be converted in file:///D:/temp/test.xml</p>
21*/
22public class XRadarCatalogResolver extends CatalogResolver {
23 
24        private static final String FILE_PROTOCOL = "file:";
25        private static final Pattern pattern = Pattern.compile("^[A-Za-z]:.*$");
26 
27        public XRadarCatalogResolver() {
28                super(false);
29        }
30        
31        /**
32        * {@inheritDoc}
33        * 
34        * <p>Test if the href contains a win32 file path, beginning with a hard drive letter, such as:</p>
35        * <code>D:\\path\\to\\file</code>
36        * <p>If so, the method will normalize it using XRadarUtils.normalizeFileName method.</p>
37        * 
38        * @see org.sourceforge.xradar.utils.XRadarUtils#normalizeFileName(java.lang.String)
39        * @see org.apache.xml.resolver.tools.CatalogResolver#resolve(java.lang.String,java.lang.String)
40        */
41        @Override
42        public Source resolve(String href, String base) throws TransformerException {
43                String patchedHref = href;
44                if ( pattern.matcher(href).matches() ) {
45                        patchedHref = FILE_PROTOCOL + "//" + XRadarUtils.normalizeFileName(href);
46                }
47                return super.resolve(patchedHref, base);
48        }
49}
50 

[all classes][org.sourceforge.xradar.resolver]
EMMA 2.0.5312 (C) Vladimir Roubtsov