List of usage examples for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser
public SpelExpressionParser()
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(); }