]> andersk Git - svn-all-fast-export.git/blob - src/ruleparser.h
Remove the recurse rule
[svn-all-fast-export.git] / src / ruleparser.h
1 /*
2  *  Copyright (C) 2007  Thiago Macieira <thiago@kde.org>
3  *
4  *  This program is free software: you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation, either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #ifndef RULEPARSER_H
19 #define RULEPARSER_H
20
21 #include <QList>
22 #include <QRegExp>
23 #include <QString>
24
25 class Rules
26 {
27 public:
28     struct Repository
29     {
30         struct Branch
31         {
32             QString name;
33         };
34
35         QString name;
36         QList<Branch> branches;
37         int lineNumber;
38
39         Repository() : lineNumber(0) { }
40     };
41
42     struct Match
43     {
44         QRegExp rx;
45         QString repository;
46         QString branch;
47         int minRevision;
48         int maxRevision;
49         int lineNumber;
50
51         enum Action {
52             Ignore,
53             Export
54         } action;
55
56         Match() : minRevision(-1), maxRevision(-1), lineNumber(0), action(Ignore) { }
57     };
58
59     Rules(const QString &filename);
60     ~Rules();
61
62     QList<Repository> repositories();
63     QList<Match> matchRules();
64
65     void load();
66
67 private:
68     QString filename;
69     QList<Repository> m_repositories;
70     QList<Match> m_matchRules;
71 };
72
73 #ifndef QT_NO_DEBUG_STREAM
74 class QDebug;
75 QDebug operator<<(QDebug, const Rules::Match &);
76 #endif
77
78 #endif
This page took 0.040185 seconds and 5 git commands to generate.