Commit 5bcd6a4c authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Add impl class here. Continue to prepare autotesting

parent 1f7ac3dd
......@@ -4,8 +4,8 @@ include_directories(
)
set(pimdataexporter_calendar_SRCS
calendar/exportcalendarjobinterface.cpp
calendar/importcalendarjobinterface.cpp
calendar/exportcalendarjobinterfaceimpl.cpp
calendar/importcalendarjobinterfaceimpl.cpp
)
set(pimdataexporter_addressbook_SRCS
......@@ -27,6 +27,8 @@ set(pimdataexporter_alarm_SRCS
set(pimdataexporter_interfaces_SRCS
notes/exportnotesjobinterface.cpp
notes/importnotesjobinterface.cpp
calendar/exportcalendarjobinterface.cpp
calendar/importcalendarjobinterface.cpp
)
set(pimdataexporter_notes_SRCS
......
......@@ -61,7 +61,7 @@ void ExportCalendarJobInterface::slotCheckBackupResource()
{
setProgressDialogLabel(i18n("Backing up resources..."));
increaseProgressDialog();
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotWriteNextArchiveResource);
exportArchiveResource();
}
void ExportCalendarJobInterface::slotCheckBackupConfig()
......@@ -77,60 +77,6 @@ void ExportCalendarJobInterface::slotCheckBackupConfig()
Q_EMIT jobFinished();
}
void ExportCalendarJobInterface::slotCalendarJobTerminated()
{
if (wasCanceled()) {
Q_EMIT jobFinished();
return;
}
mIndexIdentifier++;
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotWriteNextArchiveResource);
}
void ExportCalendarJobInterface::slotWriteNextArchiveResource()
{
Akonadi::AgentManager *manager = Akonadi::AgentManager::self();
const Akonadi::AgentInstance::List list = manager->instances();
if (mIndexIdentifier < list.count()) {
const Akonadi::AgentInstance agent = list.at(mIndexIdentifier);
const QString identifier = agent.identifier();
if (identifier.contains(QLatin1String("akonadi_icaldir_resource_"))) {
const QString archivePath = Utils::calendarPath() + identifier + QLatin1Char('/');
ResourceConverterImpl converter;
const QString url = converter.resourcePath(identifier);
if (!mAgentPaths.contains(url)) {
mAgentPaths << url;
if (!url.isEmpty()) {
ExportResourceArchiveJob *resourceJob = new ExportResourceArchiveJob(this);
resourceJob->setArchivePath(archivePath);
resourceJob->setUrl(url);
resourceJob->setIdentifier(identifier);
resourceJob->setArchive(archive());
resourceJob->setArchiveName(QStringLiteral("calendar.zip"));
connect(resourceJob, &ExportResourceArchiveJob::error, this, &ExportCalendarJobInterface::error);
connect(resourceJob, &ExportResourceArchiveJob::info, this, &ExportCalendarJobInterface::info);
connect(resourceJob, &ExportResourceArchiveJob::terminated, this, &ExportCalendarJobInterface::slotCalendarJobTerminated);
resourceJob->start();
} else {
qCDebug(PIMDATAEXPORTERCORE_LOG) << "Url is empty for " << identifier;
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotCalendarJobTerminated);
}
} else {
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotCalendarJobTerminated);
}
} else if (identifier.contains(QLatin1String("akonadi_ical_resource_"))) {
backupResourceFile(agent, Utils::calendarPath());
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotCalendarJobTerminated);
} else {
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotCalendarJobTerminated);
}
} else {
Q_EMIT info(i18n("Resources backup done."));
QTimer::singleShot(0, this, &ExportCalendarJobInterface::slotCheckBackupConfig);
}
}
void ExportCalendarJobInterface::backupConfig()
{
setProgressDialogLabel(i18n("Backing up config..."));
......
......@@ -17,8 +17,8 @@
Boston, MA 02110-1301, USA.
*/
#ifndef EXPORTCALENDARJOB_H
#define EXPORTCALENDARJOB_H
#ifndef EXPORTCALENDARJOBINTERFACE_H
#define EXPORTCALENDARJOBINTERFACE_H
#include "abstractimportexportjob.h"
#include "pimdataexportercore_private_export.h"
......@@ -33,14 +33,14 @@ public:
void start() override;
protected:
virtual void exportArchiveResource() = 0;
void slotCheckBackupConfig();
private:
void slotCheckBackupResource();
void slotCheckBackupConfig();
void slotCalendarJobTerminated();
void slotWriteNextArchiveResource();
void backupConfig();
int mIndexIdentifier = 0;
};
#endif // EXPORTCALENDARJOB_H
#endif // EXPORTCALENDARJOBINTERFACE_H
/*
Copyright (C) 2012-2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "exportcalendarjobinterfaceimpl.h"
#include <MailCommon/MailUtil>
#include <AkonadiCore/AgentManager>
#include <KLocalizedString>
#include <QTemporaryFile>
#include <KConfigGroup>
#include <QTimer>
#include <QFile>
#include <QDir>
#include <QColor>
#include "resourceconverterimpl.h"
#include <QStandardPaths>
#include <exportresourcearchivejob.h>
ExportCalendarJobInterfaceImpl::ExportCalendarJobInterfaceImpl(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep)
: ExportCalendarJobInterface(parent, typeSelected, archiveStorage, numberOfStep)
{
}
ExportCalendarJobInterfaceImpl::~ExportCalendarJobInterfaceImpl()
{
}
void ExportCalendarJobInterfaceImpl::exportArchiveResource()
{
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotWriteNextArchiveResource);
}
void ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated()
{
if (wasCanceled()) {
Q_EMIT jobFinished();
return;
}
mIndexIdentifier++;
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotWriteNextArchiveResource);
}
void ExportCalendarJobInterfaceImpl::slotWriteNextArchiveResource()
{
Akonadi::AgentManager *manager = Akonadi::AgentManager::self();
const Akonadi::AgentInstance::List list = manager->instances();
if (mIndexIdentifier < list.count()) {
const Akonadi::AgentInstance agent = list.at(mIndexIdentifier);
const QString identifier = agent.identifier();
if (identifier.contains(QLatin1String("akonadi_icaldir_resource_"))) {
const QString archivePath = Utils::calendarPath() + identifier + QLatin1Char('/');
ResourceConverterImpl converter;
const QString url = converter.resourcePath(identifier);
if (!mAgentPaths.contains(url)) {
mAgentPaths << url;
if (!url.isEmpty()) {
ExportResourceArchiveJob *resourceJob = new ExportResourceArchiveJob(this);
resourceJob->setArchivePath(archivePath);
resourceJob->setUrl(url);
resourceJob->setIdentifier(identifier);
resourceJob->setArchive(archive());
resourceJob->setArchiveName(QStringLiteral("calendar.zip"));
connect(resourceJob, &ExportResourceArchiveJob::error, this, &ExportCalendarJobInterfaceImpl::error);
connect(resourceJob, &ExportResourceArchiveJob::info, this, &ExportCalendarJobInterfaceImpl::info);
connect(resourceJob, &ExportResourceArchiveJob::terminated, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
resourceJob->start();
} else {
qCDebug(PIMDATAEXPORTERCORE_LOG) << "Url is empty for " << identifier;
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
}
} else {
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
}
} else if (identifier.contains(QLatin1String("akonadi_ical_resource_"))) {
backupResourceFile(agent, Utils::calendarPath());
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
} else {
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
}
} else {
Q_EMIT info(i18n("Resources backup done."));
QTimer::singleShot(0, this, &ExportCalendarJobInterfaceImpl::slotCheckBackupConfig);
}
}
/*
Copyright (C) 2012-2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef EXPORTCALENDARJOBINTERFACEIMPL_H
#define EXPORTCALENDARJOBINTERFACEIMPL_H
#include "exportcalendarjobinterface.h"
#include "pimdataexportercore_private_export.h"
class ArchiveStorage;
class PIMDATAEXPORTER_TESTS_EXPORT ExportCalendarJobInterfaceImpl : public ExportCalendarJobInterface
{
Q_OBJECT
public:
explicit ExportCalendarJobInterfaceImpl(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep);
~ExportCalendarJobInterfaceImpl() override;
protected:
void exportArchiveResource() override;
private:
void slotCalendarJobTerminated();
void slotWriteNextArchiveResource();
int mIndexIdentifier = 0;
};
#endif // EXPORTCALENDARJOBINTERFACEIMPL_H
......@@ -18,10 +18,9 @@
*/
#include "importcalendarjobinterface.h"
#include "resourceconverterimpl.h"
#include "archivestorage.h"
#include <PimCommonAkonadi/CreateResource>
#include <KLocalizedString>
#include <KConfigGroup>
#include <KArchiveDirectory>
......@@ -36,14 +35,7 @@
#include <QStandardPaths>
#include <QTimer>
#include <QColor>
#include "resourceconverterimpl.h"
namespace {
inline const QString storeCalendar()
{
return QStringLiteral("backupcalendar/");
}
}
ImportCalendarJobInterface::ImportCalendarJobInterface(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep)
: AbstractImportExportJob(parent, archiveStorage, typeSelected, numberOfStep)
......@@ -83,73 +75,6 @@ void ImportCalendarJobInterface::slotNextStep()
}
}
void ImportCalendarJobInterface::restoreResources()
{
Q_EMIT info(i18n("Restore resources..."));
setProgressDialogLabel(i18n("Restore resources..."));
increaseProgressDialog();
QStringList listResource;
listResource << restoreResourceFile(QStringLiteral("akonadi_ical_resource"), Utils::calendarPath(), storeCalendar());
if (!mListResourceFile.isEmpty()) {
QDir dir(mTempDirName);
dir.mkdir(Utils::addressbookPath());
const QString copyToDirName(mTempDirName + QLatin1Char('/') + Utils::calendarPath());
const int numberOfResourceFile = mListResourceFile.size();
for (int i = 0; i < numberOfResourceFile; ++i) {
resourceFiles value = mListResourceFile.at(i);
QMap<QString, QVariant> settings;
if (value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_"))
|| value.akonadiConfigFile.contains(QLatin1String("akonadi_ical_resource_"))) {
const KArchiveEntry *fileResouceEntry = mArchiveDirectory->entry(value.akonadiConfigFile);
if (fileResouceEntry && fileResouceEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(fileResouceEntry);
copyArchiveFileTo(file, copyToDirName);
QString resourceName(file->name());
QString filename(resourceName);
//TODO adapt filename otherwise it will use all the time the same filename.
qCDebug(PIMDATAEXPORTERCORE_LOG) << " filename :" << filename;
KSharedConfig::Ptr resourceConfig = KSharedConfig::openConfig(copyToDirName + QLatin1Char('/') + resourceName);
ResourceConverterImpl converter;
const QString newUrl = converter.adaptResourcePath(resourceConfig, storeCalendar());
QFileInfo newUrlInfo(newUrl);
const QString dataFile = value.akonadiResources;
const KArchiveEntry *dataResouceEntry = mArchiveDirectory->entry(dataFile);
bool isDirResource = value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_"));
if (dataResouceEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(dataResouceEntry);
//TODO adapt directory name too
extractZipFile(file, copyToDirName, newUrlInfo.path(), value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_")));
}
settings.insert(QStringLiteral("Path"), newUrl);
const QString agentConfigFile = value.akonadiAgentConfigFile;
if (!agentConfigFile.isEmpty()) {
const KArchiveEntry *akonadiAgentConfigEntry = mArchiveDirectory->entry(agentConfigFile);
if (akonadiAgentConfigEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(akonadiAgentConfigEntry);
copyArchiveFileTo(file, copyToDirName);
resourceName = file->name();
filename = Utils::akonadiAgentName(copyToDirName + QLatin1Char('/') + resourceName);
}
}
const QString resourceTypeName = isDirResource ? QStringLiteral("akonadi_icaldir_resource") : QStringLiteral("akonadi_ical_resource");
const QString newResource = mCreateResource->createResource(resourceTypeName, filename, settings, true);
infoAboutNewResource(newResource);
listResource << newResource;
qCDebug(PIMDATAEXPORTERCORE_LOG) << " newResource" << newResource;
}
}
}
}
//It's maildir support. Need to add support
startSynchronizeResources(listResource);
}
void ImportCalendarJobInterface::addSpecificResourceSettings(const KSharedConfig::Ptr &resourceConfig, const QString &resourceName, QMap<QString, QVariant> &settings)
{
......
......@@ -17,8 +17,8 @@
Boston, MA 02110-1301, USA.
*/
#ifndef IMPORTCALENDARJOB_H
#define IMPORTCALENDARJOB_H
#ifndef IMPORTCALENDARJOBINTERFACE_H
#define IMPORTCALENDARJOBINTERFACE_H
#include "abstractimportexportjob.h"
#include "pimdataexportercore_private_export.h"
......@@ -41,9 +41,9 @@ private:
Q_REQUIRED_RESULT bool isAConfigFile(const QString &name) const override;
void importkorganizerConfig(const KArchiveFile *file, const QString &config, const QString &filename, const QString &prefix);
void importeventViewConfig(const KArchiveFile *file, const QString &config, const QString &filename, const QString &prefix);
void restoreResources();
virtual void restoreResources() = 0;
void restoreConfig();
void addSpecificResourceSettings(const KSharedConfig::Ptr &resourceConfig, const QString &resourceName, QMap<QString, QVariant> &settings) override;
};
#endif // IMPORTCALENDARJOB_H
#endif // IMPORTCALENDARJOBINTERFACE_H
/*
Copyright (C) 2012-2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "importcalendarjobinterfaceimpl.h"
#include "archivestorage.h"
#include <PimCommonAkonadi/CreateResource>
#include <KLocalizedString>
#include <KConfigGroup>
#include <KArchiveDirectory>
#include <KArchiveEntry>
#include <KArchive>
#include <KZip>
#include "pimdataexportcore_debug.h"
#include <QFile>
#include <QDir>
#include <QStandardPaths>
#include <QTimer>
#include <QColor>
#include "resourceconverterimpl.h"
namespace {
inline const QString storeCalendar()
{
return QStringLiteral("backupcalendar/");
}
}
ImportCalendarJobInterfaceImpl::ImportCalendarJobInterfaceImpl(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep)
: ImportCalendarJobInterface(parent, typeSelected, archiveStorage, numberOfStep)
{
}
ImportCalendarJobInterfaceImpl::~ImportCalendarJobInterfaceImpl()
{
}
void ImportCalendarJobInterfaceImpl::restoreResources()
{
Q_EMIT info(i18n("Restore resources..."));
setProgressDialogLabel(i18n("Restore resources..."));
increaseProgressDialog();
QStringList listResource;
listResource << restoreResourceFile(QStringLiteral("akonadi_ical_resource"), Utils::calendarPath(), storeCalendar());
if (!mListResourceFile.isEmpty()) {
QDir dir(mTempDirName);
dir.mkdir(Utils::addressbookPath());
const QString copyToDirName(mTempDirName + QLatin1Char('/') + Utils::calendarPath());
const int numberOfResourceFile = mListResourceFile.size();
for (int i = 0; i < numberOfResourceFile; ++i) {
resourceFiles value = mListResourceFile.at(i);
QMap<QString, QVariant> settings;
if (value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_"))
|| value.akonadiConfigFile.contains(QLatin1String("akonadi_ical_resource_"))) {
const KArchiveEntry *fileResouceEntry = mArchiveDirectory->entry(value.akonadiConfigFile);
if (fileResouceEntry && fileResouceEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(fileResouceEntry);
copyArchiveFileTo(file, copyToDirName);
QString resourceName(file->name());
QString filename(resourceName);
//TODO adapt filename otherwise it will use all the time the same filename.
qCDebug(PIMDATAEXPORTERCORE_LOG) << " filename :" << filename;
KSharedConfig::Ptr resourceConfig = KSharedConfig::openConfig(copyToDirName + QLatin1Char('/') + resourceName);
ResourceConverterImpl converter;
const QString newUrl = converter.adaptResourcePath(resourceConfig, storeCalendar());
QFileInfo newUrlInfo(newUrl);
const QString dataFile = value.akonadiResources;
const KArchiveEntry *dataResouceEntry = mArchiveDirectory->entry(dataFile);
bool isDirResource = value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_"));
if (dataResouceEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(dataResouceEntry);
//TODO adapt directory name too
extractZipFile(file, copyToDirName, newUrlInfo.path(), value.akonadiConfigFile.contains(QLatin1String("akonadi_icaldir_resource_")));
}
settings.insert(QStringLiteral("Path"), newUrl);
const QString agentConfigFile = value.akonadiAgentConfigFile;
if (!agentConfigFile.isEmpty()) {
const KArchiveEntry *akonadiAgentConfigEntry = mArchiveDirectory->entry(agentConfigFile);
if (akonadiAgentConfigEntry->isFile()) {
const KArchiveFile *file = static_cast<const KArchiveFile *>(akonadiAgentConfigEntry);
copyArchiveFileTo(file, copyToDirName);
resourceName = file->name();
filename = Utils::akonadiAgentName(copyToDirName + QLatin1Char('/') + resourceName);
}
}
const QString resourceTypeName = isDirResource ? QStringLiteral("akonadi_icaldir_resource") : QStringLiteral("akonadi_ical_resource");
const QString newResource = mCreateResource->createResource(resourceTypeName, filename, settings, true);
infoAboutNewResource(newResource);
listResource << newResource;
qCDebug(PIMDATAEXPORTERCORE_LOG) << " newResource" << newResource;
}
}
}
}
//It's maildir support. Need to add support
startSynchronizeResources(listResource);
}
/*
Copyright (C) 2012-2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef IMPORTCALENDARJOBINTERFACEIMPL_H
#define IMPORTCALENDARJOBINTERFACEIMPL_H
#include "importcalendarjobinterface.h"
#include "pimdataexportercore_private_export.h"
class ArchiveStorage;
class KArchive;
class PIMDATAEXPORTER_TESTS_EXPORT ImportCalendarJobInterfaceImpl : public ImportCalendarJobInterface
{
Q_OBJECT
public:
explicit ImportCalendarJobInterfaceImpl(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep);
~ImportCalendarJobInterfaceImpl() override;
private:
void restoreResources() override;
};
#endif // IMPORTCALENDARJOBINTERFACEIMPL_H
......@@ -27,8 +27,8 @@
#include "addressbook/exportaddressbookjobinterface.h"
#include "addressbook/importaddressbookjobinterface.h"
#include "calendar/exportcalendarjobinterface.h"
#include "calendar/importcalendarjobinterface.h"
#include "calendar/importcalendarjobinterfaceimpl.h"
#include "calendar/exportcalendarjobinterfaceimpl.h"
#include "alarm/exportalarmjobinterface.h"
#include "alarm/importalarmjobinterface.h"
......@@ -46,7 +46,6 @@
#include <QDateTime>
#include <QLocale>
PimDataBackupRestore::PimDataBackupRestore(QObject *parent)
: QObject(parent)
{
......@@ -153,7 +152,7 @@ void PimDataBackupRestore::backupNextStep()
break;
case Utils::KOrganizer:
if (mStoreIterator.value().numberSteps != 0) {
mImportExportData = new ExportCalendarJobInterface(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps);
mImportExportData = new ExportCalendarJobInterfaceImpl(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps);
executeJob();
}
break;
......@@ -224,7 +223,7 @@ void PimDataBackupRestore::restoreNextStep()
break;
case Utils::KOrganizer:
if (mStoreIterator.value().numberSteps != 0) {
mImportExportData = new ImportCalendarJobInterface(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps);
mImportExportData = new ImportCalendarJobInterfaceImpl(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps);
executeJob();
}
break;
......