-
Eike Cochu authoredEike Cochu authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
DeleteModelCommand.java 2.24 KiB
package de.vipra.cmd.option;
import java.io.File;
import java.util.Arrays;
import org.bson.types.ObjectId;
import de.vipra.util.Config;
import de.vipra.util.ConsoleUtils;
import de.vipra.util.model.ArticleFull;
import de.vipra.util.model.SequenceFull;
import de.vipra.util.model.TextEntityFull;
import de.vipra.util.model.TopicFull;
import de.vipra.util.model.TopicModel;
import de.vipra.util.model.WindowFull;
import de.vipra.util.model.WordFull;
import de.vipra.util.service.MongoService;
import de.vipra.util.service.Service.QueryBuilder;
public class DeleteModelCommand implements Command {
private final String[] names;
public DeleteModelCommand(final String[] names) {
this.names = names;
}
@Override
public void run() throws Exception {
final Config config = Config.getConfig();
final MongoService<TopicModel, String> dbTopicModels = MongoService.getDatabaseService(config, TopicModel.class);
final MongoService<ArticleFull, ObjectId> dbArticles = MongoService.getDatabaseService(config, ArticleFull.class);
final MongoService<TopicFull, ObjectId> dbTopics = MongoService.getDatabaseService(config, TopicFull.class);
final MongoService<WindowFull, Integer> dbWindows = MongoService.getDatabaseService(config, WindowFull.class);
final MongoService<SequenceFull, ObjectId> dbSequences = MongoService.getDatabaseService(config, SequenceFull.class);
final MongoService<WordFull, String> dbWords = MongoService.getDatabaseService(config, WordFull.class);
final MongoService<TextEntityFull, String> dbEntities = MongoService.getDatabaseService(config, TextEntityFull.class);
for (final String name : names) {
final File modelDir = new File(config.getDataDirectory(), name);
if (modelDir.exists()) {
org.apache.commons.io.FileUtils.deleteDirectory(modelDir);
ConsoleUtils.info("model deleted: " + name);
}
}
dbTopicModels.deleteMultiple(Arrays.asList(names));
for (final String name : names) {
final QueryBuilder builder = QueryBuilder.builder().criteria("topicModel", new TopicModel(name));
dbArticles.deleteMultiple(builder);
dbTopics.deleteMultiple(builder);
dbWindows.deleteMultiple(builder);
dbSequences.deleteMultiple(builder);
dbWords.deleteMultiple(builder);
dbEntities.deleteMultiple(builder);
}
}
}