18f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// Copyright (c) 2008, Google Inc. 28f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// All rights reserved. 38f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// 48f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// Redistribution and use in source and binary forms, with or without 58f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// modification, are permitted provided that the following conditions are 68f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// met: 78f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// 88f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// * Redistributions of source code must retain the above copyright 98f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// notice, this list of conditions and the following disclaimer. 108f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// * Redistributions in binary form must reproduce the above 118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// copyright notice, this list of conditions and the following disclaimer 128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// in the documentation and/or other materials provided with the 138f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// distribution. 148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// * Neither the name of Google Inc. nor the names of its 158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// contributors may be used to endorse or promote products derived from 168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// this software without specific prior written permission. 178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// 188f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 198f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 208f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 218f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 228f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 238f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 248f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 258f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 278f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 288f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 298f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 308f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "config.h" 318f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "V8NamedNodesCollection.h" 328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "Element.h" 34e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#include "NamedNodeMap.h" 358f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qiannamespace WebCore { 378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 388f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng QianNode* V8NamedNodesCollection::item(unsigned index) const 398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian{ 408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (index < m_nodes.size()) 418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return m_nodes[index].get(); 428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return 0; 438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian} 448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 458f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng QianNode* V8NamedNodesCollection::itemWithName(const AtomicString& id) const 468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian{ 478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian for (unsigned i = 0; i < m_nodes.size(); ++i) { 488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian Node* node = m_nodes[i].get(); 49545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (node->hasID() && static_cast<Element*>(node)->getIdAttribute() == id) 508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return node; 518f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 528f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return 0; 538f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian} 548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian} // namespace WebCore 56