~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to Source/WebCore/dom/CharacterData.h

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
ImportĀ upstreamĀ versionĀ 2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
 
3
 *           (C) 1999 Antti Koivisto (koivisto@kde.org)
 
4
 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
 
5
 *
 
6
 * This library is free software; you can redistribute it and/or
 
7
 * modify it under the terms of the GNU Library General Public
 
8
 * License as published by the Free Software Foundation; either
 
9
 * version 2 of the License, or (at your option) any later version.
 
10
 *
 
11
 * This library is distributed in the hope that it will be useful,
 
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
14
 * Library General Public License for more details.
 
15
 *
 
16
 * You should have received a copy of the GNU Library General Public License
 
17
 * along with this library; see the file COPYING.LIB.  If not, write to
 
18
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 
19
 * Boston, MA 02110-1301, USA.
 
20
 *
 
21
 */
 
22
 
 
23
#ifndef CharacterData_h
 
24
#define CharacterData_h
 
25
 
 
26
#include "Node.h"
 
27
#include <wtf/text/WTFString.h>
 
28
 
 
29
namespace WebCore {
 
30
 
 
31
class CharacterData : public Node {
 
32
public:
 
33
    String data() const { return m_data; }
 
34
    void setData(const String&, ExceptionCode&);
 
35
    unsigned length() const { return m_data.length(); }
 
36
    String substringData(unsigned offset, unsigned count, ExceptionCode&);
 
37
    void appendData(const String&, ExceptionCode&);
 
38
    void insertData(unsigned offset, const String&, ExceptionCode&);
 
39
    void deleteData(unsigned offset, unsigned count, ExceptionCode&);
 
40
    void replaceData(unsigned offset, unsigned count, const String&, ExceptionCode&);
 
41
 
 
42
    bool containsOnlyWhitespace() const;
 
43
 
 
44
    StringImpl* dataImpl() { return m_data.impl(); }
 
45
 
 
46
    // Like appendData, but optimized for the parser (e.g., no mutation events).
 
47
    // Returns how much could be added before length limit was met.
 
48
    unsigned parserAppendData(const String& string, unsigned offset, unsigned lengthLimit);
 
49
 
 
50
    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
 
51
 
 
52
protected:
 
53
    CharacterData(Document* document, const String& text, ConstructionType type)
 
54
        : Node(document, type)
 
55
        , m_data(!text.isNull() ? text : emptyString())
 
56
    {
 
57
        ASSERT(type == CreateOther || type == CreateText || type == CreateEditingText);
 
58
    }
 
59
 
 
60
    void setDataWithoutUpdate(const String& data)
 
61
    {
 
62
        ASSERT(!data.isNull());
 
63
        m_data = data;
 
64
    }
 
65
    void dispatchModifiedEvent(const String& oldValue);
 
66
 
 
67
private:
 
68
    virtual String nodeValue() const;
 
69
    virtual void setNodeValue(const String&, ExceptionCode&);
 
70
    virtual bool isCharacterDataNode() const { return true; }
 
71
    virtual int maxCharacterOffset() const;
 
72
    virtual bool offsetInCharacters() const;
 
73
    void setDataAndUpdate(const String&, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength);
 
74
    void checkCharDataOperation(unsigned offset, ExceptionCode&);
 
75
 
 
76
    String m_data;
 
77
};
 
78
 
 
79
} // namespace WebCore
 
80
 
 
81
#endif // CharacterData_h