Skip to content

Instantly share code, notes, and snippets.

@dilipkrish
Created December 18, 2017 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dilipkrish/2bf80a0285a04b4037c8994fd8cb8b80 to your computer and use it in GitHub Desktop.
Save dilipkrish/2bf80a0285a04b4037c8994fd8cb8b80 to your computer and use it in GitHub Desktop.
Alternate Type Rule Convention to create alternate type rules for vavr collection types
package springfox.test.contract.swagger;
import com.fasterxml.classmate.TypeResolver;
import io.vavr.collection.Map;
import io.vavr.collection.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import springfox.documentation.schema.AlternateTypeRule;
import springfox.documentation.schema.AlternateTypeRuleConvention;
import springfox.documentation.schema.WildcardType;
import java.util.ArrayList;
import java.util.List;
import static springfox.documentation.schema.AlternateTypeRules.newRule;
@Component
public class VavrDefaultsConvention implements AlternateTypeRuleConvention {
@Autowired
private TypeResolver typeResolver;
@Override
public List<AlternateTypeRule> rules() {
ArrayList<AlternateTypeRule> rules = new ArrayList<AlternateTypeRule>();
rules.add(
newRule(
typeResolver.resolve(io.vavr.collection.List.class, WildcardType.class),
typeResolver.resolve(List.class, WildcardType.class)));
rules.add(
newRule(
typeResolver.resolve(Set.class, WildcardType.class),
typeResolver.resolve(java.util.Set.class, WildcardType.class)));
rules.add(
newRule(
typeResolver.resolve(Map.class, WildcardType.class, WildcardType.class),
typeResolver.resolve(java.util.Map.class, WildcardType.class, WildcardType.class)));
return rules;
}
@Override
public int getOrder() {
return HIGHEST_PRECEDENCE;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment