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; }
private PropertyEditor getPropertyEditor(Class<?> type) { SimpleTypeConverter typeConverter = this.typeConverter; if (type == null || type == Object.class || Collection.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type)) { return null; } PropertyEditor editor = typeConverter.getDefaultEditor(type); if (editor == null) { editor = typeConverter.findCustomEditor(type, null); } if (editor == null && String.class != type) { editor = BeanUtils.findEditorByConvention(type); } if (editor == null || EXCLUDED_EDITORS.contains(editor.getClass())) { return null; } return editor; }
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; }
@Override public boolean supports(ParamMetaData metaData) { if (ClassUtils.isPrimitiveOrWrapper(metaData.getParamType())) { return true; } SimpleTypeConverter simpleTypeConverter = SafedTypeConverterFactory .getCurrentConverter(); return simpleTypeConverter.findCustomEditor(metaData.getParamType(), null) != null || simpleTypeConverter.getDefaultEditor(metaData.getParamType()) != null; }
inGetDefaultEditor.set(false); return invocation.callRealMethod(); }).when(typeConverter).getDefaultEditor(UUID.class); beanFactoryTypeConverter.setBeanFactory(beanFactory); final TypeDescriptor sourceType = TypeDescriptor.valueOf(UUID.class);
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; }
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; }
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; }
@Override public boolean supports(ParamMetaData metaData) { if (ClassUtils.isPrimitiveOrWrapper(metaData.getParamType())) { return true; } SimpleTypeConverter simpleTypeConverter = SafedTypeConverterFactory .getCurrentConverter(); return simpleTypeConverter.findCustomEditor(metaData.getParamType(), null) != null || simpleTypeConverter.getDefaultEditor(metaData.getParamType()) != null; }