/** * Factory method that creates the conversion service the flow builder will use. Subclasses may override. The * default implementation registers Web Flow-specific converters thought to be useful for most builder * implementations, setting the externally-provided builder services conversion service as its parent. * @return the flow builder conversion service */ protected ConversionService createConversionService() { GenericConversionService service = new GenericConversionService( getFlowBuilderServices().getConversionService().getDelegateConversionService()); service.addConverter(new TextToTransitionCriteria(this)); service.addConverter(new TextToTargetStateResolver(this)); service.setParent(new ParentConversionServiceProxy()); return service; }
/** * Returns a registered converter object * @param sourceClass the source class * @param targetClass the target class */ protected Converter getConverter(Class sourceClass, Class targetClass) { Map sourceTargetConverters = findConvertersForSource(sourceClass); return findTargetConverter(sourceTargetConverters, targetClass); }
public void testRegisterConverter() { GenericConversionService service = new GenericConversionService(); FormattedStringToNumber converter = new FormattedStringToNumber(); DefaultNumberFormatFactory numberFormatFactory = new DefaultNumberFormatFactory(); numberFormatFactory.setLocale(Locale.US); converter.setNumberFormatFactory(numberFormatFactory); service.addConverter(converter); ConversionExecutor executor = service.getConversionExecutor(String.class, Integer.class); Integer three = (Integer) executor.execute("3,000"); assertEquals(new Integer(3000), three); ConversionExecutor executor2 = service.getConversionExecutor(Integer.class, String.class); String string = (String) executor2.execute(3000); assertEquals("3,000", string); }
public Object executeConversion(String converterId, Object source, Class<?> targetClass) throws ConversionException { if (source != null) { ConversionExecutor conversionExecutor = getConversionExecutor(converterId, source.getClass(), targetClass); return conversionExecutor.execute(source); } else { return null; } }
public void testSetValueWithCoersion() { GenericConversionService cs = (GenericConversionService) parser.getConversionService(); StringToDate converter = new StringToDate(); converter.setPattern("yyyy-MM-dd"); cs.addConverter(converter); Expression e = parser.parseExpression("date", null); e.setValue(bean, "2008-9-15"); }
public ConversionExecutor getConversionExecutor(Class<?> sourceClass, Class<?> targetClass) throws ConversionExecutorNotFoundException { Assert.notNull(sourceClass, "The source class to convert from is required"); Assert.notNull(targetClass, "The target class to convert to is required"); sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (targetClass.isAssignableFrom(sourceClass)) { return new StaticConversionExecutor(sourceClass, targetClass, new NoOpConverter(sourceClass, targetClass)); } if (delegate.canConvert(sourceClass, targetClass)) { return new StaticConversionExecutor(sourceClass, targetClass, new SpringConvertingConverterAdapter( sourceClass, targetClass, delegate)); } else if (parent != null) { return parent.getConversionExecutor(sourceClass, targetClass); } else { throw new ConversionExecutorNotFoundException(sourceClass, targetClass, "No ConversionExecutor found for converting from sourceClass [" + sourceClass.getName() + "] to target class [" + targetClass.getName() + "]"); } }
Assert.notNull(sourceClass, "The source class to convert from is required"); Assert.notNull(targetClass, "The target class to convert to is required"); sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (targetClass.isAssignableFrom(sourceClass)) { return new StaticConversionExecutor(sourceClass, targetClass, new NoOpConverter(sourceClass, targetClass)); Converter converter = findRegisteredConverter(sourceClass, targetClass); if (converter != null) {
public Object executeConversion(Object source, Class<?> targetClass) throws ConversionException { if (source != null) { ConversionExecutor conversionExecutor = getConversionExecutor(source.getClass(), targetClass); return conversionExecutor.execute(source); } else { return null; } }
private SpringELExpressionParser createExpressionParser() { StringToDate c = new StringToDate(); c.setPattern("yyyy-MM-dd"); SpringELExpressionParser parser = new WebFlowSpringELExpressionParser(new SpelExpressionParser()); GenericConversionService cs = (GenericConversionService) parser.getConversionService(); cs.addConverter(c); return parser; }
public ConversionExecutor getConversionExecutor(Class<?> sourceClass, Class<?> targetClass) throws ConversionExecutorNotFoundException { Assert.notNull(sourceClass, "The source class to convert from is required"); Assert.notNull(targetClass, "The target class to convert to is required"); sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (targetClass.isAssignableFrom(sourceClass)) { return new StaticConversionExecutor(sourceClass, targetClass, new NoOpConverter(sourceClass, targetClass)); } if (delegate.canConvert(sourceClass, targetClass)) { return new StaticConversionExecutor(sourceClass, targetClass, new SpringConvertingConverterAdapter( sourceClass, targetClass, delegate)); } else if (parent != null) { return parent.getConversionExecutor(sourceClass, targetClass); } else { throw new ConversionExecutorNotFoundException(sourceClass, targetClass, "No ConversionExecutor found for converting from sourceClass [" + sourceClass.getName() + "] to target class [" + targetClass.getName() + "]"); } }
/** * Factory method that creates the conversion service the flow builder will use. Subclasses may override. The * default implementation registers Web Flow-specific converters thought to be useful for most builder * implementations, setting the externally-provided builder services conversion service as its parent. * @return the flow builder conversion service */ protected ConversionService createConversionService() { GenericConversionService service = new GenericConversionService(); service.addConverter(new TextToTransitionCriteria(this)); service.addConverter(new TextToTargetStateResolver(this)); service.setParent(new ParentConversionServiceProxy()); return service; }
public Object executeConversion(Object source, Class<?> targetClass) throws ConversionException { if (source != null) { ConversionExecutor conversionExecutor = getConversionExecutor(source.getClass(), targetClass); return conversionExecutor.execute(source); } else { return null; } }
sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (converter.getSourceClass().isAssignableFrom(sourceClass)) { if (!converter.getTargetClass().isAssignableFrom(targetClass)) {
while (!classQueue.isEmpty()) { Class currentClass = (Class) classQueue.removeLast(); Map sourceTargetConverters = findConvertersForSource(currentClass); Converter converter = findTargetConverter(sourceTargetConverters, targetClass); if (converter != null) { return converter; Map objectConverters = findConvertersForSource(Object.class); return findTargetConverter(objectConverters, targetClass); } else { LinkedList classQueue = new LinkedList(); while (!classQueue.isEmpty()) { Class currentClass = (Class) classQueue.removeLast(); Map sourceTargetConverters = findConvertersForSource(currentClass); Converter converter = findTargetConverter(sourceTargetConverters, targetClass); if (converter != null) { return converter;
/** * Factory method that creates the conversion service the flow builder will use. Subclasses may override. The * default implementation registers Web Flow-specific converters thought to be useful for most builder * implementations, setting the externally-provided builder services conversion service as its parent. * @return the flow builder conversion service */ protected ConversionService createConversionService() { GenericConversionService service = new GenericConversionService( getFlowBuilderServices().getConversionService().getDelegateConversionService()); service.addConverter(new TextToTransitionCriteria(this)); service.addConverter(new TextToTargetStateResolver(this)); service.setParent(new ParentConversionServiceProxy()); return service; }
public Object executeConversion(String converterId, Object source, Class<?> targetClass) throws ConversionException { if (source != null) { ConversionExecutor conversionExecutor = getConversionExecutor(converterId, source.getClass(), targetClass); return conversionExecutor.execute(source); } else { return null; } }
sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (sourceClass.isArray()) { Class<?> sourceComponentType = sourceClass.getComponentType();
public Object executeConversion(Object source, Class targetClass) throws ConversionException { if (source != null) { ConversionExecutor conversionExecutor = getConversionExecutor(source.getClass(), targetClass); return conversionExecutor.execute(source); } else { return null; } }
sourceClass = convertToWrapperClassIfNecessary(sourceClass); targetClass = convertToWrapperClassIfNecessary(targetClass); if (sourceClass.isArray()) { Class<?> sourceComponentType = sourceClass.getComponentType();