1/*
2 Copyright (c) 2009 Andras Mantia <amantia@kde.org>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19
20#include "metadatajobbase.h"
21#include "metadatajobbase_p.h"
22#include "message_p.h"
23#include "session_p.h"
24
25#include <KDE/KLocalizedString>
26#include <KDE/KDebug>
27
28using namespace KIMAP;
29
30QByteArray MetaDataJobBasePrivate::addPrefix( const QByteArray &entry, const QByteArray &attribute ) const
31{
32 if (serverCapability == MetaDataJobBase::Annotatemore) {
33 if (attribute == "value.shared") {
34 return QByteArray("/shared").append(entry);
35 } else if (attribute == "value.priv") {
36 return QByteArray("/private").append(entry);
37 }
38 }
39 return entry;
40}
41
42
43QByteArray MetaDataJobBasePrivate::removePrefix( const QByteArray &entry ) const
44{
45 if (serverCapability == MetaDataJobBase::Annotatemore) {
46 if ( entry.startsWith("/shared")) {
47 return entry.mid(QByteArray("/shared").size());
48 }
49 if ( entry.startsWith("/private")) {
50 return entry.mid(QByteArray("/private").size());
51 }
52 }
53 return entry;
54}
55
56QByteArray MetaDataJobBasePrivate::getAttribute( const QByteArray &entry ) const
57{
58 if (serverCapability == MetaDataJobBase::Annotatemore) {
59 if ( entry.startsWith("/shared")) {
60 return QByteArray("value.shared");
61 } else if (entry.startsWith("/private")) {
62 return QByteArray("value.priv");
63 }
64 }
65 return QByteArray();
66}
67
68MetaDataJobBase::MetaDataJobBase( Session *session )
69 : Job( *new MetaDataJobBasePrivate( session, i18n( "MetaDataJobBase" ) ) )
70{
71}
72
73MetaDataJobBase::MetaDataJobBase( JobPrivate &dd )
74 : Job( dd )
75{
76}
77
78MetaDataJobBase::~MetaDataJobBase()
79{
80}
81
82void MetaDataJobBase::setMailBox( const QString &mailBox )
83{
84 Q_D( MetaDataJobBase );
85 d->mailBox = mailBox;
86}
87
88QString MetaDataJobBase::mailBox() const
89{
90 Q_D( const MetaDataJobBase );
91 return d->mailBox;
92}
93
94void MetaDataJobBase::setServerCapability(const ServerCapability& capability)
95{
96 Q_D( MetaDataJobBase );
97 d->serverCapability = capability;
98}
99
100MetaDataJobBase::ServerCapability MetaDataJobBase::serverCapability() const
101{
102 Q_D( const MetaDataJobBase );
103 return d->serverCapability;
104}
105