/** * Obtain the default TypeConverter for this method invoker. * <p>Called if no explicit TypeConverter has been specified. * The default implementation builds a * {@link org.springframework.beans.SimpleTypeConverter}. * Can be overridden in subclasses. */ protected TypeConverter getDefaultTypeConverter() { return new SimpleTypeConverter(); }
private void setFieldIfNotNull(Field field, Object instance, Object val) { try { if (val != null) { Object convertedValue = typeConverter.convertIfNecessary(val, configField.getType()); field.set(instance, convertedValue); } } catch (IllegalAccessException e) { throw bomb("Error setting configField: " + field.getName(), e); } }
public boolean canConvert(Class<?> sourceType, Class<?> targetType) { if (conversionService.canConvert(sourceType, targetType)) { return true; } if (!String.class.isAssignableFrom(sourceType) && !String.class.isAssignableFrom(targetType)) { // PropertyEditor cannot convert non-Strings return false; } if (!String.class.isAssignableFrom(sourceType)) { return delegate.findCustomEditor(sourceType, null) != null || delegate.getDefaultEditor(sourceType) != null; } return delegate.findCustomEditor(targetType, null) != null || delegate.getDefaultEditor(targetType) != null; }
/** * Return this binder's underlying SimpleTypeConverter. */ protected SimpleTypeConverter getSimpleTypeConverter() { if (this.typeConverter == null) { this.typeConverter = new SimpleTypeConverter(); if (this.conversionService != null) { this.typeConverter.setConversionService(this.conversionService); } } return this.typeConverter; }
@Override public Object convertValue(Object value, TypeDescriptor sourceType, TypeDescriptor targetType) { if (targetType.getType() == Void.class || targetType.getType() == Void.TYPE) { return null; } if (conversionService.canConvert(sourceType, targetType)) { return conversionService.convert(value, sourceType, targetType); } if (!String.class.isAssignableFrom(sourceType.getType())) { PropertyEditor editor = delegate.findCustomEditor(sourceType.getType(), null); editor.setValue(value); return editor.getAsText(); } return delegate.convertIfNecessary(value, targetType.getType()); }
public boolean isSatisfied(PipelineStates pipelineStates) { assertNotNull(expression, "no expression"); ExpressionContext expressionContext = new PipelineExpressionContext(pipelineStates); Object value = expression.evaluate(expressionContext); if (value == null) { return false; } else if (value instanceof Boolean) { return (Boolean) value; } else { try { return (Boolean) new SimpleTypeConverter().convertIfNecessary(value, Boolean.class); } catch (TypeMismatchException e) { throw new PipelineException( "Failed to evaluating expression for JexlCondition into a boolean value: \"" + getEscapedExpression(expressionString) + "\"", e); } } }
public AbstractValueParser(ParserRequestContext requestContext) { this.requestContext = requestContext; this.converter = new SimpleTypeConverter(); this.converter.registerCustomEditor(String.class, new StringFileItemEditor()); if (requestContext.getPropertyEditorRegistrar() != null) { requestContext.getPropertyEditorRegistrar().registerCustomEditors(converter); } }
final BeanFactoryTypeConverter beanFactoryTypeConverter = new BeanFactoryTypeConverter(conversionService); ConfigurableBeanFactory beanFactory = mock(ConfigurableBeanFactory.class); SimpleTypeConverter typeConverter = spy(new SimpleTypeConverter()); when(beanFactory.getTypeConverter()).thenReturn(typeConverter); final AtomicBoolean inGetDefaultEditor = new AtomicBoolean(); inGetDefaultEditor.set(false); return invocation.callRealMethod(); }).when(typeConverter).getDefaultEditor(UUID.class); beanFactoryTypeConverter.setBeanFactory(beanFactory); final TypeDescriptor sourceType = TypeDescriptor.valueOf(UUID.class);
@Override protected SimpleTypeConverter initialValue() { // simpleTypeConverter is not for concurrency! SimpleTypeConverter simpleTypeConverter = new SimpleTypeConverter(); simpleTypeConverter.useConfigValueEditors(); simpleTypeConverter.registerCustomEditor(Date.class, new DateEditor(Date.class)); simpleTypeConverter.registerCustomEditor(java.sql.Date.class, new DateEditor( java.sql.Date.class)); simpleTypeConverter.registerCustomEditor(java.sql.Time.class, new DateEditor( java.sql.Time.class)); simpleTypeConverter.registerCustomEditor(java.sql.Timestamp.class, new DateEditor( java.sql.Timestamp.class)); return simpleTypeConverter; } };
private PropertyEditor getDefaultEditor(Class<?> sourceType) { PropertyEditor defaultEditor; if (this.haveCalledDelegateGetDefaultEditor) { defaultEditor = this.delegate.getDefaultEditor(sourceType); } else { synchronized (this) { // not thread-safe - it builds the defaultEditors field in-place (SPR-10191) defaultEditor = this.delegate.getDefaultEditor(sourceType); } this.haveCalledDelegateGetDefaultEditor = true; } return defaultEditor; }
public boolean canConvert(Class<?> sourceType, Class<?> targetType) { if (this.conversionService.canConvert(sourceType, targetType)) { return true; } if (!String.class.isAssignableFrom(sourceType) && !String.class.isAssignableFrom(targetType)) { // PropertyEditor cannot convert non-Strings return false; } if (!String.class.isAssignableFrom(sourceType)) { return this.delegate.findCustomEditor(sourceType, null) != null || this.getDefaultEditor(sourceType) != null; } return this.delegate.findCustomEditor(targetType, null) != null || this.getDefaultEditor(targetType) != null; }
public boolean isSatisfied(PipelineStates pipelineStates) { assertNotNull(expression, "no expression"); ExpressionContext expressionContext = new PipelineExpressionContext(pipelineStates); Object value = expression.evaluate(expressionContext); if (value == null) { return false; } else if (value instanceof Boolean) { return (Boolean) value; } else { try { return (Boolean) new SimpleTypeConverter().convertIfNecessary(value, Boolean.class); } catch (TypeMismatchException e) { throw new PipelineException( "Failed to evaluating expression for JexlCondition into a boolean value: \"" + getEscapedExpression(expressionString) + "\"", e); } } }
/** * Return this binder's underlying SimpleTypeConverter. */ protected SimpleTypeConverter getSimpleTypeConverter() { if (this.typeConverter == null) { this.typeConverter = new SimpleTypeConverter(); if (this.conversionService != null) { this.typeConverter.setConversionService(this.conversionService); } } return this.typeConverter; }
public AbstractValueParser(ParserRequestContext requestContext) { this.requestContext = requestContext; this.converter = new SimpleTypeConverter(); this.converter.registerCustomEditor(String.class, new StringFileItemEditor()); if (requestContext.getPropertyEditorRegistrar() != null) { requestContext.getPropertyEditorRegistrar().registerCustomEditors(converter); } }
PropertyEditor editor = this.delegate.findCustomEditor(sourceType.getType(), null); if (editor == null) { editor = this.getDefaultEditor(sourceType.getType()); return this.delegate.convertIfNecessary(value, targetType.getType());
@Override protected SimpleTypeConverter initialValue() { // simpleTypeConverter is not for concurrency! SimpleTypeConverter simpleTypeConverter = new SimpleTypeConverter(); simpleTypeConverter.useConfigValueEditors(); simpleTypeConverter.registerCustomEditor(Date.class, new DateEditor(Date.class)); simpleTypeConverter.registerCustomEditor(java.sql.Date.class, new DateEditor( java.sql.Date.class)); simpleTypeConverter.registerCustomEditor(java.sql.Time.class, new DateEditor( java.sql.Time.class)); simpleTypeConverter.registerCustomEditor(java.sql.Timestamp.class, new DateEditor( java.sql.Timestamp.class)); return simpleTypeConverter; } };
private PropertyEditor getDefaultEditor(Class<?> sourceType) { PropertyEditor defaultEditor; if (this.haveCalledDelegateGetDefaultEditor) { defaultEditor = delegate.getDefaultEditor(sourceType); } else { synchronized (this) { // not thread-safe - it builds the defaultEditors field in-place // (SPR-10191) defaultEditor = delegate.getDefaultEditor(sourceType); } this.haveCalledDelegateGetDefaultEditor = true; } return defaultEditor; }
public boolean canConvert(Class<?> sourceType, Class<?> targetType) { if (this.conversionService.canConvert(sourceType, targetType)) { return true; } if (!String.class.isAssignableFrom(sourceType) && !String.class.isAssignableFrom(targetType)) { // PropertyEditor cannot convert non-Strings return false; } if (!String.class.isAssignableFrom(sourceType)) { return this.delegate.findCustomEditor(sourceType, null) != null || this.getDefaultEditor(sourceType) != null; } return this.delegate.findCustomEditor(targetType, null) != null || this.getDefaultEditor(targetType) != null; }
public static void setFieldValue(Field field, Object bean, Object value) throws IllegalAccessException { // Set it on the field field.setAccessible(true); // Perform type conversion if possible.. SimpleTypeConverter converter = new SimpleTypeConverter(); try { value = converter.convertIfNecessary(value, field.getType()); } catch (ConversionNotSupportedException e) { // If conversion isn't supported, ignore and try and set anyway. } field.set(bean, value); }
/** * Obtain the default TypeConverter for this method invoker. * <p>Called if no explicit TypeConverter has been specified. * The default implementation builds a * {@link org.springframework.beans.SimpleTypeConverter}. * Can be overridden in subclasses. */ protected TypeConverter getDefaultTypeConverter() { return new SimpleTypeConverter(); }