Class PropertyProjector<S,T>

java.lang.Object
cn.dinodev.spring.commons.projection.PropertyProjector<S,T>

public class PropertyProjector<S,T> extends Object
Author:
Cody Lu
  • Constructor Details

    • PropertyProjector

      public PropertyProjector(@Nonnull Class<S> sourceClass, @Nonnull Class<T> targetClass)
      Constructor with default conversion service
      Parameters:
      sourceClass -
      targetClass -
    • PropertyProjector

      public PropertyProjector(@Nonnull Class<S> sourceClass, @Nonnull Class<T> targetClass, @Nullable org.springframework.core.convert.ConversionService conversionService)
      Constructor with specified conversion service
      Parameters:
      sourceClass -
      targetClass -
      conversionService -
  • Method Details

    • getConversionService

      @Nullable public org.springframework.core.convert.ConversionService getConversionService()
      Get the conversion service
      Returns:
    • setConversionService

      public void setConversionService(@Nullable org.springframework.core.convert.ConversionService conversionService)
      Set the conversion service
      Parameters:
      conversionService -
    • copy

      public T copy(S source)
      Copy the source object to the target object
      Parameters:
      source - source object
      Returns:
    • copy

      public T copy(S source, Class<?> activeJsonView)
      Copy the source object to the target object with specified json view
      Parameters:
      source - source object
      activeJsonView - json view class to filter the properties
      Returns:
    • copy

      public T copy(S source, T target)
      Copy the source object to the target object
      Parameters:
      source - source object
      target - target object
      Returns:
    • copy

      public T copy(S source, T target, Class<?> activeJsonView)
      Copy the source object to the target object with specified json view
      Parameters:
      source - source object
      target - target object
      activeJsonView - json view class to filter the properties
      Returns:
    • copy

      public T copy(S source, Function<S,T> targetSupplier)
      Copy the source object to the target object with specified json view
      Parameters:
      source - source object
      targetSupplier - target object supplier
      Returns:
    • copy

      public T copy(S source, Function<S,T> targetSupplier, Class<?> activeJsonView)
      Copy the source object to the target object with specified json view
      Parameters:
      source - source object
      targetSupplier - target object supplier
      activeJsonView - json view class to filter the properties
      Returns:
    • add

      public PropertyProjector<S,T> add(Method sourceGetter, Method targetSetter)
      Add a property copier
      Parameters:
      sourceGetter - source getter method
      targetSetter - target setter method
      Returns:
    • add

      public PropertyProjector<S,T> add(Method sourceGetter, Method targetSetter, Function<?,?> converter)
      Add a property copier with converter
      Parameters:
      sourceGetter - source getter method
      targetSetter - target setter method
      converter - converter function
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Method sourceGetter, BiConsumer<T,V> setter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      targetSetter - target setter method
      views - json view classes
      Returns:
    • add

      public PropertyProjector<S,T> add(String sourcePropertyName, String targetPropertyName)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
      PropertyProjector
    • add

      public PropertyProjector<S,T> add(String sourcePropertyName, String targetPropertyName, Function<?,?> converter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public PropertyProjector<S,T> add(PropertyDescriptor getter, String targetPropertyName, Function<?,?> converter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public PropertyProjector<S,T> add(PropertyDescriptor getter, PropertyDescriptor setter, Supplier<Function<?,?>> converter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(String sourcePropertyName, BiConsumer<T,V> setter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(String sourcePropertyName, BiConsumer<T,V> setter, Function<V,V> converter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Function<S,V> getter, BiConsumer<T,V> setter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Function<S,V> getter, BiConsumer<T,V> setter, Class<?>... views)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Function<S,V> getter, BiConsumer<T,V> setter, Class<?>[] getterViews, Class<?>[] setterViews)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Function<S,V> getter, BiConsumer<T,V> setter, Function<V,V> converter)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns:
    • add

      public <V> PropertyProjector<S,T> add(Function<S,V> getter, BiConsumer<T,V> setter, Function<V,V> converter, Class<?>... views)
      Add a property copier with specified json view
      Parameters:
      sourceGetter - source getter method
      setter - target setter method
      converter - converter function
      views - json view classes
      Returns: