All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mangofactory.swagger.models.property.provider.DefaultModelPropertiesProvider Maven / Gradle / Ivy

The newest version!
package com.mangofactory.swagger.models.property.provider;

import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Iterables;
import com.mangofactory.swagger.models.property.ModelProperty;
import com.mangofactory.swagger.models.property.bean.BeanModelPropertyProvider;
import com.mangofactory.swagger.models.property.constructor.ConstructorModelPropertyProvider;
import com.mangofactory.swagger.models.property.field.FieldModelPropertyProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component(value = "default")
public class DefaultModelPropertiesProvider implements ModelPropertiesProvider {

  private final FieldModelPropertyProvider fieldModelPropertyProvider;
  private final BeanModelPropertyProvider beanModelPropertyProvider;
  private final ConstructorModelPropertyProvider constructorModelPropertyProvider;

  @Autowired
  public DefaultModelPropertiesProvider(BeanModelPropertyProvider beanModelPropertyProvider,
                                        FieldModelPropertyProvider fieldModelPropertyProvider,
                                        ConstructorModelPropertyProvider constructorModelPropertyProvider) {
    this.beanModelPropertyProvider = beanModelPropertyProvider;
    this.fieldModelPropertyProvider = fieldModelPropertyProvider;
    this.constructorModelPropertyProvider = constructorModelPropertyProvider;
  }

  @Override
  public Iterable propertiesForSerialization(ResolvedType type) {
    return Iterables.concat(fieldModelPropertyProvider.propertiesForSerialization(type),
            beanModelPropertyProvider.propertiesForSerialization(type),
            constructorModelPropertyProvider.propertiesForSerialization(type));
  }

  @Override
  public Iterable propertiesForDeserialization(ResolvedType type) {
    return Iterables.concat(fieldModelPropertyProvider.propertiesForDeserialization(type),
            beanModelPropertyProvider.propertiesForDeserialization(type),
            constructorModelPropertyProvider.propertiesForDeserialization(type));
  }

  @Override
  public void setObjectMapper(ObjectMapper objectMapper) {
    fieldModelPropertyProvider.setObjectMapper(objectMapper);
    beanModelPropertyProvider.setObjectMapper(objectMapper);
    constructorModelPropertyProvider.setObjectMapper(objectMapper);
  }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy