@Override protected List<Attr> getAttrsFromTO() { return anyTO.getVirAttrs().stream().sorted(attrComparator).collect(Collectors.toList()); }
@Override protected void setAttrs() { List<Attr> attrs = new ArrayList<>(); Map<String, Attr> attrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs()); attrs.addAll(schemas.values().stream().map(schema -> { Attr attrTO = new Attr(); attrTO.setSchema(schema.getKey()); if (attrMap.containsKey(schema.getKey())) { attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues()); } else { attrTO.getValues().add(StringUtils.EMPTY); } return attrTO; }).collect(Collectors.toList())); anyTO.getVirAttrs().clear(); anyTO.getVirAttrs().addAll(attrs); }
Map<String, AttrTO> virAttrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs());
Map<String, AttrTO> virAttrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs());
@Override public Set<AttrTO> read(final String key, final SchemaType schemaType) { TO any = read(key); Set<AttrTO> result; switch (schemaType) { case DERIVED: result = any.getDerAttrs(); break; case VIRTUAL: result = any.getVirAttrs(); break; case PLAIN: default: result = any.getPlainAttrs(); } return result; }
for (Attr virAttr : original.getVirAttrs()) { if (!updated.getVirAttr(virAttr.getSchema()).isPresent()) { updated.getVirAttrs().add(virAttr); updated.getVirAttrs().removeIf(attr -> attr.getValues().isEmpty()); if (updated instanceof GroupableRelatableTO) { GroupableRelatableTO.class.cast(updated).getMemberships().forEach(memb -> {
protected void fillTO( final AnyTO anyTO, final String realmFullPath, final Collection<? extends AnyTypeClass> auxClasses, final Collection<? extends PlainAttr<?>> plainAttrs, final Map<DerSchema, String> derAttrs, final Map<VirSchema, List<String>> virAttrs, final Collection<? extends ExternalResource> resources, final boolean details) { anyTO.setRealm(realmFullPath); anyTO.getAuxClasses().addAll(auxClasses.stream().map(Entity::getKey).collect(Collectors.toList())); plainAttrs.forEach(plainAttr -> { anyTO.getPlainAttrs().add(new AttrTO.Builder(). schema(plainAttr.getSchema().getKey()). values(plainAttr.getValuesAsStrings()).build()); }); derAttrs.forEach((schema, value) -> { anyTO.getDerAttrs().add(new AttrTO.Builder().schema(schema.getKey()).value(value).build()); }); virAttrs.forEach((schema, values) -> { anyTO.getVirAttrs().add(new AttrTO.Builder().schema(schema.getKey()).values(values).build()); }); anyTO.getResources().addAll(resources.stream().map(Entity::getKey).collect(Collectors.toSet())); }
}); value.getVirAttrs().stream(). filter(attrTO -> !attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
@Override public List<Object> beforePull( final Item item, final EntityTO entityTO, final List<Object> values) { if (StringUtils.isNotBlank(pullJEXL) && values != null) { List<Object> newValues = new ArrayList<>(values.size()); values.forEach(value -> { JexlContext jexlContext = new MapContext(); jexlContext.set("value", value); if (entityTO instanceof AnyTO) { JexlUtils.addFieldsToContext((AnyTO) entityTO, jexlContext); JexlUtils.addAttrTOsToContext(((AnyTO) entityTO).getPlainAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(((AnyTO) entityTO).getDerAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(((AnyTO) entityTO).getVirAttrs(), jexlContext); } else if (entityTO instanceof RealmTO) { JexlUtils.addFieldsToContext((RealmTO) entityTO, jexlContext); } newValues.add(JexlUtils.evaluate(pullJEXL, jexlContext)); }); return newValues; } return JEXLItemTransformer.super.beforePull(item, entityTO, values); } }
result.getVirAttrs().clear(); result.getVirAttrs().addAll(patch.getVirAttrs());
null, created.getPropByRes(), ((AnyTO) actual).getVirAttrs(), excludedResources); getPropagationTaskExecutor().execute(taskInfos, nullPriorityAsync); null, created.getPropByRes(), ((AnyTO) actual).getVirAttrs(), excludedResources); PropagationReporter reporter = getPropagationTaskExecutor().execute(taskInfos, nullPriorityAsync);
result.getVirAttrs().clear(); result.getVirAttrs().addAll(req.getVirAttrs());
JexlUtils.addAttrTOsToContext(anyTO.getPlainAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(anyTO.getDerAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(anyTO.getVirAttrs(), jexlContext); currentAttrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs()); for (AttrTO templateVirAttr : template.getVirAttrs()) { if (!templateVirAttr.getValues().isEmpty() && (!currentAttrMap.containsKey(templateVirAttr.getSchema()) anyTO.getVirAttrs().add(evaluated); jexlContext.set(evaluated.getSchema(), evaluated.getValues().get(0));
protected void provision(final Any<?> any, final Boolean enable, final ProvisioningReport result) { AnyTO before = getAnyTO(any.getKey()); List<String> noPropResources = new ArrayList<>(before.getResources()); noPropResources.remove(profile.getTask().getResource().getKey()); PropagationByResource propByRes = new PropagationByResource(); propByRes.add(ResourceOperation.CREATE, profile.getTask().getResource().getKey()); List<PropagationTaskInfo> taskInfos = propagationManager.getCreateTasks( any.getType().getKind(), any.getKey(), enable, propByRes, before.getVirAttrs(), noPropResources); if (!taskInfos.isEmpty()) { taskInfos.get(0).setBeforeObj(Optional.ofNullable(null)); PropagationReporter reporter = new DefaultPropagationReporter(); taskExecutor.execute(taskInfos.get(0), reporter); reportPropagation(result, reporter); } }
result.getVirAttrs().addAll(updated.getVirAttrs());
result.getVirAttrs().addAll(updated.getVirAttrs());
@Override protected void provision(final Any<?> any, final Boolean enabled, final ProvisioningReport result) { AnyTO before = getAnyTO(any.getKey()); List<String> noPropResources = new ArrayList<>(before.getResources()); noPropResources.remove(profile.getTask().getResource().getKey()); PropagationByResource propByRes = new PropagationByResource(); propByRes.add(ResourceOperation.CREATE, profile.getTask().getResource().getKey()); PropagationReporter reporter = taskExecutor.execute(propagationManager.getUserCreateTasks( before.getKey(), null, enabled, propByRes, before.getVirAttrs(), noPropResources), false); reportPropagation(result, reporter); }
anyTO.getAuxClasses().addAll(anyCR.getAuxClasses()); anyTO.getPlainAttrs().addAll(anyCR.getPlainAttrs()); anyTO.getVirAttrs().addAll(anyCR.getVirAttrs()); anyTO.getResources().addAll(anyCR.getResources());
anyCR.getAuxClasses().addAll(anyTO.getAuxClasses()); anyCR.getPlainAttrs().addAll(anyTO.getPlainAttrs()); anyCR.getVirAttrs().addAll(anyTO.getVirAttrs()); anyCR.getResources().addAll(anyTO.getResources());
JexlUtils.addAttrTOsToContext(anyTO.getPlainAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(anyTO.getDerAttrs(), jexlContext); JexlUtils.addAttrTOsToContext(anyTO.getVirAttrs(), jexlContext);