/** * Registers the given converter with the underlying Spring ConversionService with the help of an adapter. The * adapter allows an existing Spring Binding converter to be invoked within Spring's type conversion system. * * @param converter the converter * * @see ConverterRegistry * @see org.springframework.core.convert.ConversionService * @see SpringBindingConverterAdapter */ public void addConverter(Converter converter) { ((ConverterRegistry) delegate).addConverter(new SpringBindingConverterAdapter(converter)); if (converter instanceof TwoWayConverter) { TwoWayConverter twoWayConverter = (TwoWayConverter) converter; ((ConverterRegistry) delegate).addConverter(new SpringBindingConverterAdapter(new ReverseConverter( twoWayConverter))); } }
/** * Registers the given converter with the underlying Spring ConversionService with the help of an adapter. The * adapter allows an existing Spring Binding converter to be invoked within Spring's type conversion system. * * @param converter the converter * * @see ConverterRegistry * @see org.springframework.core.convert.ConversionService * @see SpringBindingConverterAdapter */ public void addConverter(Converter converter) { ((ConverterRegistry) delegate).addConverter(new SpringBindingConverterAdapter(converter)); if (converter instanceof TwoWayConverter) { TwoWayConverter twoWayConverter = (TwoWayConverter) converter; ((ConverterRegistry) delegate).addConverter(new SpringBindingConverterAdapter(new ReverseConverter( twoWayConverter))); } }
/** * Add given converter to this conversion service. * @param converter the converter */ public void addConverter(Converter converter) { Class sourceClass = converter.getSourceClass(); Class targetClass = converter.getTargetClass(); Map sourceMap = getSourceMap(sourceClass); sourceMap.put(targetClass, converter); if (converter instanceof TwoWayConverter) { sourceMap = getSourceMap(targetClass); sourceMap.put(sourceClass, new ReverseConverter((TwoWayConverter) converter)); } }
return new StaticConversionExecutor(sourceClass, targetClass, new ReverseConverter(twoWay)); } else { throw new ConversionExecutorNotFoundException(sourceClass, targetClass,
Converter collectionToArray = new ReverseConverter(new ArrayToCollection(this)); return new StaticConversionExecutor(sourceClass, targetClass, collectionToArray); } else {
TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(sourceComponentType, targetComponentType, new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ArrayToArray(elementConverter)); } else { TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(sourceComponentType, converter.getSourceClass(), new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ArrayToCollection( elementConverter)); ConversionExecutor elementConverter = new StaticConversionExecutor(converter.getSourceClass(), targetComponentType, converter); Converter collectionToArray = new ReverseConverter(new ArrayToCollection(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, collectionToArray); } else if (converter.getSourceClass().isAssignableFrom(targetComponentType) TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(converter.getTargetClass(), targetComponentType, new ReverseConverter(twoWay)); Converter collectionToArray = new ReverseConverter(new ArrayToCollection(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, collectionToArray); } else { targetComponentType, new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ObjectToArray(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, new ReverseConverter(twoWay));
TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(sourceComponentType, targetComponentType, new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ArrayToArray(elementConverter)); } else { TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(sourceComponentType, converter.getSourceClass(), new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ArrayToCollection( elementConverter)); ConversionExecutor elementConverter = new StaticConversionExecutor(converter.getSourceClass(), targetComponentType, converter); Converter collectionToArray = new ReverseConverter(new ArrayToCollection(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, collectionToArray); } else if (converter.getSourceClass().isAssignableFrom(targetComponentType) TwoWayConverter twoWay = (TwoWayConverter) converter; ConversionExecutor elementConverter = new StaticConversionExecutor(converter.getTargetClass(), targetComponentType, new ReverseConverter(twoWay)); Converter collectionToArray = new ReverseConverter(new ArrayToCollection(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, collectionToArray); } else { targetComponentType, new ReverseConverter(twoWay)); return new StaticConversionExecutor(sourceClass, targetClass, new ObjectToArray(elementConverter)); return new StaticConversionExecutor(sourceClass, targetClass, new ReverseConverter(twoWay));