Example usage for org.apache.commons.jexl3 MapContext set

List of usage examples for org.apache.commons.jexl3 MapContext set

Introduction

In this page you can find the example usage for org.apache.commons.jexl3 MapContext set.

Prototype

@Override
    public void set(String name, Object value) 

Source Link

Usage

From source file:org.apache.syncope.core.provisioning.java.utils.TemplateUtils.java

private void fill(final AnyTO anyTO, final AnyTO template) {
    MapContext jexlContext = new MapContext();
    JexlUtils.addFieldsToContext(anyTO, jexlContext);
    JexlUtils.addAttrTOsToContext(anyTO.getPlainAttrs(), jexlContext);
    JexlUtils.addAttrTOsToContext(anyTO.getDerAttrs(), jexlContext);
    JexlUtils.addAttrTOsToContext(anyTO.getVirAttrs(), jexlContext);

    if (template.getRealm() != null) {
        String evaluated = JexlUtils.evaluate(template.getRealm(), jexlContext);
        if (StringUtils.isNotBlank(evaluated)) {
            anyTO.setRealm(evaluated);/*from www.j  a v a 2 s  .  co  m*/
        }
    }

    Map<String, AttrTO> currentAttrMap = EntityTOUtils.buildAttrMap(anyTO.getPlainAttrs());
    for (AttrTO templatePlainAttr : template.getPlainAttrs()) {
        if (!templatePlainAttr.getValues().isEmpty()
                && (!currentAttrMap.containsKey(templatePlainAttr.getSchema())
                        || currentAttrMap.get(templatePlainAttr.getSchema()).getValues().isEmpty())) {

            AttrTO evaluated = evaluateAttr(templatePlainAttr, jexlContext);
            if (!evaluated.getValues().isEmpty()) {
                anyTO.getPlainAttrs().add(evaluated);
                jexlContext.set(evaluated.getSchema(), evaluated.getValues().get(0));
            }
        }
    }

    currentAttrMap = EntityTOUtils.buildAttrMap(anyTO.getDerAttrs());
    for (AttrTO templateDerAttr : template.getDerAttrs()) {
        if (!currentAttrMap.containsKey(templateDerAttr.getSchema())) {
            anyTO.getDerAttrs().add(templateDerAttr);
        }
    }

    currentAttrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs());
    for (AttrTO templateVirAttr : template.getVirAttrs()) {
        if (!templateVirAttr.getValues().isEmpty() && (!currentAttrMap.containsKey(templateVirAttr.getSchema())
                || currentAttrMap.get(templateVirAttr.getSchema()).getValues().isEmpty())) {

            AttrTO evaluated = evaluateAttr(templateVirAttr, jexlContext);
            if (!evaluated.getValues().isEmpty()) {
                anyTO.getVirAttrs().add(evaluated);
                jexlContext.set(evaluated.getSchema(), evaluated.getValues().get(0));
            }
        }
    }

    anyTO.getResources().addAll(template.getResources());

    anyTO.getAuxClasses().addAll(template.getAuxClasses());
}