summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/DOM/QualifiedName.h
blob: 4c90cbdd5bc7f61b42f8cc937da88ac23857213c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * Copyright (c) 2020, the SerenityOS developers.
 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <AK/DeprecatedFlyString.h>

namespace Web::DOM {

class QualifiedName {
public:
    QualifiedName(DeprecatedFlyString const& local_name, DeprecatedFlyString const& prefix, DeprecatedFlyString const& namespace_);

    DeprecatedFlyString const& local_name() const { return m_impl->local_name; }
    DeprecatedFlyString const& prefix() const { return m_impl->prefix; }
    DeprecatedFlyString const& namespace_() const { return m_impl->namespace_; }

    DeprecatedString const& as_string() const { return m_impl->as_string; }

    struct Impl : public RefCounted<Impl> {
        Impl(DeprecatedFlyString const& local_name, DeprecatedFlyString const& prefix, DeprecatedFlyString const& namespace_);
        ~Impl();

        void make_internal_string();
        DeprecatedFlyString local_name;
        DeprecatedFlyString prefix;
        DeprecatedFlyString namespace_;
        DeprecatedString as_string;
    };

    void set_prefix(DeprecatedFlyString const& value);

private:
    NonnullRefPtr<Impl> m_impl;
};

}