1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef DocumentNameCollection_h
6#define DocumentNameCollection_h
7
8#include "core/html/HTMLElement.h"
9#include "core/html/HTMLNameCollection.h"
10
11namespace blink {
12
13class DocumentNameCollection FINAL : public HTMLNameCollection {
14public:
15    static PassRefPtrWillBeRawPtr<DocumentNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
16    {
17        ASSERT_UNUSED(type, type == DocumentNamedItems);
18        return adoptRefWillBeNoop(new DocumentNameCollection(document, name));
19    }
20
21    HTMLElement* item(unsigned offset) const { return toHTMLElement(HTMLNameCollection::item(offset)); }
22
23    bool elementMatches(const HTMLElement&) const;
24
25private:
26    DocumentNameCollection(ContainerNode& document, const AtomicString& name);
27};
28
29DEFINE_TYPE_CASTS(DocumentNameCollection, LiveNodeListBase, collection, collection->type() == DocumentNamedItems, collection.type() == DocumentNamedItems);
30
31} // namespace blink
32
33#endif // DocumentNameCollection_h
34