sqlitecolumn.h 2.38 KB
Newer Older
1 2
/****************************************************************************
**
3 4
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
5 6 7 8 9 10 11
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
12 13 14
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
15
**
16 17 18 19 20 21 22
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
23 24 25
**
****************************************************************************/

hjk's avatar
hjk committed
26
#pragma once
27 28

#include "columndefinition.h"
Marco Bubke's avatar
Marco Bubke committed
29 30 31
#include "utf8string.h"

#include <QObject>
32

Marco Bubke's avatar
Marco Bubke committed
33 34 35
namespace Sqlite {

class SqliteColumn
36 37
{
public:
Marco Bubke's avatar
Marco Bubke committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51
    SqliteColumn()
        : m_type(ColumnType::Numeric),
          m_isPrimaryKey(false)
    {

    }

    void clear()
    {
        m_name.clear();
        m_type = ColumnType::Numeric;
        m_isPrimaryKey = false;
    }

52
    void setName(Utils::SmallString &&newName)
Marco Bubke's avatar
Marco Bubke committed
53 54 55
    {
        m_name = newName;
    }
56

57
    const Utils::SmallString &name() const
Marco Bubke's avatar
Marco Bubke committed
58 59 60
    {
        return m_name;
    }
61

Marco Bubke's avatar
Marco Bubke committed
62 63 64 65
    void setType(ColumnType newType)
    {
        m_type = newType;
    }
66

Marco Bubke's avatar
Marco Bubke committed
67 68 69 70
    ColumnType type() const
    {
        return m_type;
    }
71

Marco Bubke's avatar
Marco Bubke committed
72 73 74 75
    void setIsPrimaryKey(bool isPrimaryKey)
    {
        m_isPrimaryKey = isPrimaryKey;
    }
76

Marco Bubke's avatar
Marco Bubke committed
77 78 79 80 81 82 83 84 85
    bool isPrimaryKey() const
    {
        return m_isPrimaryKey;
    }

    ColumnDefinition columnDefintion() const
    {
        ColumnDefinition columnDefinition;

86
        columnDefinition.setName(m_name.clone());
Marco Bubke's avatar
Marco Bubke committed
87 88 89 90 91
        columnDefinition.setType(m_type);
        columnDefinition.setIsPrimaryKey(m_isPrimaryKey);

        return columnDefinition;
    }
92 93

private:
94
    Utils::SmallString m_name;
Marco Bubke's avatar
Marco Bubke committed
95 96
    ColumnType m_type;
    bool m_isPrimaryKey;
97
};
Marco Bubke's avatar
Marco Bubke committed
98 99

} // namespace Sqlite