/* * (C) Copyright Keith Visco 1998, 1999 All rights reserved. * * The contents of this file are released under an Open Source * Definition (OSD) compliant license; you may not use this file * execpt in compliance with the license. Please see license.txt, * distributed with this file. You may also obtain a copy of the * license at http://www.clc-marketing.com/xslp/license.txt * * The program is provided "as is" without any warranty express or * implied, including the warranty of non-infringement and the implied * warranties of merchantibility and fitness for a particular purpose. * The Copyright owner will not be liable for any damages suffered by * you as a result of using the Program. In no event will the Copyright * owner be liable for any special, indirect or consequential damages or * lost profits even if the Copyright owner has been advised of the * possibility of their occurrence. * * The orginal source for this file is XSL:P * * $Id$ */ package org.exolab.castor.xml.util; import org.w3c.dom.Attr; import org.w3c.dom.NamedNodeMap; import org.xml.sax.AttributeList; /** * A class which implements AttributeList by "wrapping" a DOM NamedNodeMap. * XSLReader when reading an XSLT stylsheet. * * @author <a href="mailto:kvisco@ziplink.net">Keith Visco</a> * @version $Revision$ $Date: 2003-03-03 00:05:44 -0700 (Mon, 03 Mar 2003) $ */ public class AttributeListWrapper implements AttributeList { NamedNodeMap _map = null; public AttributeListWrapper(NamedNodeMap namedNodeMap) { _map = namedNodeMap; } //-- AtrributeListWrapper //-----------------------------/ //- org.xml.sax.AttributeList -/ //-----------------------------/ /** * Returns the number of attributes in the list. * * @return The number of attributes in the list. */ public int getLength() { if (_map == null) { return 0; } return _map.getLength(); } //-- getLength /** * Returns the name of the attribute at the given index. * * @param i The position of the attribute in the list. * @return The attribute name as a string, or null if there is no attribute * at that position. */ public String getName(final int i) { if (_map != null) { Attr attr = (Attr) _map.item(i); return attr.getName(); } return null; } //-- getName /** * Returns the type of the attribute at the specified index. * * @param i The position of the attribute in the list. * @return The attribute type as a string ("NMTOKEN" for an enumeration, and * "CDATA" if no declaration was read), or null if there is no * attribute at that position. <br/><b>Note:</b> Not supported, * will simply return null. */ public String getType(final int i) { return null; } //-- getType /** * Return the value of the attribute at the specified index * * @param i The position of the attribute in the list. * @return The attribute value as a string, or null if there is no attribute * at that position. */ public String getValue(final int i) { if (_map != null) { Attr attr = (Attr) _map.item(i); return attr.getValue(); } return null; } //-- getValue /** * Return the type of the attribute with the given name. * * @param name The attribute name. * @return The attribute type as a string ("NMTOKEN" for an enumeration, and * "CDATA" if no declaration was read). <br/><b>Note:</b> Not * supported, will simply return null. */ public String getType(final String name) { return null; } //-- getType /** * Get the value of an attribute (by name). * * @param name The attribute name. * @see org.xml.sax.AttributeList#getValue(java.lang.String) */ public String getValue(final String name) { if (_map != null) { Attr attr = (Attr) _map.getNamedItem(name); if (attr != null) { return attr.getValue(); } } return null; } //-- getValue } //-- AttributeListWrapper