1 /* 2 * (C) Copyright Keith Visco 1998, 1999 All rights reserved. 3 * 4 * The contents of this file are released under an Open Source 5 * Definition (OSD) compliant license; you may not use this file 6 * execpt in compliance with the license. Please see license.txt, 7 * distributed with this file. You may also obtain a copy of the 8 * license at http://www.clc-marketing.com/xslp/license.txt 9 * 10 * The program is provided "as is" without any warranty express or 11 * implied, including the warranty of non-infringement and the implied 12 * warranties of merchantibility and fitness for a particular purpose. 13 * The Copyright owner will not be liable for any damages suffered by 14 * you as a result of using the Program. In no event will the Copyright 15 * owner be liable for any special, indirect or consequential damages or 16 * lost profits even if the Copyright owner has been advised of the 17 * possibility of their occurrence. 18 * 19 * The orginal source for this file is XSL:P 20 * 21 * $Id$ 22 */ 23 package org.exolab.castor.xml.util; 24 25 import org.w3c.dom.Attr; 26 import org.w3c.dom.NamedNodeMap; 27 import org.xml.sax.AttributeList; 28 29 /** 30 * A class which implements AttributeList by "wrapping" a DOM NamedNodeMap. 31 * XSLReader when reading an XSLT stylsheet. 32 * 33 * @author <a href="mailto:kvisco@ziplink.net">Keith Visco</a> 34 * @version $Revision$ $Date: 2003-03-03 00:05:44 -0700 (Mon, 03 Mar 2003) $ 35 */ 36 public class AttributeListWrapper implements AttributeList { 37 38 NamedNodeMap _map = null; 39 40 public AttributeListWrapper(NamedNodeMap namedNodeMap) { 41 _map = namedNodeMap; 42 } //-- AtrributeListWrapper 43 44 //-----------------------------/ 45 //- org.xml.sax.AttributeList -/ 46 //-----------------------------/ 47 48 /** 49 * Returns the number of attributes in the list. 50 * 51 * @return The number of attributes in the list. 52 */ 53 public int getLength() { 54 if (_map == null) { 55 return 0; 56 } 57 return _map.getLength(); 58 } //-- getLength 59 60 /** 61 * Returns the name of the attribute at the given index. 62 * 63 * @param i The position of the attribute in the list. 64 * @return The attribute name as a string, or null if there is no attribute 65 * at that position. 66 */ 67 public String getName(final int i) { 68 if (_map != null) { 69 Attr attr = (Attr) _map.item(i); 70 return attr.getName(); 71 } 72 return null; 73 } //-- getName 74 75 /** 76 * Returns the type of the attribute at the specified index. 77 * 78 * @param i The position of the attribute in the list. 79 * @return The attribute type as a string ("NMTOKEN" for an enumeration, and 80 * "CDATA" if no declaration was read), or null if there is no 81 * attribute at that position. <br/><b>Note:</b> Not supported, 82 * will simply return null. 83 */ 84 public String getType(final int i) { 85 return null; 86 } //-- getType 87 88 /** 89 * Return the value of the attribute at the specified index 90 * 91 * @param i The position of the attribute in the list. 92 * @return The attribute value as a string, or null if there is no attribute 93 * at that position. 94 */ 95 public String getValue(final int i) { 96 if (_map != null) { 97 Attr attr = (Attr) _map.item(i); 98 return attr.getValue(); 99 } 100 return null; 101 } //-- getValue 102 103 /** 104 * Return the type of the attribute with the given name. 105 * 106 * @param name The attribute name. 107 * @return The attribute type as a string ("NMTOKEN" for an enumeration, and 108 * "CDATA" if no declaration was read). <br/><b>Note:</b> Not 109 * supported, will simply return null. 110 */ 111 public String getType(final String name) { 112 return null; 113 } //-- getType 114 115 /** 116 * Get the value of an attribute (by name). 117 * 118 * @param name The attribute name. 119 * @see org.xml.sax.AttributeList#getValue(java.lang.String) 120 */ 121 public String getValue(final String name) { 122 if (_map != null) { 123 Attr attr = (Attr) _map.getNamedItem(name); 124 if (attr != null) { 125 return attr.getValue(); 126 } 127 } 128 return null; 129 } //-- getValue 130 131 } //-- AttributeListWrapper