package com.nicewuerfel.blockown.importer;
import com.nicewuerfel.blockown.OwningState;
import com.nicewuerfel.blockown.Setting;
import com.nicewuerfel.blockown.database.Database;
import com.nicewuerfel.blockown.database.DatabaseAction;
import com.nicewuerfel.blockown.database.SqliteDatabase;
import java.io.File;
import java.sql.SQLException;
import java.util.Iterator;
public class Sqlite extends Importer {
public Sqlite(Setting settings, Database db, File pluginsFolder, Runnable runnable) {
super(settings, db, pluginsFolder, runnable);
}
@Override
public void run() {
Database db = getDatabase();
if (db instanceof SqliteDatabase) {
throw new ImporterException("Can't import from running database");
}
try (Database source = new SqliteDatabase(getOutput(), getPluginsFolder())) {
Iterator<OwningState> it = source.getOwnings();
OwningState owning;
while ((owning = it.next()) != null) {
if (!db.getOwner(owning.getOwnable()).isPresent() && owning.getUser().isPresent()) {
db.enqueue(DatabaseAction.newOwnInstance(owning.getOwnable(), owning.getUser().get()));
}
}
} catch (SQLException | ClassNotFoundException e) {
getOutput().printException(e);
}
finished();
}
}