package ru.hflabs.rcd.task.performer.index;
import ru.hflabs.rcd.model.task.TaskParameterDefinition;
import ru.hflabs.rcd.model.task.TaskResultStatus;
import ru.hflabs.rcd.task.performer.ParametersHolder;
import ru.hflabs.rcd.task.performer.TaskResultDetails;
import java.util.Collection;
/**
* Класс <class>IndexRebuildResult</class> реализует декоратор результатов перестроения индекса
*
* @see ParametersHolder
*/
public class IndexRebuildResult extends ParametersHolder {
/** Коллекция перестроенных индексов */
public static final transient TaskParameterDefinition<Collection<Index>> INDEXES = new TaskParameterDefinition<>("indexes", null);
public IndexRebuildResult() {
super();
}
public IndexRebuildResult(Collection<Index> indexes) {
setIndexes(indexes);
}
public void setIndexes(Collection<Index> indexes) {
injectParameter(INDEXES.name, indexes);
}
/**
* Класс <class>Content</class> содержит результат перестроения индекса
*
* @see IndexRebuildResult
*/
public static class Index extends TaskResultDetails {
/** Целевой класс индекса */
public static final transient TaskParameterDefinition<String> TARGET_CLASS = new TaskParameterDefinition<>("targetClass", null);
/** Общее количество документов в индексе */
public static final transient TaskParameterDefinition<Integer> DOCUMENT_COUNT = new TaskParameterDefinition<>("documentCount", 0);
public Index() {
this(TaskResultStatus.UNKNOWN, null, -1);
}
public Index(TaskResultStatus status, String targetClass, int documentCount) {
setStatus(status);
setTargetClass(targetClass);
setDocumentCount(documentCount);
}
public String getTargetClass() {
return retrieveParameter(TARGET_CLASS.name, String.class, TARGET_CLASS.value);
}
public void setTargetClass(String targetClass) {
injectParameter(TARGET_CLASS.name, targetClass);
}
public int getDocumentCount() {
return retrieveParameter(DOCUMENT_COUNT.name, Integer.class, DOCUMENT_COUNT.value);
}
public void setDocumentCount(int documentCount) {
injectParameter(DOCUMENT_COUNT.name, documentCount);
}
}
}