1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// SAX default implementation for AttributeList. 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// http://www.saxproject.org 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// No warranty; no copyright -- use this as you will. 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// $Id: AttributeListImpl.java,v 1.6 2002/01/30 20:52:22 dbrownell Exp $ 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.xml.sax.helpers; 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 82feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughesimport java.util.ArrayList; 97365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.AttributeList; 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Default implementation for AttributeList. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <blockquote> 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>This module, both source code and documentation, is in the 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for further information. 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </blockquote> 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>AttributeList implements the deprecated SAX1 {@link 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.AttributeList AttributeList} interface, and has been 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributesImpl} interface.</p> 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This class provides a convenience implementation of the SAX 28f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * {@link org.xml.sax.AttributeList AttributeList} interface. This 29f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * implementation is useful both for SAX parser writers, who can use 30f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * it to provide attributes to the application, and for SAX application 31f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * writers, who can use it to create a persistent copy of an element's 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attribute specifications:</p> 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <pre> 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * private AttributeList myatts; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * public void startElement (String name, AttributeList atts) 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * { 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * // create a persistent copy of the attribute list 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * // for use outside this method 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * myatts = new AttributeListImpl(atts); 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * [...] 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * } 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </pre> 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Please note that SAX parsers are not required to use this 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * class to provide an implementation of AttributeList; it is 48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * supplied only as an optional convenience. In particular, 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * parser writers are encouraged to invent more efficient 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * implementations.</p> 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @deprecated This class implements a deprecated interface, 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link org.xml.sax.AttributeList AttributeList}; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * that interface has been replaced by 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link org.xml.sax.Attributes Attributes}, 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * which is implemented in the 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * {@link org.xml.sax.helpers.AttributesImpl 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributesImpl} helper class. 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since SAX 1.0 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author David Megginson 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version 2.0.1 (sax2r2) 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @see org.xml.sax.DocumentHandler#startElement 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 65b365037fb5723ecd2810ac2dc4ec45fc570764b6Jesse Wilson@Deprecated 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class AttributeListImpl implements AttributeList 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project{ 68f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Create an empty attribute list. 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This constructor is most useful for parser writers, who 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * will use it to create a single, reusable attribute list that 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can be reset with the clear method between elements.</p> 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #addAttribute 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #clear 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public AttributeListImpl () 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 82f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 83f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Construct a persistent copy of an existing attribute list. 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This constructor is most useful for application writers, 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * who will use it to create a persistent copy of an existing 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attribute list.</p> 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param atts The attribute list to copy 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.DocumentHandler#startElement 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public AttributeListImpl (AttributeList atts) 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project setAttributeList(atts); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 98f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 99f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Methods specific to this class. 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 104f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Set the attribute list, discarding previous contents. 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This method allows an application writer to reuse an 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attribute list easily.</p> 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param atts The attribute list to copy. 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setAttributeList (AttributeList atts) 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int count = atts.getLength(); 117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project clear(); 119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < count; i++) { 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i)); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 124f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Add an attribute to an attribute list. 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This method is provided for SAX parser writers, to allow them 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to build up an attribute list incrementally before delivering 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * it to the application.</p> 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param name The attribute name. 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param type The attribute type ("NMTOKEN" for an enumeration). 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param value The attribute value (must not be null). 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #removeAttribute 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.DocumentHandler#startElement 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1392feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public void addAttribute(String name, String type, String value) { 1402feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes names.add(name); 1412feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes types.add(type); 1422feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes values.add(value); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Remove an attribute from the list. 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>SAX application writers can use this method to filter an 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attribute out of an AttributeList. Note that invoking this 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method will change the length of the attribute list and 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * some of the attribute's indices.</p> 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>If the requested attribute is not in the list, this is 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * a no-op.</p> 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param name The attribute name. 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #addAttribute 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1602feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public void removeAttribute(String name) { 1612feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes int i = names.indexOf(name); 1622feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes if (i != -1) { 1632feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes names.remove(i); 1642feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes types.remove(i); 1652feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes values.remove(i); 1662feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 168f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 169f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Clear the attribute list. 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>SAX parser writers can use this method to reset the attribute 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * list between DocumentHandler.startElement events. Normally, 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * it will make sense to reuse the same AttributeListImpl object 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * rather than allocating a new one each time.</p> 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.DocumentHandler#startElement 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1802feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public void clear() { 1812feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes names.clear(); 1822feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes types.clear(); 1832feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes values.clear(); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 186f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Implementation of org.xml.sax.AttributeList 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 191f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 192f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Return the number of attributes in the list. 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The number of attributes in the list. 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getLength 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1992feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public int getLength() { 2002feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return names.size(); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 203f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Get the name of an attribute (by position). 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param i The position of the attribute in the list. 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The attribute name as a string, or null if there 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is no attribute at that position. 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getName(int) 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2122feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public String getName(int i) { 2132feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes if (i < 0 || i >= names.size()) { 2142feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return null; 2152feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes } 2162feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return names.get(i); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 218f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Get the type of an attribute (by position). 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param i The position of the attribute in the list. 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The attribute type as a string ("NMTOKEN" for an 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * enumeration, and "CDATA" if no declaration was 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * read), or null if there is no attribute at 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * that position. 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getType(int) 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2302feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public String getType(int i) { 2312feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes if (i < 0 || i >= types.size()) { 2322feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return null; 2332feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes } 2342feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return types.get(i); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 236f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 237f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Get the value of an attribute (by position). 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param i The position of the attribute in the list. 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The attribute value as a string, or null if 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * there is no attribute at that position. 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getValue(int) 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2462feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public String getValue(int i) { 2472feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes if (i < 0 || i >= values.size()) { 2482feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return null; 2492feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes } 2502feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return values.get(i); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 252f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 253f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Get the type of an attribute (by name). 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param name The attribute name. 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The attribute type as a string ("NMTOKEN" for an 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * enumeration, and "CDATA" if no declaration was 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * read). 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getType(java.lang.String) 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2632feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public String getType(String name) { 2642feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return getType(names.indexOf(name)); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 266f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 267f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Get the value of an attribute (by name). 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param name The attribute name. 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the named attribute's value or null, if the attribute does not 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * exist. 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.AttributeList#getValue(java.lang.String) 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2762feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes public String getValue(String name) { 2772feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes return getValue(names.indexOf(name)); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 279f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 280f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Internal state. 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2862feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes private ArrayList<String> names = new ArrayList<String>(); 2872feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes private ArrayList<String> types = new ArrayList<String>(); 2882feeee4119506ed1511942f80fc2f7eb431afab7Elliott Hughes private ArrayList<String> values = new ArrayList<String>(); 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// end of AttributeListImpl.java 293