Модуль org.unidata.mdm.bulk.core¶
Общая информация¶
Модуль содержит сервис запуска и получения информации о массовых операциях, реализующих интерфейс BulkOperation
, а также интерфейсы и классы, необходимые при реализации самих операций для использования функциональности модуля.
Зависимости:
org.unidata.mdm.core
org.unidata.mdm.search
org.unidata.mdm.draft
Параметры конфигурации:
Отсутствуют внешние параметры
Точки в пайплайнах:
Отсутствуют
Классы и интерфейсы модуля¶
BulkOperationService - Сервис для работы c массовыми операциями.
содержит реестр массовых операций (BulkOperation), в который необходимо регистрировать создаваемые операции;
содержит реестр критериев выборки (BulkOperationState), в которые необходимо регистрировать новые критерии;
позволяет получить описания (BulkOperationDescriptor) всех операций из реестра;
позволяет получить все критерии выборки из реестра;
позволяет получить описание по ID операции;
позволяет получить критерий выборки по имени критерия;
позволяет получить описания всех операций, которые указанную комбинацию пространств имен и критериев выборки;
позволяет запустить операцию;
BulkOperation - Интерфейс, через который реализуются массовые операции. Позволяет получить ID операции и запустить ее исполнение.
BulkOperationDescriptor - Представляет дескриптор операции.
BulkOperationState - Представляет критерий выборки.
Сервисы¶
Сервис для работы с массовыми операциями (org.unidata.mdm.bulk.core.service.BulkOperationService
)
В текущей стандартной реализации поиск операций Collection<BulkOperationDescriptor> descriptors(Collection<String> nameSpaces, Collection<String> states)
по поддерживаемым пространствам имен и критериям выборки происходит таким образом, что возвращаются все операции, которые поддерживают хотя бы одно из пространств имен и все из указанных критериев выборки.
/**
* @author Mikhail Mikhailov on Mar 25, 2022
*/
public interface BulkOperationService {
/**
* Registers a bulk operation at system.
* @param operation the operation
*/
void register(BulkOperation operation);
/**
* Registers BOp states.
* @param states the states
*/
void register(Collection<BulkOperationState> states);
/**
* Gets all registered descriptors.
* @return all registered descriptors
*/
@Nonnull
Collection<BulkOperationDescriptor> descriptors();
/**
* Returns all registered states.
* @return all registered states
*/
@Nonnull
Collection<BulkOperationState> states();
/**
* Gets a specific descriptor by BOp ID.
* @param id the id
* @return descriptor or null, if not found
*/
@Nullable
BulkOperationDescriptor descriptor(String id);
/**
* Gets registerd state by state name
* @param name the state name
* @return state or null, if not found
*/
@Nullable
BulkOperationState state(String name);
/**
* Filter only those descriptors, which support given combination of namespaces and states.
* @param nameSpaces namespaces
* @param states states
* @return collection of descriptors
*/
@Nonnull
Collection<BulkOperationDescriptor> descriptors(Collection<String> nameSpaces, Collection<String> states);
/**
* Runs a bulk operation.
* @param ctx the context
* @return result
*/
AbstractBulkOperationResult execute(AbstractBulkOperationContext ctx);
}
Классы и интерфейсы, необходимые для реализации¶
Интерфейс массовой операции¶
org.unidata.mdm.bulk.core.type.BulkOperation:
/**
* @author Mikhail Mikhailov on Mar 25, 2022
*/
public interface BulkOperation {
/**
* Gets the ID of this BOp.
* @return ID of this BOp
*/
BulkOperationDescriptor descriptor();
/**
* Executes this bulk operation.
* @param input the BOp input
*/
AbstractBulkOperationResult execute(AbstractBulkOperationContext input);
}
Дескриптор операции¶
org.unidata.mdm.bulk.core.type.BulkOperationDescriptor
Указаны только поля:
/**
* @author Mikhail Mikhailov on Mar 26, 2022
*/
public class BulkOperationDescriptor {
/**
* This BOp ID.
*/
private final String id;
/**
* This BOp module ID.
*/
private final String moduleId;
/**
* Display name.
*/
private final Supplier<String> displayName;
/**
* Description.
*/
private final Supplier<String> description;
/**
* The exact input type class.
*/
private final Class<? extends AbstractBulkOperationContext> inputType;
/**
* Supported namespaces.
*/
private final Set<NameSpace> nameSpaces = new HashSet<>();
/**
* Supported operation states.
* Collection of states is understood as AND condition
* (if this descriptor defines two states, those two states must also be defined during filtering to select this op/descriptor).
*/
private final Set<BulkOperationState> states = new HashSet<>();
private final Set<BulkOperationOption> options = new HashSet(); //Параметры запуска операции
}
Критерий выборки¶
org.unidata.mdm.bulk.core.type.BulkOperationState
Указаны только поля:
/**
* @author Mikhail Mikhailov on Mar 25, 2022
*/
public final class BulkOperationState {
/**
* NS.
*/
private final String name;
/**
* Exporting module ID.
*/
private final String moduleId;
/**
* A possibly localized display name.
*/
private final Supplier<String> displayName;
/**
* A possibly localized description.
*/
private final Supplier<String> description;
/**
* Hash.
*/
private final int h;
}