##### Coverage Report - org.jaxen.expr.iter.IterableAttributeAxis

Classes in this File | Line Coverage | Branch Coverage | Complexity
IterableAttributeAxis |
100% |
N/A |
| 1.0;1

1 |  |
     /*
2 |  |
      $Id: IterableAttributeAxis.java,v 1.7 2005/09/11 12:10:58 elharo Exp $
3 |  |
4 |  |
      Copyright 2003 (C) The Werken Company. All Rights Reserved.
5 |  |
6 |  |
      Redistribution and use of this software and associated documentation
7 |  |
      ("Software"), with or without modification, are permitted provided
8 |  |
      that the following conditions are met:
9 |  |
10 |  |
      1. Redistributions of source code must retain copyright
11 |  |
         statements and notices.  Redistributions must also contain a
12 |  |
         copy of this document.
13 |  |
14 |  |
      2. Redistributions in binary form must reproduce the
15 |  |
         above copyright notice, this list of conditions and the
16 |  |
         following disclaimer in the documentation and/or other
17 |  |
         materials provided with the distribution.
18 |  |
19 |  |
      3. The name "jaxen" must not be used to endorse or promote
20 |  |
         products derived from this Software without prior written
21 |  |
         permission of The Werken Company.  For written permission,
22 |  |
         please contact bob@werken.com.
23 |  |
24 |  |
      4. Products derived from this Software may not be called "jaxen"
25 |  |
         nor may "jaxen" appear in their names without prior written
26 |  |
         permission of The Werken Company. "jaxen" is a registered
27 |  |
         trademark of The Werken Company.
28 |  |
29 |  |
      5. Due credit should be given to The Werken Company.
30 |  |
         (http://jaxen.werken.com/).
31 |  |
32 |  |
      THIS SOFTWARE IS PROVIDED BY THE WERKEN COMPANY AND CONTRIBUTORS
33 |  |
      ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
34 |  |
      NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
35 |  |
      FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
36 |  |
      THE WERKEN COMPANY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
37 |  |
      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
38 |  |
      (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
39 |  |
      SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 |  |
      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
41 |  |
      STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
42 |  |
      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
43 |  |
      OF THE POSSIBILITY OF SUCH DAMAGE.
44 |  |
45 |  |
      */
46 |  |
     package org.jaxen.expr.iter;
47 |  |
48 |  |
     import java.util.Iterator;
49 |  |
50 |  |
     import org.jaxen.ContextSupport;
51 |  |
     import org.jaxen.NamedAccessNavigator;
52 |  |
     import org.jaxen.UnsupportedAxisException;
53 |  |
54 |  |
     /**
55 |  |
      * Provide access to the XPath attribute axis.
56 |  |
      * This axis does not include namespace declarations such as
57 |  |
      * <code>xmlns</code> and <code>xmlns:<i>prefix</i></code>.
58 |  |
      * It does include attributes defaulted from the DTD.
59 |  |
      *
60 |  |
      * @author Bob McWhirter
61 |  |
      * @author James Strachan
62 |  |
      * @author Stephen Colebourne
63 |  |
      */
64 |  |
     public class IterableAttributeAxis extends IterableAxis {
65 |  |
66 |  |
         /**
67 |  |
          * Constructor.
68 |  |
          *
69 |  |
          * @param value the axis value
70 |  |
          */
71 |  |
         public IterableAttributeAxis(int value) {
72 | 1320 |
             super(value);
73 | 1320 |
         }
74 |  |
75 |  |
         /**
76 |  |
          * Gets an iterator for the attribute axis.
77 |  |
          *
78 |  |
          * @param contextNode  the current context node to work from
79 |  |
          * @param support  the additional context information
80 |  |
          */
81 |  |
         public Iterator iterator(Object contextNode, ContextSupport support) throws UnsupportedAxisException {
82 | 7302 |
             return support.getNavigator().getAttributeAxisIterator(contextNode);
83 |  |
         }
84 |  |
85 |  |
         /**
86 |  |
          * Gets the iterator for the attribute axis that supports named access.
87 |  |
          *
88 |  |
          * @param contextNode  the current context node to work from
89 |  |
          * @param support  the additional context information
90 |  |
          * @param localName  the local name of the attributes to return
91 |  |
          * @param namespacePrefix  the prefix of the namespace of the attributes to return
92 |  |
          * @param namespaceURI  the uri of the namespace of the attributes to return
93 |  |
          */
94 |  |
         public Iterator namedAccessIterator(
95 |  |
             Object contextNode,
96 |  |
             ContextSupport support,
97 |  |
             String localName,
98 |  |
             String namespacePrefix,
99 |  |
             String namespaceURI)
100 |  |
                 throws UnsupportedAxisException {
101 |  |
102 | 7128 |
             NamedAccessNavigator nav = (NamedAccessNavigator) support.getNavigator();
103 | 7128 |
             return nav.getAttributeAxisIterator(contextNode, localName, namespacePrefix, namespaceURI);
104 |  |
         }
105 |  |
106 |  |
         /**
107 |  |
          * Does this axis support named access?
108 |  |
          *
109 |  |
          * @param support  the additional context information
110 |  |
          * @return true if named access is supported. If not iterator() will be used.
111 |  |
          */
112 |  |
         public boolean supportsNamedAccess(ContextSupport support) {
113 | 12090 |
             return (support.getNavigator() instanceof NamedAccessNavigator);
114 |  |
         }
115 |  |
116 |  |
     }