Search in sources :

Example 21 with StringUtils.isEmpty

use of org.apache.commons.lang3.StringUtils.isEmpty in project midpoint by Evolveum.

the class ChangePasswordPanel method initColumns.

private List<IColumn<PasswordAccountDto, String>> initColumns() {
    List<IColumn<PasswordAccountDto, String>> columns = new ArrayList<>();
    columns.add(new CheckBoxColumn<>(Model.of(""), Selectable.F_SELECTED) {

        @Override
        protected IModel<Boolean> getEnabled(IModel<PasswordAccountDto> rowModel) {
            return () -> {
                PasswordAccountDto passwordAccountDto = rowModel.getObject();
                if (!passwordAccountDto.isMidpoint() && !passwordAccountDto.isPasswordCapabilityEnabled()) {
                    passwordAccountDto.setSelected(false);
                    return false;
                }
                if (CredentialsPropagationUserControlType.ONLY_MAPPING.equals(getModelObject().getPropagation())) {
                    if (!passwordAccountDto.isMidpoint() && !passwordAccountDto.isPasswordOutbound()) {
                        passwordAccountDto.setSelected(false);
                    }
                    return false;
                }
                if (passwordAccountDto.isMidpoint() && CredentialsPropagationUserControlType.IDENTITY_MANAGER_MANDATORY.equals(getModelObject().getPropagation())) {
                    return false;
                }
                if (!passwordAccountDto.isMidpoint() && midpointAccountSelected.getObject() && passwordAccountDto.isPasswordOutbound()) {
                    passwordAccountDto.setSelected(true);
                    return false;
                }
                return true;
            };
        }

        @Override
        protected void processBehaviourOfCheckBox(IsolatedCheckBoxPanel check, IModel<PasswordAccountDto> rowModel) {
            super.processBehaviourOfCheckBox(check, rowModel);
            IModel<String> titleModel = () -> {
                PasswordAccountDto passwordAccountDto = rowModel.getObject();
                if (!getEnabled(rowModel).getObject()) {
                    String key;
                    if (!passwordAccountDto.isMidpoint() && !passwordAccountDto.isPasswordCapabilityEnabled()) {
                        key = "ChangePasswordPanel.legendMessage.no.password.capability";
                    } else {
                        key = "ChangePasswordPanel.legendMessage.policy";
                    }
                    return createStringResource(key).getString();
                }
                return "";
            };
            check.add(AttributeAppender.append("title", titleModel));
        }

        @Override
        protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel<PasswordAccountDto> rowModel, IModel<Boolean> selected) {
            super.onUpdateRow(target, table, rowModel, selected);
            if (rowModel.getObject().isMidpoint()) {
                table.visitChildren(IsolatedCheckBoxPanel.class, (IVisitor<IsolatedCheckBoxPanel, IsolatedCheckBoxPanel>) (panel, iVisit) -> {
                    target.add(panel);
                });
            }
        }
    });
    columns.add(new AbstractColumn<PasswordAccountDto, String>(createStringResource("ChangePasswordPanel.name")) {

        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(Item<ICellPopulator<PasswordAccountDto>> item, String componentId, final IModel<PasswordAccountDto> rowModel) {
            item.add(new Label(componentId, new IModel<>() {

                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    PasswordAccountDto dto = rowModel.getObject();
                    return dto.getDisplayName();
                }
            }));
        }
    });
    columns.add(new AbstractColumn<PasswordAccountDto, String>(createStringResource("ChangePasswordPanel.resourceName")) {

        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(Item<ICellPopulator<PasswordAccountDto>> item, String componentId, final IModel<PasswordAccountDto> rowModel) {
            IModel<String> helpModel = () -> {
                String title = "";
                if (!rowModel.getObject().isMidpoint() && !rowModel.getObject().isPasswordCapabilityEnabled()) {
                    title = createStringResource("ChangePasswordPanel.legendMessage.no.password.capability").getString();
                }
                if (rowModel.getObject().isMaintenanceState()) {
                    title = title + (StringUtils.isEmpty(title) ? "" : " ") + createStringResource("ChangePasswordPanel.legendMessage.maintenance").getString();
                }
                return title;
            };
            item.add(new LabelWithHelpPanel(componentId, new IModel<>() {

                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    PasswordAccountDto dto = rowModel.getObject();
                    return dto.getResourceName();
                }
            }) {

                @Override
                protected IModel<String> getHelpModel() {
                    return helpModel;
                }
            });
        }
    });
    IconColumn enabled = new IconColumn<PasswordAccountDto>(createStringResource("ChangePasswordPanel.enabled")) {

        @Override
        protected DisplayType getIconDisplayType(IModel<PasswordAccountDto> rowModel) {
            String cssClass = "fa fa-question text-info";
            String tooltip = "ActivationStatusType.null";
            if (rowModel != null && rowModel.getObject() != null && rowModel.getObject().isEnabled() != null) {
                if (rowModel.getObject().isEnabled()) {
                    cssClass = GuiStyleConstants.CLASS_APPROVAL_OUTCOME_ICON_APPROVED_COLORED;
                    tooltip = "ActivationStatusType.ENABLED";
                } else {
                    cssClass = GuiStyleConstants.CLASS_APPROVAL_OUTCOME_ICON_REJECTED_COLORED;
                    tooltip = "ActivationStatusType.DISABLED";
                }
            }
            return GuiDisplayTypeUtil.createDisplayType(cssClass + " fa-fw fa-lg", "", createStringResource(tooltip).getString());
        }

        @Override
        public String getCssClass() {
            return "col-lg-1";
        }
    };
    columns.add(enabled);
    columns.add(new AbstractColumn<PasswordAccountDto, String>(createStringResource("ChangePasswordPanel.passwordValidation")) {

        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(Item<ICellPopulator<PasswordAccountDto>> cellItem, String componentId, IModel<PasswordAccountDto> rowModel) {
            IModel<List<StringLimitationResult>> limitationsModel = () -> {
                String policyOid = rowModel.getObject().getPasswordValuePolicyOid();
                if (StringUtils.isEmpty(policyOid) || !getModelObject().getPasswordPolicies().containsKey(policyOid)) {
                    return new ArrayList<>();
                }
                if (limitationsByPolicyOid.containsKey(policyOid)) {
                    return limitationsByPolicyOid.get(policyOid);
                }
                ValuePolicyType policyType = getModelObject().getPasswordPolicies().get(policyOid);
                PrismObject<? extends ObjectType> object = rowModel.getObject().getObject();
                List<StringLimitationResult> limitations = getPasswordPanel().getLimitationsForActualPassword(policyType, object);
                limitationsByPolicyOid.put(policyOid, limitations);
                return limitations;
            };
            PasswordPolicyValidationPanel validationPanel = new PasswordPolicyValidationPanel(componentId, limitationsModel);
            validationPanel.add(new VisibleEnableBehaviour() {

                @Override
                public boolean isVisible() {
                    return !limitationsModel.getObject().isEmpty();
                }
            });
            cellItem.add(validationPanel);
        }

        @Override
        public String getCssClass() {
            return "col-lg-2";
        }
    });
    columns.add(new AbstractColumn<PasswordAccountDto, String>(createStringResource("ChangePasswordPanel.propagationResult")) {

        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(Item<ICellPopulator<PasswordAccountDto>> cellItem, String componentId, IModel<PasswordAccountDto> rowModel) {
            LoadableModel<OperationResult> resultStatusModel = new LoadableModel<OperationResult>() {

                @Override
                protected OperationResult load() {
                    if (getModelObject().getProgress() == null || getModelObject().getProgress().getProgressReportActivities().isEmpty()) {
                        return null;
                    }
                    for (ProgressReportActivityDto progressActivity : getModelObject().getProgress().getProgressReportActivities()) {
                        if (rowModel.getObject().isSelected() && progressActivity.getStatus() != null && rowModel.getObject().isMidpoint() && (ProgressInformation.ActivityType.FOCUS_OPERATION.equals(progressActivity.getActivityType()) || (ProgressInformation.ActivityType.PROJECTOR.equals(progressActivity.getActivityType()) && !OperationResultStatusType.SUCCESS.equals(progressActivity.getStatus())))) {
                            return progressActivity.getOperationResult();
                        } else if (progressActivity.getStatus() != null && !rowModel.getObject().isMidpoint() && ProgressInformation.ActivityType.RESOURCE_OBJECT_OPERATION.equals(progressActivity.getActivityType()) && progressActivity.getResourceOperationResultList() != null && !progressActivity.getResourceOperationResultList().isEmpty()) {
                            String resourceOid = rowModel.getObject().getResourceOid();
                            if (StringUtils.isNotEmpty(resourceOid) && progressActivity.getResourceShadowDiscriminator() != null && resourceOid.equals(progressActivity.getResourceShadowDiscriminator().getResourceOid())) {
                                return progressActivity.getOperationResult();
                            }
                        }
                    }
                    return new OperationResult("Empty result");
                }
            };
            ColumnResultPanel resultPanel = new ColumnResultPanel(componentId, resultStatusModel) {

                @Override
                protected boolean isProjectionResult() {
                    return !rowModel.getObject().isMidpoint();
                }

                @Override
                protected DisplayType getDisplayForEmptyResult() {
                    String policyOid = rowModel.getObject().getPasswordValuePolicyOid();
                    if (StringUtils.isNotEmpty(policyOid) && ChangePasswordPanel.this.getModelObject().getPasswordPolicies().containsKey(policyOid)) {
                        if (limitationsByPolicyOid.get(policyOid) != null) {
                            var ref = new Object() {

                                boolean result = true;
                            };
                            limitationsByPolicyOid.get(policyOid).forEach((limit) -> {
                                if (ref.result && !limit.isSuccess()) {
                                    ref.result = false;
                                }
                            });
                            if (!ref.result && rowModel.getObject().isSelected()) {
                                return GuiDisplayTypeUtil.createDisplayType("fa-fw fa fa-times-circle text-muted fa-lg", "", createStringResource("ChangePasswordPanel.result.validationError").getString());
                            }
                        }
                    }
                    return null;
                }
            };
            resultPanel.setOutputMarkupId(true);
            cellItem.add(resultPanel);
        }

        @Override
        public String getCssClass() {
            return "col-lg-2";
        }
    });
    return columns;
}
Also used : PageSelfCredentials(com.evolveum.midpoint.web.page.self.PageSelfCredentials) IColumn(org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn) StringUtils(org.apache.commons.lang3.StringUtils) AuthUtil(com.evolveum.midpoint.authentication.api.util.AuthUtil) WebModelServiceUtils(com.evolveum.midpoint.gui.api.util.WebModelServiceUtils) AbstractColumn(org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn) TablePanel(com.evolveum.midpoint.web.component.data.TablePanel) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IModel(org.apache.wicket.model.IModel) SelectorOptions(com.evolveum.midpoint.schema.SelectorOptions) Label(org.apache.wicket.markup.html.basic.Label) ProgressReportActivityDto(com.evolveum.midpoint.web.component.progress.ProgressReportActivityDto) Model(org.apache.wicket.model.Model) LabelWithHelpPanel(com.evolveum.midpoint.gui.api.component.LabelWithHelpPanel) WebComponentUtil(com.evolveum.midpoint.gui.api.util.WebComponentUtil) ResourceTypeUtil(com.evolveum.midpoint.schema.util.ResourceTypeUtil) Task(com.evolveum.midpoint.task.api.Task) AttributeModifier(org.apache.wicket.AttributeModifier) AttributeAppender(org.apache.wicket.behavior.AttributeAppender) PropertyModel(org.apache.wicket.model.PropertyModel) Item(org.apache.wicket.markup.repeater.Item) PasswordAccountDto(com.evolveum.midpoint.web.page.admin.home.dto.PasswordAccountDto) MyPasswordsDto(com.evolveum.midpoint.web.page.admin.home.dto.MyPasswordsDto) PrismReferenceValue(com.evolveum.midpoint.prism.PrismReferenceValue) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) ResourceObjectDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectDefinition) java.util(java.util) GuiDisplayTypeUtil(com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil) com.evolveum.midpoint.web.component.data.column(com.evolveum.midpoint.web.component.data.column) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Trace(com.evolveum.midpoint.util.logging.Trace) ICellPopulator(org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator) CollectionUtils(org.apache.commons.collections4.CollectionUtils) GuiStyleConstants(com.evolveum.midpoint.gui.api.GuiStyleConstants) CredentialsCapabilityType(com.evolveum.midpoint.xml.ns._public.resource.capabilities_3.CredentialsCapabilityType) StringLimitationResult(com.evolveum.midpoint.model.api.validator.StringLimitationResult) CapabilityUtil(com.evolveum.midpoint.schema.CapabilityUtil) IVisitor(org.apache.wicket.util.visit.IVisitor) Selectable(com.evolveum.midpoint.web.component.util.Selectable) DataTable(org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable) PasswordTextField(org.apache.wicket.markup.html.form.PasswordTextField) PrismObject(com.evolveum.midpoint.prism.PrismObject) PasswordPanel(com.evolveum.midpoint.gui.api.component.password.PasswordPanel) ItemPath(com.evolveum.midpoint.prism.path.ItemPath) LoggingUtils(com.evolveum.midpoint.util.logging.LoggingUtils) BasePanel(com.evolveum.midpoint.gui.api.component.BasePanel) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) GetOperationOptions(com.evolveum.midpoint.schema.GetOperationOptions) PrismReference(com.evolveum.midpoint.prism.PrismReference) ProgressInformation(com.evolveum.midpoint.model.api.ProgressInformation) ListDataProvider(com.evolveum.midpoint.web.component.util.ListDataProvider) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) TraceManager(com.evolveum.midpoint.util.logging.TraceManager) DataTable(org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable) LabelWithHelpPanel(com.evolveum.midpoint.gui.api.component.LabelWithHelpPanel) Label(org.apache.wicket.markup.html.basic.Label) StringLimitationResult(com.evolveum.midpoint.model.api.validator.StringLimitationResult) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PasswordAccountDto(com.evolveum.midpoint.web.page.admin.home.dto.PasswordAccountDto) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) IModel(org.apache.wicket.model.IModel) IVisitor(org.apache.wicket.util.visit.IVisitor) ICellPopulator(org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IColumn(org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) ProgressReportActivityDto(com.evolveum.midpoint.web.component.progress.ProgressReportActivityDto) PrismObject(com.evolveum.midpoint.prism.PrismObject)

Example 22 with StringUtils.isEmpty

use of org.apache.commons.lang3.StringUtils.isEmpty in project midpoint by Evolveum.

the class WebComponentUtil method createMenuItemsFromActions.

@NotNull
public static List<InlineMenuItem> createMenuItemsFromActions(@NotNull List<GuiActionType> actions, String operation, PageBase pageBase, @NotNull Supplier<Collection<? extends ObjectType>> selectedObjectsSupplier) {
    List<InlineMenuItem> menuItems = new ArrayList<>();
    actions.forEach(action -> {
        if (action.getTaskTemplateRef() == null) {
            return;
        }
        String templateOid = action.getTaskTemplateRef().getOid();
        if (StringUtils.isEmpty(templateOid)) {
            return;
        }
        String label = action.getDisplay() != null && PolyStringUtils.isNotEmpty(action.getDisplay().getLabel()) ? action.getDisplay().getLabel().getOrig() : action.getName();
        menuItems.add(new InlineMenuItem(Model.of(label)) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction<SelectableBean<ObjectType>>() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        OperationResult result = new OperationResult(operation);
                        try {
                            Collection<String> oids;
                            if (getRowModel() != null) {
                                oids = Collections.singletonList(getRowModel().getObject().getValue().getOid());
                            } else {
                                oids = CollectionUtils.emptyIfNull(selectedObjectsSupplier.get()).stream().filter(o -> o.getOid() != null).map(o -> o.getOid()).collect(Collectors.toSet());
                            }
                            if (!oids.isEmpty()) {
                                @NotNull Item<PrismValue, ItemDefinition> extensionQuery = prepareExtensionValues(oids);
                                MidPointPrincipal principal = pageBase.getPrincipal();
                                if (principal == null) {
                                    throw new SecurityViolationException("No current user");
                                }
                                TaskType newTask = pageBase.getModelService().getObject(TaskType.class, templateOid, createCollection(createExecutionPhase()), pageBase.createSimpleTask(operation), result).asObjectable();
                                newTask.setName(PolyStringType.fromOrig(newTask.getName().getOrig() + " " + (int) (Math.random() * 10000)));
                                newTask.setOid(null);
                                newTask.setTaskIdentifier(null);
                                newTask.setOwnerRef(createObjectRef(principal.getFocus()));
                                newTask.setExecutionState(RUNNABLE);
                                newTask.setSchedulingState(READY);
                                newTask.asPrismObject().getOrCreateExtension().add(extensionQuery);
                                ObjectSetBasedWorkDefinitionType workDef = ObjectSetUtil.getObjectSetDefinitionFromTask(newTask);
                                QueryType query = (QueryType) extensionQuery.getRealValue();
                                ObjectSetType objectSet = workDef.getObjects();
                                if (objectSet == null) {
                                    objectSet = new ObjectSetType();
                                    objectSet.setType(ObjectType.COMPLEX_TYPE);
                                }
                                objectSet.setQuery(query);
                                workDef.setObjects(objectSet);
                                ObjectDelta<TaskType> delta = DeltaFactory.Object.createAddDelta(newTask.asPrismObject());
                                Collection<ObjectDeltaOperation<? extends ObjectType>> executedChanges = saveTask(delta, result, pageBase);
                                String newTaskOid = ObjectDeltaOperation.findAddDeltaOid(executedChanges, newTask.asPrismObject());
                                newTask.setOid(newTaskOid);
                                newTask.setTaskIdentifier(newTaskOid);
                                result.setInProgress();
                                result.setBackgroundTaskOid(newTask.getOid());
                            } else {
                                result.recordWarning(pageBase.createStringResource("WebComponentUtil.message.createMenuItemsFromActions.warning").getString());
                            }
                        } catch (Exception ex) {
                            result.recordFatalError(result.getOperation(), ex);
                            target.add(pageBase.getFeedbackPanel());
                        } finally {
                            pageBase.showResult(result);
                            target.add(pageBase.getFeedbackPanel());
                        }
                    }
                };
            }

            /**
             * Extension values are task-dependent. Therefore, in the future we will probably make
             * this behaviour configurable. For the time being we assume that the task template will be
             * of "iterative task handler" type and so it will expect mext:objectQuery extension property.
             *
             * FIXME
             */
            @NotNull
            private Item<PrismValue, ItemDefinition> prepareExtensionValues(Collection<String> oids) throws SchemaException {
                PrismContext prismContext = pageBase.getPrismContext();
                ObjectQuery objectQuery = prismContext.queryFor(ObjectType.class).id(oids.toArray(new String[0])).build();
                QueryType queryBean = pageBase.getQueryConverter().createQueryType(objectQuery);
                PrismContainerDefinition<?> extDef = PrismContext.get().getSchemaRegistry().findObjectDefinitionByCompileTimeClass(TaskType.class).findContainerDefinition(TaskType.F_EXTENSION);
                ItemDefinition<Item<PrismValue, ItemDefinition>> def = extDef != null ? extDef.findItemDefinition(SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY) : null;
                if (def == null) {
                    throw new SchemaException("No definition of " + SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY + " in the extension");
                }
                Item<PrismValue, ItemDefinition> extensionItem = def.instantiate();
                extensionItem.add(prismContext.itemFactory().createValue(queryBean));
                return extensionItem;
            }
        });
    });
    return menuItems;
}
Also used : PrismPropertyPanelContext(com.evolveum.midpoint.gui.impl.factory.panel.PrismPropertyPanelContext) PageUsers(com.evolveum.midpoint.web.page.admin.users.PageUsers) RenderPageRequestHandler(org.apache.wicket.core.request.handler.RenderPageRequestHandler) com.evolveum.midpoint.util.exception(com.evolveum.midpoint.util.exception) Scene(com.evolveum.midpoint.model.api.visualizer.Scene) PageResourceWizard(com.evolveum.midpoint.web.page.admin.resources.PageResourceWizard) StringValue(org.apache.wicket.util.string.StringValue) PatternDateConverter(org.apache.wicket.datetime.PatternDateConverter) com.evolveum.midpoint.prism(com.evolveum.midpoint.prism) Roles(org.apache.wicket.authroles.authorization.strategies.role.Roles) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) ValueStatus(com.evolveum.midpoint.web.component.prism.ValueStatus) CompositedIcon(com.evolveum.midpoint.gui.impl.component.icon.CompositedIcon) OnePageParameterEncoder(com.evolveum.midpoint.web.util.OnePageParameterEncoder) PageBase(com.evolveum.midpoint.gui.api.page.PageBase) PolyStringTranslationType(com.evolveum.prism.xml.ns._public.types_3.PolyStringTranslationType) PolyStringType(com.evolveum.prism.xml.ns._public.types_3.PolyStringType) PageAccount(com.evolveum.midpoint.web.page.admin.resources.content.PageAccount) PropertyDelta(com.evolveum.midpoint.prism.delta.PropertyDelta) CompiledObjectCollectionView(com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView) InfoTooltipBehavior(com.evolveum.midpoint.web.util.InfoTooltipBehavior) DeltaFactory(com.evolveum.midpoint.prism.delta.DeltaFactory) CaseTypeUtil(com.evolveum.midpoint.schema.util.cases.CaseTypeUtil) SelectorOptions.createCollection(com.evolveum.midpoint.schema.SelectorOptions.createCollection) com.evolveum.midpoint.util(com.evolveum.midpoint.util) PageReport(com.evolveum.midpoint.web.page.admin.reports.PageReport) StringResourceModel(org.apache.wicket.model.StringResourceModel) Constructor(java.lang.reflect.Constructor) Supplier(java.util.function.Supplier) CollectionUtils(org.apache.commons.collections4.CollectionUtils) MidPointApplication(com.evolveum.midpoint.web.security.MidPointApplication) DateValidator(com.evolveum.midpoint.web.util.DateValidator) StreamSupport(java.util.stream.StreamSupport) PageService(com.evolveum.midpoint.web.page.admin.services.PageService) Collator(java.text.Collator) QueryType(com.evolveum.prism.xml.ns._public.query_3.QueryType) SelectableBeanImpl(com.evolveum.midpoint.web.component.util.SelectableBeanImpl) DataTable(org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable) AjaxSubmitLink(org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink) MidPointPrincipal(com.evolveum.midpoint.security.api.MidPointPrincipal) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) DurationFormatUtils(org.apache.commons.lang3.time.DurationFormatUtils) PageArchetype(com.evolveum.midpoint.web.page.admin.archetype.PageArchetype) PageUser(com.evolveum.midpoint.web.page.admin.users.PageUser) ObjectTypes(com.evolveum.midpoint.schema.constants.ObjectTypes) EvaluatedTriggerGroupDto(com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto) PageServiceSelfProfile(com.evolveum.midpoint.web.page.self.PageServiceSelfProfile) ConstructorUtils(org.apache.commons.lang3.reflect.ConstructorUtils) com.evolveum.midpoint.schema.util(com.evolveum.midpoint.schema.util) ObjectDeltaType(com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType) PageObjectTemplate(com.evolveum.midpoint.web.page.admin.objectTemplate.PageObjectTemplate) AuthorizationConstants(com.evolveum.midpoint.security.api.AuthorizationConstants) TaskCategory(com.evolveum.midpoint.task.api.TaskCategory) IRequestHandler(org.apache.wicket.request.IRequestHandler) AuthUtil(com.evolveum.midpoint.authentication.api.util.AuthUtil) CaseWorkItemUtil(com.evolveum.midpoint.schema.util.cases.CaseWorkItemUtil) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) PageMessageTemplate(com.evolveum.midpoint.gui.impl.page.admin.messagetemplate.PageMessageTemplate) AbstractAssignmentTypePanel(com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component.assignmentType.AbstractAssignmentTypePanel) GuiChannel(com.evolveum.midpoint.gui.impl.GuiChannel) IChoiceRenderer(org.apache.wicket.markup.html.form.IChoiceRenderer) CompiledGuiProfile(com.evolveum.midpoint.model.api.authentication.CompiledGuiProfile) ResourceUtils(com.evolveum.midpoint.model.api.util.ResourceUtils) ActivityStateUtil(com.evolveum.midpoint.schema.util.task.ActivityStateUtil) WrapperContext(com.evolveum.midpoint.gui.api.factory.wrapper.WrapperContext) PageValuePolicy(com.evolveum.midpoint.web.page.admin.valuePolicy.PageValuePolicy) Collectors(java.util.stream.Collectors) DropDownChoice(org.apache.wicket.markup.html.form.DropDownChoice) Nullable(org.jetbrains.annotations.Nullable) SortParam(org.apache.wicket.extensions.markup.html.repeater.util.SortParam) PageResources(com.evolveum.midpoint.web.page.admin.resources.PageResources) READY(com.evolveum.midpoint.xml.ns._public.common.common_3.TaskSchedulingStateType.READY) PrismReferenceValueWrapperImpl(com.evolveum.midpoint.gui.impl.prism.wrapper.PrismReferenceValueWrapperImpl) com.evolveum.midpoint.schema(com.evolveum.midpoint.schema) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) PageOrgSelfProfile(com.evolveum.midpoint.web.page.self.PageOrgSelfProfile) CompositedIconBuilder(com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder) BaseSortableDataProvider(com.evolveum.midpoint.web.component.data.BaseSortableDataProvider) FormComponent(org.apache.wicket.markup.html.form.FormComponent) GuiStyleConstants(com.evolveum.midpoint.gui.api.GuiStyleConstants) VerhoeffCheckDigit(org.apache.commons.validator.routines.checkdigit.VerhoeffCheckDigit) ObjectDetailsModels(com.evolveum.midpoint.gui.impl.page.admin.ObjectDetailsModels) ApprovalUtils(com.evolveum.midpoint.schema.util.cases.ApprovalUtils) PageResource(com.evolveum.midpoint.web.page.admin.resources.PageResource) PageShadow(com.evolveum.midpoint.gui.impl.page.admin.resource.PageShadow) PageRoleSelfProfile(com.evolveum.midpoint.web.page.self.PageRoleSelfProfile) SceneUtil(com.evolveum.midpoint.web.component.prism.show.SceneUtil) PageTasks(com.evolveum.midpoint.web.page.admin.server.PageTasks) ItemPath(com.evolveum.midpoint.prism.path.ItemPath) BasePanel(com.evolveum.midpoint.gui.api.component.BasePanel) org.apache.commons.lang3(org.apache.commons.lang3) ApprovalContextUtil(com.evolveum.midpoint.schema.util.cases.ApprovalContextUtil) com.evolveum.midpoint.gui.api.prism.wrapper(com.evolveum.midpoint.gui.api.prism.wrapper) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) AjaxFormComponentUpdatingBehavior(org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior) ObjectTypeUtil.createObjectRef(com.evolveum.midpoint.schema.util.ObjectTypeUtil.createObjectRef) com.evolveum.midpoint.prism.query(com.evolveum.midpoint.prism.query) ObjectSetUtil(com.evolveum.midpoint.schema.util.task.work.ObjectSetUtil) ChangeType(com.evolveum.midpoint.prism.delta.ChangeType) ItemVisibility(com.evolveum.midpoint.web.component.prism.ItemVisibility) PageParameters(org.apache.wicket.request.mapper.parameter.PageParameters) WorkItemTypeUtil(com.evolveum.midpoint.schema.util.cases.WorkItemTypeUtil) PageMessageTemplates(com.evolveum.midpoint.gui.impl.page.admin.messagetemplate.PageMessageTemplates) GetOperationOptions.createExecutionPhase(com.evolveum.midpoint.schema.GetOperationOptions.createExecutionPhase) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IModel(org.apache.wicket.model.IModel) PrintWriter(java.io.PrintWriter) Label(org.apache.wicket.markup.html.basic.Label) Model(org.apache.wicket.model.Model) Task(com.evolveum.midpoint.task.api.Task) InvocationTargetException(java.lang.reflect.InvocationTargetException) PageServices(com.evolveum.midpoint.web.page.admin.services.PageServices) SessionStorage(com.evolveum.midpoint.web.session.SessionStorage) PageRole(com.evolveum.midpoint.web.page.admin.roles.PageRole) ChangesByState(com.evolveum.midpoint.wf.api.ChangesByState) QName(javax.xml.namespace.QName) PageOrg(com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg) TabbedPanel(com.evolveum.midpoint.web.component.TabbedPanel) ProtectedStringType(com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType) PolyStringUtils(com.evolveum.midpoint.prism.util.PolyStringUtils) Form(org.apache.wicket.markup.html.form.Form) java.util(java.util) InputPanel(com.evolveum.midpoint.web.component.prism.InputPanel) TaskTypeUtil(com.evolveum.midpoint.schema.util.task.TaskTypeUtil) SimpleDateFormat(java.text.SimpleDateFormat) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) LayeredIconCssStyle(com.evolveum.midpoint.gui.impl.component.icon.LayeredIconCssStyle) Trace(com.evolveum.midpoint.util.logging.Trace) SelectableBean(com.evolveum.midpoint.web.component.util.SelectableBean) LocalizationService(com.evolveum.midpoint.common.LocalizationService) AuditEventRecordType(com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType) com.evolveum.midpoint.model.api(com.evolveum.midpoint.model.api) PageCase(com.evolveum.midpoint.web.page.admin.cases.PageCase) IDataProvider(org.apache.wicket.markup.repeater.data.IDataProvider) IVisitor(org.apache.wicket.util.visit.IVisitor) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) SceneDto(com.evolveum.midpoint.web.component.prism.show.SceneDto) TableId(com.evolveum.midpoint.web.session.UserProfileStorage.TableId) PageRoles(com.evolveum.midpoint.web.page.admin.roles.PageRoles) PageBase.createStringResourceStatic(com.evolveum.midpoint.gui.api.page.PageBase.createStringResourceStatic) RUNNABLE(com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStateType.RUNNABLE) StringWriter(java.io.StringWriter) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) PrismPropertyValueWrapper(com.evolveum.midpoint.gui.impl.prism.wrapper.PrismPropertyValueWrapper) ItemName(com.evolveum.midpoint.prism.path.ItemName) ItemPathCollectionsUtil(com.evolveum.midpoint.prism.path.ItemPathCollectionsUtil) AuthorizationAction(com.evolveum.midpoint.authentication.api.authorization.AuthorizationAction) S_FilterEntryOrEmpty(com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty) TraceManager(com.evolveum.midpoint.util.logging.TraceManager) ObjectTypeGuiDescriptor(com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor) IVisit(org.apache.wicket.util.visit.IVisit) Behavior(org.apache.wicket.behavior.Behavior) PageTask(com.evolveum.midpoint.web.page.admin.server.PageTask) PageOrgUnit(com.evolveum.midpoint.web.page.admin.orgs.PageOrgUnit) PageDescriptor(com.evolveum.midpoint.authentication.api.authorization.PageDescriptor) TaskInformation(com.evolveum.midpoint.schema.util.task.TaskInformation) OperationResultStatus(com.evolveum.midpoint.schema.result.OperationResultStatus) PageObjectCollection(com.evolveum.midpoint.web.page.admin.objectCollection.PageObjectCollection) NonEmptyModel(com.evolveum.midpoint.gui.api.model.NonEmptyModel) PageUserSelfProfile(com.evolveum.midpoint.web.page.self.PageUserSelfProfile) Breadcrumb(com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb) URI(java.net.URI) ReadOnlyModel(com.evolveum.midpoint.gui.api.model.ReadOnlyModel) XmlTypeConverter(com.evolveum.midpoint.prism.xml.XmlTypeConverter) DateTimeFormat(org.joda.time.format.DateTimeFormat) Experimental(com.evolveum.midpoint.util.annotation.Experimental) Predicate(java.util.function.Predicate) IFeedback(org.apache.wicket.feedback.IFeedback) DateLabelComponent(com.evolveum.midpoint.web.component.DateLabelComponent) Contract(org.jetbrains.annotations.Contract) ColumnMenuAction(com.evolveum.midpoint.web.component.data.column.ColumnMenuAction) ExpressionUtil(com.evolveum.midpoint.repo.common.expression.ExpressionUtil) DisplayableValueChoiceRenderer(com.evolveum.midpoint.web.component.input.DisplayableValueChoiceRenderer) NotNull(org.jetbrains.annotations.NotNull) DropDownChoicePanel(com.evolveum.midpoint.web.component.input.DropDownChoicePanel) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) BreadcrumbPageInstance(com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageInstance) ModelExecuteOptions.toModelExecutionOptionsBean(com.evolveum.midpoint.model.api.ModelExecuteOptions.toModelExecutionOptionsBean) AuthenticatedWebApplication(org.apache.wicket.authroles.authentication.AuthenticatedWebApplication) GuiProfiledPrincipal(com.evolveum.midpoint.model.api.authentication.GuiProfiledPrincipal) DynamicFormPanel(com.evolveum.midpoint.web.component.prism.DynamicFormPanel) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) IconCssStyle(com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle) MainObjectListPanel(com.evolveum.midpoint.gui.api.component.MainObjectListPanel) org.apache.wicket(org.apache.wicket) EncryptionException(com.evolveum.midpoint.prism.crypto.EncryptionException) Table(com.evolveum.midpoint.web.component.data.Table) BreadcrumbPageClass(com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageClass) SubscriptionType(com.evolveum.midpoint.gui.api.SubscriptionType) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) OperationResultStatusPresentationProperties(com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusPresentationProperties) Selectable(com.evolveum.midpoint.web.component.util.Selectable) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) ReadOnlyValueModel(com.evolveum.midpoint.gui.api.model.ReadOnlyValueModel) LoggingUtils(com.evolveum.midpoint.util.logging.LoggingUtils) Panel(org.apache.wicket.markup.html.panel.Panel) com.evolveum.midpoint.schema.processor(com.evolveum.midpoint.schema.processor) Protector(com.evolveum.midpoint.prism.crypto.Protector) NumberUtils(org.apache.commons.lang3.math.NumberUtils) SelectableBeanContainerDataProvider(com.evolveum.midpoint.web.component.data.SelectableBeanContainerDataProvider) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) NotNull(org.jetbrains.annotations.NotNull) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) SelectableBean(com.evolveum.midpoint.web.component.util.SelectableBean) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) MidPointPrincipal(com.evolveum.midpoint.security.api.MidPointPrincipal) InvocationTargetException(java.lang.reflect.InvocationTargetException) EncryptionException(com.evolveum.midpoint.prism.crypto.EncryptionException) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) SelectorOptions.createCollection(com.evolveum.midpoint.schema.SelectorOptions.createCollection) PageObjectCollection(com.evolveum.midpoint.web.page.admin.objectCollection.PageObjectCollection) QueryType(com.evolveum.prism.xml.ns._public.query_3.QueryType) NotNull(org.jetbrains.annotations.NotNull)

Example 23 with StringUtils.isEmpty

use of org.apache.commons.lang3.StringUtils.isEmpty in project midpoint by Evolveum.

the class AbstractOrgTabPanel method loadOrgRoots.

private List<PrismObject<OrgType>> loadOrgRoots() {
    Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ORG_UNIT);
    OperationResult result = new OperationResult(OPERATION_LOAD_ORG_UNIT);
    List<PrismObject<OrgType>> list = new ArrayList<>();
    try {
        ObjectQuery query = getPageBase().getPrismContext().queryFor(OrgType.class).isRoot().asc(OrgType.F_NAME).build();
        ObjectFilter assignableItemsFilter = getAssignableItemsFilter();
        if (assignableItemsFilter != null) {
            query.addFilter(assignableItemsFilter);
        }
        list = getPageBase().getModelService().searchObjects(OrgType.class, query, null, task, result);
        // Sort org roots by displayOrder, if not set push the org to the end
        list.sort(new Comparator<PrismObject<OrgType>>() {

            @Override
            public int compare(PrismObject<OrgType> o1, PrismObject<OrgType> o2) {
                Comparator<PrismObject<OrgType>> intComparator = Comparator.comparingInt(o -> ((ObjectUtils.defaultIfNull(o.getRealValue().getDisplayOrder(), Integer.MAX_VALUE))));
                int compare = intComparator.compare(o1, o2);
                if (compare == 0) {
                    String display1 = WebComponentUtil.getDisplayName(o1);
                    if (StringUtils.isBlank(display1)) {
                        display1 = WebComponentUtil.getTranslatedPolyString(o1.getName());
                    }
                    String display2 = WebComponentUtil.getDisplayName(o2);
                    if (StringUtils.isBlank(display2)) {
                        display2 = WebComponentUtil.getTranslatedPolyString(o2.getName());
                    }
                    if (StringUtils.isEmpty(display1) && StringUtils.isEmpty(display2)) {
                        return compare;
                    }
                    if (StringUtils.isEmpty(display1)) {
                        return 1;
                    }
                    if (StringUtils.isEmpty(display2)) {
                        return -1;
                    }
                    return String.CASE_INSENSITIVE_ORDER.compare(display1, display2);
                }
                return compare;
            }
        });
        if (list.isEmpty() && isWarnMessageVisible()) {
            warn(getString("PageOrgTree.message.noOrgStructDefined"));
        }
    } catch (Exception ex) {
        LoggingUtils.logUnexpectedException(LOGGER, "Unable to load org. unit", ex);
        result.recordFatalError(getString("AbstractOrgTabPanel.message.loadOrgRoots.fatalError"), ex);
    } finally {
        result.computeStatus();
    }
    if (WebComponentUtil.showResultInPage(result)) {
        getPageBase().showResult(result);
    }
    return list;
}
Also used : OrgType(com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Trace(com.evolveum.midpoint.util.logging.Trace) StringUtils(org.apache.commons.lang3.StringUtils) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) ArrayList(java.util.ArrayList) ObjectUtils(org.apache.commons.lang3.ObjectUtils) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) AjaxEventBehavior(org.apache.wicket.ajax.AjaxEventBehavior) IModel(org.apache.wicket.model.IModel) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) Model(org.apache.wicket.model.Model) OrgStructurePanelStorage(com.evolveum.midpoint.web.session.OrgStructurePanelStorage) WebComponentUtil(com.evolveum.midpoint.gui.api.util.WebComponentUtil) PrismObject(com.evolveum.midpoint.prism.PrismObject) Task(com.evolveum.midpoint.task.api.Task) AjaxTabbedPanel(com.evolveum.midpoint.web.component.AjaxTabbedPanel) LoggingUtils(com.evolveum.midpoint.util.logging.LoggingUtils) Panel(org.apache.wicket.markup.html.panel.Panel) List(java.util.List) BasePanel(com.evolveum.midpoint.gui.api.component.BasePanel) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) PageBase(com.evolveum.midpoint.gui.api.page.PageBase) ObjectQuery(com.evolveum.midpoint.prism.query.ObjectQuery) Comparator(java.util.Comparator) TabbedPanel(com.evolveum.midpoint.web.component.TabbedPanel) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) TraceManager(com.evolveum.midpoint.util.logging.TraceManager) Task(com.evolveum.midpoint.task.api.Task) ArrayList(java.util.ArrayList) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) ObjectQuery(com.evolveum.midpoint.prism.query.ObjectQuery) Comparator(java.util.Comparator) PrismObject(com.evolveum.midpoint.prism.PrismObject) OrgType(com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType)

Example 24 with StringUtils.isEmpty

use of org.apache.commons.lang3.StringUtils.isEmpty in project CzechIdMng by bcvsolutions.

the class DefaultSysProvisioningAttributeService method saveAttributes.

/**
 * Provisioning operation is saved in new transaction, attributes has to be saved too.
 */
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveAttributes(ProvisioningOperation operation) {
    Assert.notNull(operation, "Operation is required.");
    Assert.notNull(operation.getId(), "Operation identifier is required.");
    // 
    if (operation.getProvisioningContext().getConnectorObject() != null) {
        List<IcAttribute> connectorAttributes = operation.getProvisioningContext().getConnectorObject().getAttributes();
        if (!CollectionUtils.isEmpty(connectorAttributes)) {
            for (IcAttribute connectorAttribute : connectorAttributes) {
                SysProvisioningAttribute provisioningAttribute = new SysProvisioningAttribute(operation.getId(), connectorAttribute.getName());
                if (CollectionUtils.isEmpty(connectorAttribute.getValues())) {
                    provisioningAttribute.setRemoved(true);
                } else {
                    provisioningAttribute.setRemoved(connectorAttribute.getValues().stream().allMatch(v -> {
                        return v == null || StringUtils.isEmpty(v.toString());
                    }));
                }
                repository.save(provisioningAttribute);
            }
        }
    }
}
Also used : SysProvisioningAttribute(eu.bcvsolutions.idm.acc.entity.SysProvisioningAttribute) List(java.util.List) Propagation(org.springframework.transaction.annotation.Propagation) ProvisioningOperation(eu.bcvsolutions.idm.acc.domain.ProvisioningOperation) SysProvisioningAttributeRepository(eu.bcvsolutions.idm.acc.repository.SysProvisioningAttributeRepository) CollectionUtils(org.springframework.util.CollectionUtils) SysProvisioningAttribute(eu.bcvsolutions.idm.acc.entity.SysProvisioningAttribute) Autowired(org.springframework.beans.factory.annotation.Autowired) SysProvisioningAttributeService(eu.bcvsolutions.idm.acc.service.api.SysProvisioningAttributeService) IcAttribute(eu.bcvsolutions.idm.ic.api.IcAttribute) StringUtils(org.apache.commons.lang3.StringUtils) Transactional(org.springframework.transaction.annotation.Transactional) Assert(org.springframework.util.Assert) IcAttribute(eu.bcvsolutions.idm.ic.api.IcAttribute) Transactional(org.springframework.transaction.annotation.Transactional)

Example 25 with StringUtils.isEmpty

use of org.apache.commons.lang3.StringUtils.isEmpty in project CzechIdMng by bcvsolutions.

the class AbstractFormProjectionLookup method getFormDefinition.

/**
 * Get overriden / configured form definition by projection.
 * @param dto projection owner
 * @param formDefinition form definition to load
 * @return overriden form definition
 *
 * @since 12.0.0
 */
protected IdmFormDefinitionDto getFormDefinition(DTO dto, IdmFormDefinitionDto formDefinition) {
    IdmFormProjectionDto formProjection = lookupProjection(dto);
    if (formProjection == null) {
        return null;
    }
    String formValidations = formProjection.getFormValidations();
    if (StringUtils.isEmpty(formValidations)) {
        return null;
    }
    // 
    if (formDefinition == null) {
        // ~ basic fields
        formDefinition = new IdmFormDefinitionDto();
        formDefinition.setCode(FormService.FORM_DEFINITION_CODE_BASIC_FIELDS);
    }
    // clone ~ prevent to change input (e.g. cache can be modified)
    IdmFormDefinitionDto overridenDefinition = new IdmFormDefinitionDto();
    overridenDefinition.setId(formDefinition.getId());
    overridenDefinition.setCode(formDefinition.getCode());
    // transform form attributes from json
    try {
        List<IdmFormAttributeDto> attributes = mapper.readValue(formValidations, new TypeReference<List<IdmFormAttributeDto>>() {
        });
        attributes.stream().filter(attribute -> Objects.equals(attribute.getFormDefinition(), overridenDefinition.getId())).forEach(attribute -> {
            if (attribute.getId() == null) {
                // we need artificial id to find attributes in definition / instance
                attribute.setId(UUID.randomUUID());
            }
            overridenDefinition.addFormAttribute(attribute);
        });
        // 
        return overridenDefinition;
    } catch (IOException ex) {
        throw new ResultCodeException(CoreResultCode.FORM_PROJECTION_WRONG_VALIDATION_CONFIGURATION, ImmutableMap.of("formProjection", formProjection.getCode()), ex);
    }
}
Also used : IdmFormProjectionDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormProjectionDto) ImmutableMap(com.google.common.collect.ImmutableMap) IdmFormAttributeDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormAttributeDto) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Autowired(org.springframework.beans.factory.annotation.Autowired) IOException(java.io.IOException) IdmFormProjectionDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormProjectionDto) UUID(java.util.UUID) FormService(eu.bcvsolutions.idm.core.eav.api.service.FormService) StringUtils(org.apache.commons.lang3.StringUtils) Serializable(java.io.Serializable) PersistentType(eu.bcvsolutions.idm.core.eav.api.domain.PersistentType) Objects(java.util.Objects) IdmFormDefinitionDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormDefinitionDto) List(java.util.List) IdmFormValueDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormValueDto) CoreResultCode(eu.bcvsolutions.idm.core.api.domain.CoreResultCode) ResultCodeException(eu.bcvsolutions.idm.core.api.exception.ResultCodeException) LocalDate(java.time.LocalDate) BaseDto(eu.bcvsolutions.idm.core.api.dto.BaseDto) TypeReference(com.fasterxml.jackson.core.type.TypeReference) GenericTypeResolver(org.springframework.core.GenericTypeResolver) Codeable(eu.bcvsolutions.idm.core.api.domain.Codeable) IdmFormAttributeDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormAttributeDto) ResultCodeException(eu.bcvsolutions.idm.core.api.exception.ResultCodeException) IdmFormDefinitionDto(eu.bcvsolutions.idm.core.eav.api.dto.IdmFormDefinitionDto) List(java.util.List) IOException(java.io.IOException)

Aggregations

StringUtils (org.apache.commons.lang3.StringUtils)76 List (java.util.List)53 Collectors (java.util.stream.Collectors)40 ArrayList (java.util.ArrayList)39 Map (java.util.Map)39 HashMap (java.util.HashMap)28 IOException (java.io.IOException)26 Collections (java.util.Collections)25 Set (java.util.Set)25 Logger (org.slf4j.Logger)25 Arrays (java.util.Arrays)24 LoggerFactory (org.slf4j.LoggerFactory)24 Optional (java.util.Optional)22 HashSet (java.util.HashSet)18 Collection (java.util.Collection)14 Autowired (org.springframework.beans.factory.annotation.Autowired)13 Objects (java.util.Objects)12 UUID (java.util.UUID)11 java.util (java.util)10 Component (org.springframework.stereotype.Component)10