Example usage for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser

List of usage examples for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser

Introduction

In this page you can find the example usage for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser.

Prototype

public SpelExpressionParser() 

Source Link

Document

Create a parser with default settings.

Usage

From source file:uk.co.christhomson.sibyl.cache.connectors.HashMapConnector.java

public Map<?, ?> query(String cacheName, String query) throws CacheException {
    Map<Object, Object> results = new HashMap<Object, Object>();
    Map<?, ?> data = getCache(cacheName);

    ExpressionParser parser = new SpelExpressionParser();

    for (Object key : data.keySet()) {
        Object value = data.get(key);
        EvaluationContext keyContext = new StandardEvaluationContext(key);

        Expression exp = parser.parseExpression(query);
        boolean result = exp.getValue(keyContext, Boolean.class);

        if (result) {
            results.put(key, value);// ww w  .  ja  va2 s. com
        }
    }

    return results;
}

From source file:cz.jirutka.validator.spring.SpELAssertValidator.java

public void initialize(SpELAssert constraint) {
    ExpressionParser parser = new SpelExpressionParser();

    expression = parser.parseExpression(constraint.value());
    if (hasText(constraint.applyIf())) {
        applyIfExpression = parser.parseExpression(constraint.applyIf());
    }//from  w w w . j  a v  a2 s  .co  m
    for (Class<?> clazz : constraint.helpers()) {
        functions = extractStaticMethods(clazz);
    }
}

From source file:hu.petabyte.redflags.engine.util.MappingUtils.java

/**
 * Sets the value of a bean's property, using the given wrapper. The
 * property can be a deeper one, e.g. "a.b.c.d". If any of a, b or c
 * properties is null, the method will call an empty constructor for its
 * static type. If any error occurs, setDeepProperty will write it to the
 * LOG and returns false./*from  w  ww . ja v a  2  s  .c  o  m*/
 *
 * @param wrapper
 *            Wrapper of the root object.
 * @param property
 *            The property needs to be set.
 * @param value
 *            The new value of the property.
 * @return True if property setting was successful, false on error.
 */
public static synchronized boolean setDeepProperty(BeanWrapper wrapper, String property, Object value) {
    try {
        // this will help calling a constructor:
        ExpressionParser parser = new SpelExpressionParser();

        // go thru property path elements:
        int offset = 0;
        while ((offset = property.indexOf(".", offset + 1)) > -1) {
            String currentProperty = property.substring(0, offset);

            // if current property is null:
            if (null == wrapper.getPropertyValue(currentProperty)) {
                String className = wrapper.getPropertyType(currentProperty).getName();

                // build up a constructor call:
                Expression exp = parser.parseExpression(String.format("new %s()", className));

                // LIMITATIONS:
                // 1) uses static type
                // 2) needs defined empty constructor

                // run it:
                Object newObject = exp.getValue();

                // and set the property:
                wrapper.setPropertyValue(currentProperty, newObject);
            }
        }

        // finally, set the destination property:
        wrapper.setPropertyValue(property, value);
        return true;
    } catch (Exception ex) {
        LOG.error("Could not set property '{}'", property);
        LOG.debug("Exception: ", ex);
        return false;
    }
}

From source file:org.shredzone.cilla.web.fragment.manager.FragmentInvoker.java

/**
 * Creates a new {@link FragmentInvoker}.
 *
 * @param bean/*from  w  w  w.j  a  v a 2s .  c  o m*/
 *            target Spring bean to be invoked
 * @param method
 *            target method to be invoked
 * @param template
 *            JSP template to be used for rendering, or {@code null} if none is
 *            defined
 * @param conversionService
 *            {@link ConversionService} to be used for converting
 */
public FragmentInvoker(Object bean, Method method, String template, ConversionService conversionService) {
    this.bean = bean;
    this.method = method;
    this.template = template;
    this.conversionService = conversionService;

    Annotation[][] annotations = method.getParameterAnnotations();
    expressions = new Expression[annotations.length];
    items = new boolean[annotations.length];

    ExpressionParser parser = new SpelExpressionParser();

    for (int ix = 0; ix < annotations.length; ix++) {
        for (Annotation sub : annotations[ix]) {
            if (sub instanceof FragmentValue) {
                expressions[ix] = parser.parseExpression(((FragmentValue) sub).value());
            } else if (sub instanceof FragmentItem) {
                items[ix] = true;
            }
        }
    }
}

From source file:com.googlecode.starflow.core.script.spel.SpelScriptEngine.java

private ExpressionParser getExpressionParser() {
    return new SpelExpressionParser();
}

From source file:org.jasig.portlet.widget.service.SpringELProcessor.java

/**
 * @{inheritDoc}// w  ww .j a v a2s.  c  o m
 */
@Override
public String process(String value, PortletRequest request) {
    Map<String, Object> context = getContext(request);

    StandardEvaluationContext sec = new StandardEvaluationContext(context);
    sec.addPropertyAccessor(new MapAccessor());
    sec.addPropertyAccessor(new ReflectivePropertyAccessor());
    sec.addPropertyAccessor(new DefaultPropertyAccessor(PARSER_CONTEXT.getExpressionPrefix(),
            PARSER_CONTEXT.getExpressionSuffix()));
    sec.setBeanResolver(beanResolver);
    SpelExpressionParser parser = new SpelExpressionParser();

    String processed = parser.parseExpression(value, PARSER_CONTEXT).getValue(sec, String.class);

    return processed;
}

From source file:org.jasig.portlet.spring.SpringELProcessor.java

@Override
public String process(String value, PortletRequest request) {
    Map<String, Object> context = getContext(request);

    StandardEvaluationContext sec = new StandardEvaluationContext(context);
    sec.addPropertyAccessor(new MapAccessor());
    sec.addPropertyAccessor(new ReflectivePropertyAccessor());
    sec.addPropertyAccessor(new DefaultPropertyAccessor(PARSER_CONTEXT.getExpressionPrefix(),
            PARSER_CONTEXT.getExpressionSuffix()));
    if (beanResolver != null) {
        sec.setBeanResolver(beanResolver);
    }/*from  ww  w.j a v  a  2 s  . c  om*/
    SpelExpressionParser parser = new SpelExpressionParser();

    try {
        String processed = parser.parseExpression(value, PARSER_CONTEXT).getValue(sec, String.class);
        return processed;
    } catch (SpelEvaluationException e) {
        throw new EvaluationException("Failed to process string '" + value
                + "'. See nested error message and check your SpEL tokens in your string", e);
    }
}

From source file:org.craftercms.commons.ebus.config.EBusBeanAutoConfiguration.java

public EBusBeanAutoConfiguration() {
    this.expressionParser = new SpelExpressionParser();
}

From source file:com.arondor.common.reflection.parser.spring.BeanPropertyParser.java

public ElementConfiguration parseProperty(Object value) {
    LOGGER.debug("value : " + value);
    if (value instanceof TypedStringValue) {
        TypedStringValue stringValue = (TypedStringValue) value;
        if (stringValue.getTargetTypeName() != null) {
            return getEnumObjectConfiguration(stringValue);
        } else {/*  w  w  w .  jav  a 2  s .c  om*/
            PrimitiveConfiguration primitiveConfiguration = objectConfigurationFactory
                    .createPrimitiveConfiguration();
            if (useSPEL(stringValue)) {
                ExpressionParser parser = new SpelExpressionParser();
                String expAsStringWithToken = stringValue.getValue().trim();
                String expAsString = expAsStringWithToken.substring(2, expAsStringWithToken.length() - 1)
                        .trim();
                LOGGER.trace("This property is a SPEL expression: " + expAsString);

                // String regex = "systemProperties\\['([^\\s]+)'\\]";

                Expression exp = parser.parseExpression(expAsString);
                StandardEvaluationContext sec = null;
                if (sec == null) {
                    sec = new StandardEvaluationContext();
                    sec.addPropertyAccessor(new EnvironmentAccessor());
                    sec.addPropertyAccessor(new BeanExpressionContextAccessor());
                    sec.addPropertyAccessor(new BeanFactoryAccessor());
                    sec.addPropertyAccessor(new MapAccessor());
                }
                primitiveConfiguration.setValue(String.valueOf(exp.getValue()));
            } else {
                LOGGER.trace("This property is NOT a SPEL expression: " + stringValue.getValue());
                primitiveConfiguration.setValue(stringValue.getValue());
            }
            return primitiveConfiguration;
        }
    } else if (value instanceof RuntimeBeanReference) {
        RuntimeBeanReference beanReference = (RuntimeBeanReference) value;
        ReferenceConfiguration referenceConfiguration = objectConfigurationFactory
                .createReferenceConfiguration();
        referenceConfiguration.setReferenceName(beanReference.getBeanName());
        return referenceConfiguration;
    } else if (value instanceof ManagedList<?>) {
        return parseValueList((ManagedList<?>) value);
    } else if (value instanceof ManagedMap<?, ?>) {
        return parseValueMap((ManagedMap<?, ?>) value);
    } else if (value instanceof BeanDefinitionHolder) {
        BeanDefinitionHolder beanDefinitionHolder = (BeanDefinitionHolder) value;
        return parseBeanDefinition(beanDefinitionHolder.getBeanDefinition());
    } else {
        throw new UnsupportedOperationException("The type of property value is not suppported : " + value
                + " (class : " + value.getClass().getName() + ")");
    }
}

From source file:com.google.code.activetemplates.impl.TemplateCompilerImpl.java

public TemplateCompilerImpl() {

    outFactory = XMLOutputFactory.newInstance();
    outFactory.setProperty(XMLOutputFactory2.IS_REPAIRING_NAMESPACES, true);
    inFactory = XMLInputFactory.newInstance();
    eFactory = XMLEventFactory.newInstance();

    h = new Handlers();

    excludedNamespaces = new HashSet<String>();
    List<HandlerSPI> spis = Providers.getHandlerSPIs();

    for (HandlerSPI spi : spis) {
        Set<String> s = spi.getExcludedNamespaces();
        if (s != null) {
            excludedNamespaces.addAll(s);
        }//from   ww w  .  j  ava  2 s  .c  om
    }

    eComponentFactory = new EventComponentFactory();
    expressionParser = new SpelExpressionParser();
}