/** * Generate a default example value for parameter. * * @param parameter parameter * @return a generated example for the parameter */ public static Object generateExample(AbstractSerializableParameter<?> parameter) { switch (parameter.getType()) { case "integer": return 0; case "number": return 0.0; case "boolean": return true; case "string": return ExamplesUtil.generateStringExample(parameter.getFormat(), parameter.getEnum()); default: return parameter.getType(); } }
type = new EnumType(serializableParameter.getName(), enums); } else { type = new BasicType(serializableParameter.getType(), serializableParameter.getName(), serializableParameter.getFormat());
@Override public JavaType convert(SwaggerToClassGenerator swaggerToClassGenerator, Object def) { AbstractSerializableParameter<?> param = (AbstractSerializableParameter<?>) def; switch (param.getType()) { case ArrayProperty.TYPE: return ArrayPropertyConverter.findJavaType(swaggerToClassGenerator, param.getItems(), param.isUniqueItems()); case StringProperty.TYPE: return StringPropertyConverter.findJavaType(swaggerToClassGenerator, param.getType(), param.getFormat(), param.getEnum()); default: return ConverterMgr.findJavaType(param.getType(), param.getFormat()); } } }
private Class<?> getType(String name, Parameter parameter) { checkNotNull(parameter, String.format("Could not find parameter [%s] in swagger model!", name)); if (parameter instanceof AbstractParameter) { AbstractSerializableParameter castedParam = (AbstractSerializableParameter) parameter; return Types.getParameterType(castedParam.getType(), castedParam.getFormat()); } else { throw new UnsupportedOperationException(String.format("Parameter type [%s] not supported!", parameter.getClass().getName())); } } }
/** * Create validation expression using functions according to parameter type and format. * @param parameter * @return */ private String createValidationExpression(AbstractSerializableParameter parameter) { switch (parameter.getType()) { case "integer": return "@isNumber()@"; case "string": if (parameter.getFormat() != null && parameter.getFormat().equals("date")) { return "\"@matchesDatePattern('yyyy-MM-dd')@\""; } else if (parameter.getFormat() != null && parameter.getFormat().equals("date-time")) { return "\"@matchesDatePattern('yyyy-MM-dd'T'hh:mm:ss')@\""; } else if (StringUtils.hasText(parameter.getPattern())) { return "\"@matches(" + parameter.getPattern() + ")@\""; } else if (!CollectionUtils.isEmpty(parameter.getEnum())) { return "\"@matches(" + (parameter.getEnum().stream().collect(Collectors.joining("|"))) + ")@\""; } else { return "@notEmpty()@"; } case "boolean": return "@matches(true|false)@"; default: return "@ignore@"; } }
if("string".equals(ap.getType()) && ("date".equals(ap.getFormat()) || "date-time".equals(ap.getFormat()))) { if(o instanceof DateTime) { .message(new ValidationMessage() .code(ValidationError.INVALID_FORMAT) .message(parameter.getIn() + " parameter `" + parameter.getName() + " value `" + o + "` is not a valid " + ap.getFormat()));
if("string".equals(ap.getType()) && ("date".equals(ap.getFormat()) || "date-time".equals(ap.getFormat()))) { if(o instanceof DateTime) { .message(new ValidationMessage() .code(ValidationError.INVALID_FORMAT) .message(parameter.getIn() + " parameter `" + parameter.getName() + " value `" + o + "` is not a valid " + ap.getFormat()));
@Override public JavaType convert(SwaggerToClassGenerator swaggerToClassGenerator, Object def) { AbstractSerializableParameter<?> param = (AbstractSerializableParameter<?>) def; switch (param.getType()) { case ArrayProperty.TYPE: return ArrayPropertyConverter.findJavaType(swaggerToClassGenerator, param.getItems(), param.isUniqueItems()); case StringProperty.TYPE: return StringPropertyConverter.findJavaType(swaggerToClassGenerator, param.getType(), param.getFormat(), param.getEnum()); default: return ConverterMgr.findJavaType(param.getType(), param.getFormat()); } } }
serializableParameter.getFormat(), ImmutableMap.of()); items.setRequired(param.required()); items.setAccess(param.access());
args.put(PropertyBuilder.PropertyId.EXCLUSIVE_MAXIMUM, p.isExclusiveMaximum()); p.setExclusiveMaximum(null); Property items = PropertyBuilder.build(p.getType(), p.getFormat(), args); p.type(ArrayProperty.TYPE).format(null).items(items);
type = new EnumType(serializableParameter.getName(), enums); } else { type = new BasicType(serializableParameter.getType(), serializableParameter.getName(), serializableParameter.getFormat());
type = ap.getType(); type = SwaggerTypeManager.teiidType(type, p.getFormat(), p.getItems() != null); defaultValue = p.getDefaultValue(); collectionFormat = p.getCollectionFormat();
break; case "format": _switchResult = param.getFormat(); break; case "items":
private static void copyFields(AbstractSerializableParameter<?> from, AbstractSerializableParameter<?> to) { copyFields((AbstractParameter) from, (AbstractParameter) to); to.setCollectionFormat(from.getCollectionFormat()); to.setDefault(from.getDefault()); to.setEnum(from.getEnum()); if (from.getExample() != null) { to.setExample(from.getExample().toString()); } to.setExclusiveMaximum(to.isExclusiveMaximum()); to.setExclusiveMinimum(to.isExclusiveMinimum()); to.setFormat(from.getFormat()); to.setItems(from.getItems()); to.setMaximum(from.getMaximum()); to.setMaxItems(from.getMaxItems()); to.setMaxLength(from.getMaxLength()); to.setMinLength(to.getMinLength()); to.setMinimum(from.getMinimum()); to.setMaxItems(from.getMaxItems()); to.setMinLength(from.getMinLength()); to.setMultipleOf(from.getMultipleOf()); to.setType(from.getType()); to.setUniqueItems(from.isUniqueItems()); }