All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dizitart.no2.migration.commands.BaseCommand Maven / Gradle / Ivy

package org.dizitart.no2.migration.commands;

import org.dizitart.no2.Nitrite;
import org.dizitart.no2.collection.Document;
import org.dizitart.no2.collection.NitriteId;
import org.dizitart.no2.collection.operation.CollectionOperations;
import org.dizitart.no2.store.NitriteMap;
import org.dizitart.no2.store.NitriteStore;

/**
 * Represents a base command for database migration. It initializes
 * different components necessary to execute the migration steps
 *
 * @author Anindya Chatterjee
 * @since 4.0
 */
abstract class BaseCommand implements Command {
    /**
     * The nitrite store.
     */
    protected NitriteStore nitriteStore;

    /**
     * The nitrite map.
     */
    protected NitriteMap nitriteMap;

    /**
     * The collection operations.
     */
    protected CollectionOperations operations;

    @Override
    public void close() {
        if (operations != null) {
            operations.close();
        }
    }

    /**
     * Initializes the database for migration.
     *
     * @param nitrite        the nitrite
     * @param collectionName the collection name
     */
    void initialize(Nitrite nitrite, String collectionName) {
        nitriteStore = nitrite.getStore();

        nitriteMap = nitriteStore.openMap(collectionName, NitriteId.class, Document.class);
        operations = new CollectionOperations(collectionName, nitriteMap, nitrite.getConfig(), null);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy