141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// This file is part of TagSoup and is Copyright 2002-2008 by John Cowan. 241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// 341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// TagSoup is licensed under the Apache License, 441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// Version 2.0. You may obtain a copy of this license at 541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// http://www.apache.org/licenses/LICENSE-2.0 . You may also have 641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// additional legal rights not granted by this license. 741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// 841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// TagSoup is distributed in the hope that it will be useful, but 941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// unless required by applicable law or agreed to in writing, TagSoup 1041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 1141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// OF ANY KIND, either express or implied; not even the implied warranty 1241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 1441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectpackage org.ccil.cowan.tagsoup.jaxp; 1541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 1641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport java.io.IOException; 1741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport javax.xml.parsers.*; 1841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 1941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport org.xml.sax.*; 2041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 2141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project/** 2241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * This is a simpler adapter class that allows using SAX1 interface on top 2341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * of basic SAX2 implementation, such as TagSoup. 2441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * 2541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @author Tatu Saloranta (cowtowncoder@yahoo.com) 2641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @deprecated 2741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 2841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectpublic class SAX1ParserAdapter 2941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project implements org.xml.sax.Parser 3041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project{ 3141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project final XMLReader xmlReader; 3241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 3341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public SAX1ParserAdapter(XMLReader xr) 3441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 3541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader = xr; 3641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 3741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 3841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // Sax1 API impl 3941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 4041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void parse(InputSource source) 4141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 4241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 4341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project try { 4441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.parse(source); 4541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } catch (IOException ioe) { 4641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throw new SAXException(ioe); 4741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 4841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 4941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 5041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void parse(String systemId) 5141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 5241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 5341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project try { 5441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.parse(systemId); 5541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } catch (IOException ioe) { 5641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throw new SAXException(ioe); 5741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 5841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 5941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 6041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project /** 6141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @deprecated 6241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 6341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setDocumentHandler(DocumentHandler h) 6441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 6541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.setContentHandler(new DocHandlerWrapper(h)); 6641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 6741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 6841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setDTDHandler(DTDHandler h) 6941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 7041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.setDTDHandler(h); 7141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 7241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 7341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setEntityResolver(EntityResolver r) 7441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 7541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.setEntityResolver(r); 7641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 7741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 7841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setErrorHandler(ErrorHandler h) 7941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 8041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project xmlReader.setErrorHandler(h); 8141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 8241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 8341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setLocale(java.util.Locale locale) 8441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 8541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 8641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project /* I have no idea what this is supposed to do... so let's 8741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * throw an exception 8841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 8941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throw new SAXNotSupportedException("TagSoup does not implement setLocale() method"); 9041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 9141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 9241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // Helper classes: 9341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 9441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project /** 9541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * We need another helper class to deal with differences between 9641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * Sax2 handler (content handler), and Sax1 handler (document handler) 9741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @deprecated 9841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 9941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project final static class DocHandlerWrapper 10041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project implements ContentHandler 10141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 10241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project final DocumentHandler docHandler; 10341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 10441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project final AttributesWrapper mAttrWrapper = new AttributesWrapper(); 10541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 10641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project /** 10741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @deprecated 10841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 10941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project DocHandlerWrapper(DocumentHandler h) 11041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 11141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler = h; 11241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 11341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 11441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void characters(char[] ch, int start, int length) 11541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 11641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 11741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.characters(ch, start, length); 11841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 11941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 12041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void endDocument() 12141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 12241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 12341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.endDocument(); 12441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 12541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 12641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void endElement(String uri, String localName, String qName) 12741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 12841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 12941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project if (qName == null) { 13041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project qName = localName; 13141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 13241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.endElement(qName); 13341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 13441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 13541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void endPrefixMapping(String prefix) 13641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 13741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // no equivalent in SAX1, ignore 13841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 13941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 14041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void ignorableWhitespace(char[] ch, int start, int length) 14141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 14241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 14341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.ignorableWhitespace(ch, start, length); 14441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 14541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 14641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void processingInstruction(String target, String data) 14741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 14841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 14941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.processingInstruction(target, data); 15041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 15141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 15241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setDocumentLocator(Locator locator) 15341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 15441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.setDocumentLocator(locator); 15541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 15641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 15741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void skippedEntity(String name) 15841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 15941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // no equivalent in SAX1, ignore 16041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 16141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 16241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void startDocument() 16341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 16441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 16541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.startDocument(); 16641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 16741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 16841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void startElement(String uri, String localName, String qName, 16941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project Attributes attrs) 17041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project throws SAXException 17141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 17241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project if (qName == null) { 17341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project qName = localName; 17441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 17541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // Also, need to wrap Attributes to look like AttributeLost 17641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project mAttrWrapper.setAttributes(attrs); 17741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project docHandler.startElement(qName, mAttrWrapper); 17841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 17941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 18041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void startPrefixMapping(String prefix, String uri) 18141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 18241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project // no equivalent in SAX1, ignore 18341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 18441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 18541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 18641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project /** 18741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * And one more helper to deal with attribute access differences 18841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project * @deprecated 18941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project */ 19041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project final static class AttributesWrapper 19141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project implements AttributeList 19241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 19341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project Attributes attrs; 19441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 19541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public AttributesWrapper() { } 19641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 19741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public void setAttributes(Attributes a) { 19841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project attrs = a; 19941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 20041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 20141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public int getLength() 20241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 20341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return attrs.getLength(); 20441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 20541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 20641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public String getName(int i) 20741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 20841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project String n = attrs.getQName(i); 20941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return (n == null) ? attrs.getLocalName(i) : n; 21041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 21141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 21241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public String getType(int i) 21341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 21441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return attrs.getType(i); 21541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 21641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 21741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public String getType(String name) 21841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 21941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return attrs.getType(name); 22041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 22141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 22241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public String getValue(int i) 22341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 22441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return attrs.getValue(i); 22541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 22641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project 22741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project public String getValue(String name) 22841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project { 22941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project return attrs.getValue(name); 23041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 23141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project } 23241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project} 233