Changes: Consistently rename classes
[qtcontacts-tracker:hasselmms-qtcontacts-tracker.git] / tools / schemalister / schemalister.h
1 /*********************************************************************************
2  ** This file is part of QtContacts tracker storage plugin
3  **
4  ** Copyright (c) 2010-2011 Nokia Corporation and/or its subsidiary(-ies).
5  **
6  ** Contact:  Nokia Corporation (info@qt.nokia.com)
7  **
8  ** GNU Lesser General Public License Usage
9  ** This file may be used under the terms of the GNU Lesser General Public License
10  ** version 2.1 as published by the Free Software Foundation and appearing in the
11  ** file LICENSE.LGPL included in the packaging of this file.  Please review the
12  ** following information to ensure the GNU Lesser General Public License version
13  ** 2.1 requirements will be met:
14  ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
15  **
16  ** In addition, as a special exception, Nokia gives you certain additional rights.
17  ** These rights are described in the Nokia Qt LGPL Exception version 1.1, included
18  ** in the file LGPL_EXCEPTION.txt in this package.
19  **
20  ** Other Usage
21  ** Alternatively, this file may be used in accordance with the terms and
22  ** conditions contained in a signed written agreement between you and Nokia.
23  *********************************************************************************/
24
25 #ifndef SCHEMALISTER_H
26 #define SCHEMALISTER_H
27
28 // this engine
29 class QctContactDetailSchema;
30 class QctContactDetail;
31 class QctContactDetailField;
32 class QctClassInfoBase;
33 class QctPropertyInfoBase;
34 // Qt
35 class QDomDocument;
36 class QDomElement;
37 class QString;
38 class QStringList;
39
40
41 class SchemaLister
42 {
43 public:
44     SchemaLister();
45     ~SchemaLister();
46
47 public:
48     void writeDetailSchema(const QctContactDetailSchema &schema, const QString &contactType,
49                            const QString &fileName, const QString &title);
50
51     static QString descriptiveNameForContactType(const QString &contactType);
52
53 protected:
54     void listDetailSchema(QDomElement &parentElement, const QctContactDetailSchema &schema);
55     void listDetail(QDomElement &parentElement, const QctContactDetail &detail);
56     void listDetailField(QDomElement &parentElement, const QctContactDetailField &detailField);
57     void listSubType(QDomElement &parentElement, const QctClassInfoBase &subTypeClassInfo);
58     void listSubType(QDomElement &parentElement, const QctPropertyInfoBase &subTypePropertyInfo);
59
60     void createTOC(QDomElement &parentElement, const QctContactDetailSchema &schema);
61
62     QDomElement createTextElement(QDomElement &parentElement, const QString &tagName, const QString &text);
63     QDomElement createTableRow(QDomElement &tableElement, const QStringList &columnTexts);
64
65 protected:
66     QDomDocument *mDomDocument;
67 };
68
69 #endif /*SCHEMALISTER_H*/