springfox.documentation.spi.schema.contexts.ModelPropertyContext Java Examples

The following examples show how to use springfox.documentation.spi.schema.contexts.ModelPropertyContext. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: smart-admin   Author: 1024-lab   File: SmartSwaggerApiModelEnumPlugin.java    License: MIT License 6 votes vote down vote up
@Override
public void apply(ModelPropertyContext context) {
    Optional<ApiModelPropertyEnum> annotation = Optional.absent();

    if (context.getAnnotatedElement().isPresent()) {
        annotation = annotation.or(findApiModePropertyAnnotation(context.getAnnotatedElement().get()));
    }
    if (context.getBeanPropertyDefinition().isPresent()) {
        annotation = annotation.or(findPropertyAnnotation(context.getBeanPropertyDefinition().get(), ApiModelPropertyEnum.class));
    }

    if (annotation.isPresent()) {
        Class<? extends BaseEnum> aClass = annotation.get().value();
        String enumInfo = BaseEnum.getInfo(aClass);
        String enumDesc = annotation.get().enumDesc();
        context.getBuilder().required(annotation.transform(toIsRequired()).or(false))
            .description(enumDesc +":"+enumInfo)
            .example(annotation.transform(toExample()).orNull());
    }
}
 
Example #2
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultRequiredPlugin.java    License: Apache License 2.0 6 votes vote down vote up
private void resolveAnnotatedElement(ModelPropertyContext context) {
	AnnotatedElement annotated = context.getAnnotatedElement().orNull();
	if (annotated == null) {
		return;
	}
	if (AnnotationUtils.findAnnotation(annotated, NotNull.class) != null) {
		context.getBuilder().required(true);
	} else if (AnnotationUtils.findAnnotation(annotated, NotEmpty.class) != null) {
		context.getBuilder().required(true);
	} else if (AnnotationUtils.findAnnotation(annotated, NotBlank.class) != null) {
		context.getBuilder().required(true);
	} else {
		ApiModelProperty annotation = AnnotationUtils.findAnnotation(annotated, ApiModelProperty.class);
		if (annotation != null && annotation.required()) {
			//如果ApiModelProperty上强制要求required为true,则为true
			context.getBuilder().required(true);
		} else {
			context.getBuilder().required(false);
		}
	}
}
 
Example #3
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultRequiredPlugin.java    License: Apache License 2.0 5 votes vote down vote up
private void resolveBeanPropertyDefinition(ModelPropertyContext context) {
	BeanPropertyDefinition beanPropertyDefinition = context.getBeanPropertyDefinition().orNull();
	if (beanPropertyDefinition == null) {
		return;
	}
	if (Annotations.findPropertyAnnotation(beanPropertyDefinition, NotNull.class).isPresent()) {
		context.getBuilder().required(true);
	} else if (Annotations.findPropertyAnnotation(beanPropertyDefinition, NotEmpty.class).isPresent()) {
		context.getBuilder().required(true);
	} else if (Annotations.findPropertyAnnotation(beanPropertyDefinition, NotBlank.class).isPresent()) {
		context.getBuilder().required(true);
	} else {
		context.getBuilder().required(false);
	}
}
 
Example #4
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultModelPlugin.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public void apply(ModelPropertyContext context) {
	BeanPropertyDefinition definition = context.getBeanPropertyDefinition().orNull();
	if (definition == null) {
		return;
	}
	Class<?> modelClass = definition.getAccessor().getDeclaringClass();
	Field field = definition.getField().getAnnotated();
	if (!modelClass.isAnnotationPresent(ApiModel.class)) {
		return;
	}
	resolveDescription(context, field);
	resolveMapEnum(context, field);
	resolveExample(context, modelClass, field);
}
 
Example #5
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultModelPlugin.java    License: Apache License 2.0 5 votes vote down vote up
private void resolveMapEnum(ModelPropertyContext context, Field field) {
	MapEnum legalEnum = field.getAnnotation(MapEnum.class);
	if (legalEnum != null) {
		String descs = MapEnumHelper.getDescs(legalEnum.value(), legalEnum.descMethod());
		Object defaultValue = MapEnumHelper.getDefaultValue(legalEnum.value());
		ModelPropertyBuilder builder = context.getBuilder();
		builder.description(descs);
		builder.example(defaultValue);
		builder.allowableValues(MapEnumHelper.getAllowableValues(legalEnum.value()));
		builder.defaultValue(defaultValue == null ? DefStr.EMPTY : defaultValue.toString());
	}
}
 
Example #6
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultModelPlugin.java    License: Apache License 2.0 5 votes vote down vote up
private void resolveExample(ModelPropertyContext context, Class<?> modelClass, Field field) {
	Object retVal = ReflectUtil.get(field, ReflectUtil.instance(modelClass));
	if (retVal != null) {
		ModelPropertyBuilder builder = context.getBuilder();
		ApiModelProperty modelProperty = field.getAnnotation(ApiModelProperty.class);
		if (modelProperty != null && EmptyUtil.no(modelProperty.example())) {
			return;
		}
		builder.example(retVal);
		builder.defaultValue(String.valueOf(retVal));
	}
}
 
Example #7
Source Project: tutorials   Author: eugenp   File: EmailAnnotationPlugin.java    License: MIT License 5 votes vote down vote up
/**
 * read Email annotation
 */
@Override
public void apply(ModelPropertyContext context) {
    Optional<Email> email = annotationFromBean(context, Email.class);
    if (email.isPresent()) {
        context.getBuilder().pattern(email.get().regexp());
        context.getBuilder().example("[email protected]");
    }
}
 
Example #8
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultRequiredPlugin.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public void apply(ModelPropertyContext context) {
	resolveAnnotatedElement(context);
	resolveBeanPropertyDefinition(context);
}
 
Example #9
Source Project: BlogManagePlatform   Author: Frodez   File: DefaultModelPlugin.java    License: Apache License 2.0 4 votes vote down vote up
private void resolveDescription(ModelPropertyContext context, Field field) {
	ModelPropertyBuilder builder = context.getBuilder();
	String description = StrUtil.orEmpty((String) ReflectUtil.get(ModelPropertyBuilder.class, "description", builder));
	String resolve = recursiveResolveList(TypeUtil.resolve(field.getGenericType()));
	if (resolve != null) {
		//如果还是有ApiModelProperty,就不在原描述后增加列表的描述
		if (!field.isAnnotationPresent(ApiModelProperty.class)) {
			description = StrUtil.concat(description, resolve);
		}
	}
	resolve = resolveRange(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveSize(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveRegex(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveDate(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveNull(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveEmail(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveIDCard(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	resolve = resolveMobile(field);
	if (resolve != null) {
		description = String.join(",", description, resolve);
	}
	builder.description(description);
}