@Override public long size() { return groupTO.getTypeExtensions().size(); }
@Override public Iterator<? extends TypeExtensionTO> iterator(final long first, final long count) { return groupTO.getTypeExtensions().subList((int) first, (int) (first + count)).iterator(); }
@Override protected Serializable onApplyInternal(final TypeExtensionTO modelObject) { List<TypeExtensionTO> typeExtensions = groupTO.getTypeExtensions().stream(). filter(typeExt -> !typeExt.getAnyType().equals(modelObject.getAnyType())).collect(Collectors.toList()); typeExtensions.add(modelObject); groupTO.getTypeExtensions().clear(); groupTO.getTypeExtensions().addAll(typeExtensions); return groupTO; }
@Override public void onClick(final AjaxRequestTarget target, final TypeExtensionTO ignore) { groupTO.getTypeExtension(typeExtension.getAnyType()).ifPresent(typeExt -> { groupTO.getTypeExtensions().remove(typeExt); target.add(container); }); } }, ActionLink.ActionType.DELETE, StringUtils.EMPTY, true);
@Override public void onSubmit(final AjaxRequestTarget target) { GroupUR req = new GroupUR(); req.setKey(groupTO.getKey()); req.getTypeExtensions().addAll(groupTO.getTypeExtensions()); try { new GroupRestClient().update(groupTO.getETagValue(), req); this.baseModal.show(false); this.baseModal.close(target); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); } catch (Exception e) { LOG.error("Group update failure", e); SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage()); } ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); }
|| StringUtils.isAllBlank(originaObj.getUDynMembershipCond(), inner.getUDynMembershipCond()) || !inner.getUDynMembershipCond().equals(originaObj.getUDynMembershipCond()) || !CollectionUtils.diff(inner.getTypeExtensions(), originaObj.getTypeExtensions()).isEmpty();
groupTO.getTypeExtensions().forEach(typeExtTO -> { AnyType anyType = anyTypeDAO.find(typeExtTO.getAnyType()); if (anyType == null) {
groupTO.setUDynMembershipCond(groupCR.getUDynMembershipCond()); groupTO.getADynMembershipConds().putAll(groupCR.getADynMembershipConds()); groupTO.getTypeExtensions().addAll(groupCR.getTypeExtensions()); } else if (anyTO instanceof AnyObjectTO && anyCR instanceof AnyObjectCR) { AnyObjectTO anyObjectTO = (AnyObjectTO) anyTO;
groupCR.setUDynMembershipCond(groupTO.getUDynMembershipCond()); groupCR.getADynMembershipConds().putAll(groupTO.getADynMembershipConds()); groupCR.getTypeExtensions().addAll(groupTO.getTypeExtensions()); } else if (anyCR instanceof AnyObjectCR && anyTO instanceof AnyObjectTO) { AnyObjectCR anyObjectCR = (AnyObjectCR) anyCR;
updatedGroup.setUDynMembershipCond(originalGroup.getUDynMembershipCond()); updatedGroup.getADynMembershipConds().putAll(originalGroup.getADynMembershipConds()); updatedGroup.getTypeExtensions().addAll(originalGroup.getTypeExtensions());
/** * Calculate modifications needed by first in order to be equal to second. * * @param updated updated GroupTO * @param original original GroupTO * @param incremental perform incremental diff (without removing existing info) * @return {@link GroupUR} containing differences */ public static GroupUR diff(final GroupTO updated, final GroupTO original, final boolean incremental) { GroupUR result = new GroupUR(); diff(updated, original, result, incremental); // 1. name result.setName(replacePatchItem(updated.getName(), original.getName(), new StringReplacePatchItem())); // 2. ownership result.setUserOwner( replacePatchItem(updated.getUserOwner(), original.getUserOwner(), new StringReplacePatchItem())); result.setGroupOwner( replacePatchItem(updated.getGroupOwner(), original.getGroupOwner(), new StringReplacePatchItem())); // 3. dynamic membership result.setUDynMembershipCond(updated.getUDynMembershipCond()); result.getADynMembershipConds().putAll(updated.getADynMembershipConds()); // 4. type extensions result.getTypeExtensions().addAll(updated.getTypeExtensions()); return result; }
/** * Calculate modifications needed by first in order to be equal to second. * * @param updated updated GroupTO * @param original original GroupTO * @param incremental perform incremental diff (without removing existing info) * @return GroupPatch containing differences */ public static GroupPatch diff(final GroupTO updated, final GroupTO original, final boolean incremental) { GroupPatch result = new GroupPatch(); diff(updated, original, result, incremental); // 1. name result.setName(replacePatchItem(updated.getName(), original.getName(), new StringReplacePatchItem())); // 2. ownership result.setUserOwner( replacePatchItem(updated.getUserOwner(), original.getUserOwner(), new StringReplacePatchItem())); result.setGroupOwner( replacePatchItem(updated.getGroupOwner(), original.getGroupOwner(), new StringReplacePatchItem())); // 3. dynamic membership result.setUDynMembershipCond(updated.getUDynMembershipCond()); result.getADynMembershipConds().putAll(updated.getADynMembershipConds()); // 4. type extensions result.getTypeExtensions().addAll(updated.getTypeExtensions()); return result; }
groupTO.getTypeExtensions().add(getTypeExtensionTO(typeExt)); });