
com.mangofactory.swagger.models.property.BaseModelProperty Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swagger-models Show documentation
Show all versions of swagger-models Show documentation
This project integrates swagger with the Spring Web MVC framework
The newest version!
package com.mangofactory.swagger.models.property;
import com.fasterxml.classmate.ResolvedType;
import com.google.common.base.Optional;
import com.mangofactory.swagger.models.ModelContext;
import com.mangofactory.swagger.models.ResolvedTypes;
import com.mangofactory.swagger.models.alternates.AlternateTypeProvider;
import com.mangofactory.swagger.models.dto.AllowableValues;
import com.wordnik.swagger.annotations.ApiModelProperty;
import static com.mangofactory.swagger.models.ResolvedTypes.*;
import static com.mangofactory.swagger.models.property.ApiModelProperties.*;
public abstract class BaseModelProperty implements ModelProperty {
private final Optional apiModelProperty;
private final String name;
private final AlternateTypeProvider alternateTypeProvider;
public BaseModelProperty(String name, AlternateTypeProvider alternateTypeProvider,
Optional apiModelProperty) {
this.name = name;
this.apiModelProperty = apiModelProperty;
this.alternateTypeProvider = alternateTypeProvider;
}
protected abstract ResolvedType realType();
@Override
public ResolvedType getType() {
return alternateTypeProvider.alternateFor(realType());
}
@Override
public String getName() {
return name;
}
@Override
public String qualifiedTypeName() {
if (getType().getTypeParameters().size() > 0) {
return getType().toString();
}
return simpleQualifiedTypeName(getType());
}
@Override
public String typeName(ModelContext modelContext) {
return ResolvedTypes.typeName(getType());
}
@Override
public AllowableValues allowableValues() {
Optional allowableValues = Optional.fromNullable(ResolvedTypes.allowableValues(getType()));
Optional listValues = apiModelProperty.transform(toAllowableValues());
//Preference to inferred allowable values over list values via ApiModelProperty
if (allowableValues.isPresent()) {
return allowableValues.get();
}
return listValues.orNull();
}
@Override
public boolean isRequired() {
return apiModelProperty.transform(toIsRequired()).or(false);
}
@Override
public boolean isHidden() {
return apiModelProperty.transform(toHidden()).or(false);
}
@Override
public String propertyDescription() {
return getApiModelProperty().transform(toDescription()).orNull();
}
protected Optional getApiModelProperty() {
return apiModelProperty;
}
@Override
public int position() {
return apiModelProperty.transform(toPosition()).or(0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy