Search in sources :

Example 1 with ActionForm

use of org.talend.dataprep.api.action.ActionForm in project data-prep by Talend.

the class PreparationConversions method toPreparationMessage.

private PreparationMessage toPreparationMessage(Preparation source, PreparationMessage target, ApplicationContext applicationContext) {
    final PreparationRepository preparationRepository = applicationContext.getBean(PreparationRepository.class);
    final ActionRegistry actionRegistry = applicationContext.getBean(ActionRegistry.class);
    // Steps diff metadata
    final List<StepDiff> diffs = // 
    source.getSteps().stream().filter(// 
    step -> !Step.ROOT_STEP.id().equals(step.id())).map(// 
    Step::getDiff).collect(toList());
    target.setDiff(diffs);
    // Actions
    if (source.getHeadId() != null) {
        // Get preparation actions
        final String headId = source.getHeadId();
        final Step head = preparationRepository.get(headId, Step.class);
        if (head != null) {
            final PreparationActions prepActions = preparationRepository.get(head.getContent(), PreparationActions.class);
            if (prepActions != null) {
                final List<Action> actions = prepActions.getActions();
                target.setActions(prepActions.getActions());
                // Allow distributed run
                boolean allowDistributedRun = true;
                for (Action action : actions) {
                    final ActionDefinition actionDefinition = actionRegistry.get(action.getName());
                    if (actionDefinition.getBehavior().contains(ActionDefinition.Behavior.FORBID_DISTRIBUTED)) {
                        allowDistributedRun = false;
                        break;
                    }
                }
                target.setAllowDistributedRun(allowDistributedRun);
                // no need to have lock information (and may also break StandAlonePreparationParser...)
                target.setLock(null);
                // Actions metadata
                if (actionRegistry == null) {
                    LOGGER.debug("No action metadata available, unable to serialize action metadata for preparation {}.", source.id());
                } else {
                    List<ActionForm> actionDefinitions = // 
                    actions.stream().map(a -> // 
                    actionRegistry.get(a.getName()).adapt(// 
                    ScopeCategory.from(a.getParameters().get(ImplicitParameters.SCOPE.getKey())))).map(// 
                    a -> a.getActionForm(getLocale())).map(// 
                    PreparationConversions::disallowColumnCreationChange).collect(Collectors.toList());
                    target.setMetadata(actionDefinitions);
                }
            }
        } else {
            LOGGER.warn("Head step #{} for preparation #{} does not exist.", headId, source.id());
            target.setActions(Collections.emptyList());
            target.setSteps(Collections.singletonList(Step.ROOT_STEP));
            target.setMetadata(Collections.emptyList());
        }
    } else {
        target.setActions(Collections.emptyList());
        target.setSteps(Collections.singletonList(Step.ROOT_STEP));
        target.setMetadata(Collections.emptyList());
    }
    return target;
}
Also used : ImplicitParameters(org.talend.dataprep.transformation.actions.common.ImplicitParameters) StringUtils(org.apache.commons.lang.StringUtils) CREATE_NEW_COLUMN(org.talend.dataprep.transformation.actions.common.ActionsUtils.CREATE_NEW_COLUMN) BeanConversionService.fromBean(org.talend.dataprep.conversions.BeanConversionService.fromBean) LoggerFactory(org.slf4j.LoggerFactory) PreparationRepository(org.talend.dataprep.preparation.store.PreparationRepository) org.talend.dataprep.api.preparation(org.talend.dataprep.api.preparation) PersistentPreparation(org.talend.dataprep.preparation.store.PersistentPreparation) ScopeCategory(org.talend.dataprep.transformation.actions.category.ScopeCategory) BeanConversionService(org.talend.dataprep.conversions.BeanConversionService) Logger(org.slf4j.Logger) LocaleContextHolder.getLocale(org.springframework.context.i18n.LocaleContextHolder.getLocale) ActionRegistry(org.talend.dataprep.transformation.pipeline.ActionRegistry) Owner(org.talend.dataprep.api.share.Owner) Collectors(java.util.stream.Collectors) ApplicationContext(org.springframework.context.ApplicationContext) ActionForm(org.talend.dataprep.api.action.ActionForm) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Component(org.springframework.stereotype.Component) ActionDefinition(org.talend.dataprep.api.action.ActionDefinition) UserPreparation(org.talend.dataprep.preparation.service.UserPreparation) Security(org.talend.dataprep.security.Security) Collections(java.util.Collections) BeanConversionServiceWrapper(org.talend.dataprep.processor.BeanConversionServiceWrapper) PreparationRepository(org.talend.dataprep.preparation.store.PreparationRepository) ActionRegistry(org.talend.dataprep.transformation.pipeline.ActionRegistry) ActionDefinition(org.talend.dataprep.api.action.ActionDefinition) ActionForm(org.talend.dataprep.api.action.ActionForm)

Aggregations

Collections (java.util.Collections)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 Collectors.toList (java.util.stream.Collectors.toList)1 StringUtils (org.apache.commons.lang.StringUtils)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1 ApplicationContext (org.springframework.context.ApplicationContext)1 LocaleContextHolder.getLocale (org.springframework.context.i18n.LocaleContextHolder.getLocale)1 Component (org.springframework.stereotype.Component)1 ActionDefinition (org.talend.dataprep.api.action.ActionDefinition)1 ActionForm (org.talend.dataprep.api.action.ActionForm)1 org.talend.dataprep.api.preparation (org.talend.dataprep.api.preparation)1 Owner (org.talend.dataprep.api.share.Owner)1 BeanConversionService (org.talend.dataprep.conversions.BeanConversionService)1 BeanConversionService.fromBean (org.talend.dataprep.conversions.BeanConversionService.fromBean)1 UserPreparation (org.talend.dataprep.preparation.service.UserPreparation)1 PersistentPreparation (org.talend.dataprep.preparation.store.PersistentPreparation)1 PreparationRepository (org.talend.dataprep.preparation.store.PreparationRepository)1 BeanConversionServiceWrapper (org.talend.dataprep.processor.BeanConversionServiceWrapper)1