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(); } }