Initial checkin
[opensuse:qtobs.git] / obsbuildresults.cpp
1 /*
2  *  Qt OBS - A Qt based OBS client
3  *
4  *  Copyright (C) 2010 Novell Inc, Klaas Freitag <freitag@suse.de>
5  *
6  *  This program is free software: you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation, either version 2 of the License, or
9  *  (at your option) version 3.
10  *
11  *  This program 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
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  *  --
20  *  Written by Klaas Freitag <freitag@suse.de>
21  *  Contributors:
22  */
23
24 #include <QStringList>
25
26 #include "obsbuildresults.h"
27
28 OBSPackageBuildResult::OBSPackageBuildResult()
29 {
30 }
31
32 OBSPackageBuildResult::OBSPackageBuildResult( const QString& name, const QString& state)
33     :mName(name), mState(state)
34 {
35 }
36
37 QString OBSPackageBuildResult::name() const
38 {
39     return mName;
40 }
41
42 QString OBSPackageBuildResult::state() const
43 {
44     return mState;
45 }
46
47 /* ============================================================= */
48
49 OBSProjectBuildResult::OBSProjectBuildResult()
50 {
51 }
52
53 void OBSProjectBuildResult::setProject( const QString& prj )
54 {
55     mProject = prj;
56 }
57
58 QString OBSProjectBuildResult::project() const
59 {
60   return mProject;
61 }
62
63 void OBSProjectBuildResult::setRepository( const QString& repo )
64 {
65    mRepo = repo;
66 }
67
68 QString OBSProjectBuildResult::repository() const
69 {
70    return mRepo;
71 }
72
73 void OBSProjectBuildResult::setArchitecture( const QString& arch )
74 {
75    mArch = arch;
76 }
77
78 QString OBSProjectBuildResult::architecture() const
79 {
80    return mArch;
81 }
82
83 QList<OBSPackageBuildResult> OBSProjectBuildResult::packageResults()
84 {
85   return mPackageResults;
86 }
87
88 void OBSProjectBuildResult::addPackageBuildResult( const OBSPackageBuildResult& packres )
89 {
90   mPackageResults.append( packres );
91 }
92
93 void OBSProjectBuildResult::setPackageBuildResults( QList<OBSPackageBuildResult> list )
94 {
95   mPackageResults = list;
96 }
97
98 /* ============================================================= */
99
100 OBSProjectBuildResults::OBSProjectBuildResults()
101     :QList<OBSProjectBuildResult>()
102 {
103
104 }
105
106 QStringList OBSProjectBuildResults::repositories() const
107 {
108   QStringList re;
109   QListIterator<OBSProjectBuildResult> i(*this);
110   while (i.hasNext()) {
111     QString repo = i.next().repository();
112     if( !re.contains( repo ) ) {
113       re.append( repo );
114     }
115   }
116   return re;
117 }
118
119 QStringList OBSProjectBuildResults::packages() const
120 {
121   QStringList re;
122   if( !isEmpty()) {
123     OBSProjectBuildResult prjResult = first();
124
125     QListIterator<OBSPackageBuildResult> i( prjResult.packageResults() );
126     while (i.hasNext()) {
127       QString pack = i.next().name();
128       if( !re.contains( pack ) ) {
129         re.append( pack );
130       }
131     }
132   }
133   return re;
134 }
135
136 #if 0
137 QStringList OBSProjectBuildResults::architectures( const QString& package )
138 {
139
140 }
141 #endif