Java源码示例:io.swagger.models.properties.IntegerProperty
示例1
@SuppressWarnings("squid:S1192") // better in-place defined for better readability
protected Property createBaseTypeProperty(Class<?> type, Annotation[] annotations) {
if (byte.class.equals(type) || short.class.equals(type) || int.class.equals(type)) {
return createNumberSchema(new IntegerProperty(), annotations);
} else if (long.class.equals(type)) {
return createNumberSchema(new LongProperty(), annotations);
} else if (float.class.equals(type)) {
return createNumberSchema(new FloatProperty().vendorExtension("x-type", "System.BigDecimal"), annotations);
} else if (double.class.equals(type)) {
return createNumberSchema(new DoubleProperty().vendorExtension("x-type", "System.BigDecimal"), annotations);
} else if (char.class.equals(type)) {
return createStringProperty(null, annotations);
} else if (boolean.class.equals(type)) {
return new BooleanProperty();
}
logger.info("Ignoring unsupported type=[{}]", type.getSimpleName());
return null;
}
示例2
@SuppressWarnings("squid:S3776") // no other solution
protected Property createRefTypeProperty(Class<?> typeClass, Annotation[] annotations, GenerationContext generationContext) {
if (Byte.class.equals(typeClass) || Short.class.equals(typeClass) || Integer.class.equals(typeClass)) {
return createNumberSchema(new IntegerProperty(), annotations);
} else if (Long.class.equals(typeClass) || BigInteger.class.equals(typeClass)) {
return createNumberSchema(new LongProperty(), annotations);
} else if (Float.class.equals(typeClass)) {
return createNumberSchema(new FloatProperty().vendorExtension("x-type", "System.BigDecimal"), annotations);
} else if (Double.class.equals(typeClass) || BigDecimal.class.equals(typeClass)) {
return createNumberSchema(new DoubleProperty().vendorExtension("x-type", "System.BigDecimal"), annotations);
} else if (Character.class.equals(typeClass) || String.class.equals(typeClass)) {
return createStringProperty(null, annotations);
} else if (Boolean.class.equals(typeClass)) {
return new BooleanProperty();
} else if (List.class.equals(typeClass)) {
return createArrayProperty(typeClass, generationContext, annotations);
} else if (LocalDate.class.equals(typeClass) || Date.class.equals(typeClass)) {
return createStringProperty("date", annotations);
} else if (LocalDateTime.class.equals(typeClass) || LocalTime.class.equals(typeClass)) {
return createStringProperty("date-time", annotations);
}
return createRefProperty(typeClass, generationContext);
}
示例3
private static void initPropertyMap() {
PROPERTY_MAP.put(BooleanProperty.class, TypeFactory.defaultInstance().constructType(Boolean.class));
PROPERTY_MAP.put(FloatProperty.class, TypeFactory.defaultInstance().constructType(Float.class));
PROPERTY_MAP.put(DoubleProperty.class, TypeFactory.defaultInstance().constructType(Double.class));
PROPERTY_MAP.put(DecimalProperty.class, TypeFactory.defaultInstance().constructType(BigDecimal.class));
PROPERTY_MAP.put(ByteProperty.class, TypeFactory.defaultInstance().constructType(Byte.class));
PROPERTY_MAP.put(ShortProperty.class, TypeFactory.defaultInstance().constructType(Short.class));
PROPERTY_MAP.put(IntegerProperty.class, TypeFactory.defaultInstance().constructType(Integer.class));
PROPERTY_MAP.put(BaseIntegerProperty.class, TypeFactory.defaultInstance().constructType(Integer.class));
PROPERTY_MAP.put(LongProperty.class, TypeFactory.defaultInstance().constructType(Long.class));
// stringProperty include enum scenes, not always be string type
// if convert by StringPropertyConverter, can support enum scenes
PROPERTY_MAP.put(StringProperty.class, TypeFactory.defaultInstance().constructType(String.class));
PROPERTY_MAP.put(DateProperty.class, TypeFactory.defaultInstance().constructType(LocalDate.class));
PROPERTY_MAP.put(DateTimeProperty.class, TypeFactory.defaultInstance().constructType(Date.class));
PROPERTY_MAP.put(ByteArrayProperty.class, TypeFactory.defaultInstance().constructType(byte[].class));
PROPERTY_MAP.put(FileProperty.class, TypeFactory.defaultInstance().constructType(Part.class));
}
示例4
private static Property getSwaggerArrayProperty(TypeToken<?> typeToken) {
Class<?> type = typeToken.getRawType();
if (type == String.class) {
return new StringProperty();
} else if (type == Boolean.class || type == Boolean.TYPE) {
return new BooleanProperty();
} else if (type == Integer.class || type == Integer.TYPE) {
return new IntegerProperty();
} else if (type == Long.class || type == Long.TYPE) {
return new LongProperty();
} else if (type == Float.class || type == Float.TYPE) {
return new FloatProperty();
} else if (type == Double.class || type == Double.TYPE) {
return new DoubleProperty();
} else if (type == byte[].class) {
return new ByteArrayProperty();
} else if (type.isEnum()) {
return new StringProperty();
}
throw new IllegalArgumentException("invalid property type");
}
示例5
/**
* Retrieves the default value of a property
*
* @return the default value of the property
*/
public Optional<Object> getDefaultValue() {
if (property instanceof BooleanProperty) {
BooleanProperty booleanProperty = (BooleanProperty) property;
return Optional.ofNullable(booleanProperty.getDefault());
} else if (property instanceof StringProperty) {
StringProperty stringProperty = (StringProperty) property;
return Optional.ofNullable(stringProperty.getDefault());
} else if (property instanceof DoubleProperty) {
DoubleProperty doubleProperty = (DoubleProperty) property;
return Optional.ofNullable(doubleProperty.getDefault());
} else if (property instanceof FloatProperty) {
FloatProperty floatProperty = (FloatProperty) property;
return Optional.ofNullable(floatProperty.getDefault());
} else if (property instanceof IntegerProperty) {
IntegerProperty integerProperty = (IntegerProperty) property;
return Optional.ofNullable(integerProperty.getDefault());
} else if (property instanceof LongProperty) {
LongProperty longProperty = (LongProperty) property;
return Optional.ofNullable(longProperty.getDefault());
} else if (property instanceof UUIDProperty) {
UUIDProperty uuidProperty = (UUIDProperty) property;
return Optional.ofNullable(uuidProperty.getDefault());
}
return Optional.empty();
}
示例6
protected void setParameterDetails(AbstractSerializableParameter<?> oasParameter, Class<?> type, Annotation[] annotations) {
if (byte.class.equals(type) || short.class.equals(type) || int.class.equals(type) || Byte.class.equals(type) ||
Short.class.equals(type) || Integer.class.equals(type)) {
oasParameter.setProperty(new IntegerProperty());
} else if (long.class.equals(type) || Long.class.equals(type) || BigInteger.class.equals(type)) {
oasParameter.setProperty(new LongProperty());
} else if (float.class.equals(type) || Float.class.equals(type)) {
oasParameter.setProperty(new FloatProperty().vendorExtension("x-type", "System.BigDecimal"));
} else if (double.class.equals(type) || Double.class.equals(type) || BigDecimal.class.equals(type)) {
oasParameter.setProperty(new DoubleProperty().vendorExtension("x-type", "System.BigDecimal"));
} else if (char.class.equals(type) || Character.class.equals(type) || String.class.equals(type)) {
oasParameter.setProperty(new StringProperty());
} else if (boolean.class.equals(type) || Boolean.class.equals(type)) {
oasParameter.setProperty(new BooleanProperty());
} else if (List.class.equals(type)) {
oasParameter.setProperty(createArrayProperty(type, null, annotations));
} else if (LocalDate.class.equals(type) || Date.class.equals(type)) {
oasParameter.setProperty(new DateProperty());
} else if (LocalDateTime.class.equals(type) || LocalTime.class.equals(type)) {
oasParameter.setProperty(new DateTimeProperty());
} else if (type.isEnum()) {
mapEnum(oasParameter, type);
} else {
oasParameter.setProperty(createRefProperty(type, null));
}
asList(annotations).forEach(annotation -> applyAnnotationDetailsOnParameter(oasParameter, annotation));
}
示例7
protected Property createProperty(Class<?> elementTypeSignature) {
if (byte.class.equals(elementTypeSignature) || short.class.equals(elementTypeSignature) || int.class.equals(elementTypeSignature)
|| long.class.equals(elementTypeSignature) || Byte.class.equals(elementTypeSignature) || Short.class.equals(elementTypeSignature)
|| Integer.class.equals(elementTypeSignature) || Long.class.equals(elementTypeSignature) || BigInteger.class.equals(elementTypeSignature)) {
return new IntegerProperty();
} else if (float.class.equals(elementTypeSignature) || Float.class.equals(elementTypeSignature)) {
return new FloatProperty().vendorExtension("x-type", "System.BigDecimal");
} else if (double.class.equals(elementTypeSignature) || Double.class.equals(elementTypeSignature) || BigDecimal.class.equals(elementTypeSignature)) {
return new DoubleProperty().vendorExtension("x-type", "System.BigDecimal");
} else if (List.class.equals(elementTypeSignature)) {
throw new IllegalArgumentException("Nested List types are not supported"
+ elementTypeSignature.getName()
);
} else {
if (char.class.equals(elementTypeSignature) || Character.class.equals(elementTypeSignature) || String.class.equals(elementTypeSignature)
|| LocalDate.class.equals(elementTypeSignature) || Date.class.equals(elementTypeSignature)
|| LocalDateTime.class.equals(elementTypeSignature) || LocalTime.class.equals(elementTypeSignature)) {
return new StringProperty();
} else if (elementTypeSignature.isEnum()) {
StringProperty property = new StringProperty();
property.setEnum(Arrays.stream(elementTypeSignature.getEnumConstants()).map(Object::toString).collect(toList()));
return property;
} else if (boolean.class.equals(elementTypeSignature) || Boolean.class.equals(elementTypeSignature)) {
return new BooleanProperty();
}
}
return null;
}
示例8
/**
* 获取Swagger支持的类型
*
* @return {@link Map<String, AbstractProperty >}
*/
private static Map<String, AbstractProperty> getPropMap() {
Map<String, AbstractProperty> map = new HashMap<>(8);
map.put("integer", new IntegerProperty());
map.put("int", new IntegerProperty());
map.put("long", new LongProperty());
map.put("string", new StringProperty());
map.put("object", new ObjectProperty());
map.put("array", new ArrayProperty());
map.put("boolean", new BooleanProperty());
map.put("date", new DateTimeProperty());
return map;
}
示例9
@Override
public String toDefaultValue(Property p) {
if (p instanceof StringProperty) {
return "std::string()";
} else if (p instanceof BooleanProperty) {
return "bool(false)";
} else if (p instanceof DoubleProperty) {
return "double(0)";
} else if (p instanceof FloatProperty) {
return "float(0)";
} else if (p instanceof IntegerProperty) {
return "int(0)";
} else if (p instanceof LongProperty) {
return "long(0)";
} else if (p instanceof DecimalProperty) {
return "long(0)";
} else if (p instanceof MapProperty) {
return "new std::map()";
} else if (p instanceof ArrayProperty) {
return "new std::list()";
}
// else
if (p instanceof RefProperty) {
RefProperty rp = (RefProperty) p;
return "new " + toModelName(rp.getSimpleRef()) + "()";
}
return "null";
}
示例10
private static Response constructResponse(int status, String error) {
Property statusProp = new IntegerProperty()
.description("The status code of the error (also provided in the HTTP header)");
statusProp.setExample(status);
Property errorProp = new StringProperty()
.description("The error message describing the error");
errorProp.setExample((Object)error);
return new Response()
.description(error)
.schema(new ObjectProperty()
.property("status", statusProp)
.property("error", errorProp));
}
示例11
/**
* Generate a default example value for property.
*
* @param property property
* @param markupDocBuilder doc builder
* @return a generated example for the property
*/
public static Object generateExample(Property property, MarkupDocBuilder markupDocBuilder) {
if (property.getType() == null) {
return "untyped";
}
switch (property.getType()) {
case "integer":
return ExamplesUtil.generateIntegerExample(property instanceof IntegerProperty ? ((IntegerProperty) property).getEnum() : null);
case "number":
return 0.0;
case "boolean":
return true;
case "string":
return ExamplesUtil.generateStringExample(property.getFormat(), property instanceof StringProperty ? ((StringProperty) property).getEnum() : null);
case "ref":
if (property instanceof RefProperty) {
if (logger.isDebugEnabled()) logger.debug("generateExample RefProperty for " + property.getName());
return markupDocBuilder.copy(false).crossReference(((RefProperty) property).getSimpleRef()).toString();
} else {
if (logger.isDebugEnabled()) logger.debug("generateExample for ref not RefProperty");
}
case "array":
if (property instanceof ArrayProperty) {
return generateArrayExample((ArrayProperty) property, markupDocBuilder);
}
default:
return property.getType();
}
}
示例12
private Property getPropertyFromDataType(String dataType) {
switch (dataType) {
case "string":
return new StringProperty();
case "boolean":
return new BooleanProperty();
case "int":
return new IntegerProperty();
case "nonNegativeInteger":
return new IntegerProperty();
case "integer":
return new IntegerProperty();
case "positiveInteger":
return new IntegerProperty();
case "double":
return new DoubleProperty();
case "float":
return new FloatProperty();
case "long":
return new LongProperty();
case "date":
return new DateProperty();
case "dateTime":
return new DateTimeProperty();
default:
return new RefProperty();
}
}
示例13
/**
* This method will generate a sample request body for the request.
*
* @param method Rest resource method.
* @param operation Swagger operation object.
* @param parameterList list of parameters.
*/
private static void generateSampleRequestPayload(String method, Operation operation,
List<AxisResourceParameter> parameterList) {
// GET method does not have a body
if (!"GET".equals(method)) {
BodyParameter bodyParameter = new BodyParameter();
bodyParameter.description("Sample Payload");
bodyParameter.name("payload");
bodyParameter.setRequired(false);
ModelImpl modelschema = new ModelImpl();
modelschema.setType("object");
Map<String, Property> propertyMap = new HashMap<>(1);
ObjectProperty objectProperty = new ObjectProperty();
objectProperty.name("payload");
Map<String, Property> payloadProperties = new HashMap<>();
for (AxisResourceParameter resourceParameter : parameterList) {
switch (resourceParameter.getParameterDataType()) {
case SwaggerProcessorConstants.INTEGER:
payloadProperties.put(resourceParameter.getParameterName(), new IntegerProperty());
break;
case SwaggerProcessorConstants.NUMBER:
payloadProperties.put(resourceParameter.getParameterName(), new DoubleProperty());
break;
case SwaggerProcessorConstants.BOOLEAN:
payloadProperties.put(resourceParameter.getParameterName(), new BooleanProperty());
break;
default:
payloadProperties.put(resourceParameter.getParameterName(), new StringProperty());
break;
}
}
objectProperty.setProperties(payloadProperties);
propertyMap.put("payload", objectProperty);
modelschema.setProperties(propertyMap);
bodyParameter.setSchema(modelschema);
operation.addParameter(bodyParameter);
}
}
示例14
@Override
public String toDefaultValue(Property p) {
if (p instanceof StringProperty) {
StringProperty sp = (StringProperty) p;
if (sp.getDefault() != null) {
return toOptionalValue("\"" + sp.getDefault().toString() + "\"");
}
return toOptionalValue(null);
} else if (p instanceof BooleanProperty) {
BooleanProperty bp = (BooleanProperty) p;
if (bp.getDefault() != null) {
return toOptionalValue(bp.getDefault() ? "True" : "False");
}
return toOptionalValue(null);
} else if (p instanceof DateProperty) {
return toOptionalValue(null);
} else if (p instanceof DateTimeProperty) {
return toOptionalValue(null);
} else if (p instanceof DoubleProperty) {
DoubleProperty dp = (DoubleProperty) p;
if (dp.getDefault() != null) {
return toOptionalValue(dp.getDefault().toString());
}
return toOptionalValue(null);
} else if (p instanceof FloatProperty) {
FloatProperty fp = (FloatProperty) p;
if (fp.getDefault() != null) {
return toOptionalValue(fp.getDefault().toString());
}
return toOptionalValue(null);
} else if (p instanceof IntegerProperty) {
IntegerProperty ip = (IntegerProperty) p;
if (ip.getDefault() != null) {
return toOptionalValue(ip.getDefault().toString());
}
return toOptionalValue(null);
} else if (p instanceof LongProperty) {
LongProperty lp = (LongProperty) p;
if (lp.getDefault() != null) {
return toOptionalValue(lp.getDefault().toString());
}
return toOptionalValue(null);
} else {
return toOptionalValue(null);
}
}
示例15
@Override
public String toDefaultValue(Property p) {
if (p instanceof StringProperty) {
StringProperty sp = (StringProperty) p;
if (sp.getDefault() != null) {
return "'" + sp.getDefault() + "'";
}
return UNDEFINED_VALUE;
} else if (p instanceof BooleanProperty) {
return UNDEFINED_VALUE;
} else if (p instanceof DateProperty) {
return UNDEFINED_VALUE;
} else if (p instanceof DateTimeProperty) {
return UNDEFINED_VALUE;
} else if (p instanceof DoubleProperty) {
DoubleProperty dp = (DoubleProperty) p;
if (dp.getDefault() != null) {
return dp.getDefault().toString();
}
return UNDEFINED_VALUE;
} else if (p instanceof FloatProperty) {
FloatProperty fp = (FloatProperty) p;
if (fp.getDefault() != null) {
return fp.getDefault().toString();
}
return UNDEFINED_VALUE;
} else if (p instanceof IntegerProperty) {
IntegerProperty ip = (IntegerProperty) p;
if (ip.getDefault() != null) {
return ip.getDefault().toString();
}
return UNDEFINED_VALUE;
} else if (p instanceof LongProperty) {
LongProperty lp = (LongProperty) p;
if (lp.getDefault() != null) {
return lp.getDefault().toString();
}
return UNDEFINED_VALUE;
} else {
return UNDEFINED_VALUE;
}
}
示例16
/**
* returns the swagger type for the property
* @param p Swagger property object
* @return string presentation of the type
**/
@SuppressWarnings("static-method")
public String getSwaggerType(Property p) {
String datatype = null;
if (p instanceof StringProperty && "number".equals(p.getFormat())) {
datatype = "BigDecimal";
} else if ((p instanceof ByteArrayProperty) || (p instanceof StringProperty && "byte".equals(p.getFormat()))) {
datatype = "ByteArray";
} else if (p instanceof BinaryProperty) {
datatype = "binary";
} else if (p instanceof FileProperty) {
datatype = "file";
} else if (p instanceof BooleanProperty) {
datatype = "boolean";
} else if (p instanceof DateProperty) {
datatype = "date";
} else if (p instanceof DateTimeProperty) {
datatype = "DateTime";
} else if (p instanceof DoubleProperty) {
datatype = "double";
} else if (p instanceof FloatProperty) {
datatype = "float";
} else if (p instanceof IntegerProperty) {
datatype = "integer";
} else if (p instanceof LongProperty) {
datatype = "long";
} else if (p instanceof MapProperty) {
datatype = "map";
} else if (p instanceof DecimalProperty) {
datatype = "number";
} else if ( p instanceof UUIDProperty) {
datatype = "UUID";
} else if (p instanceof RefProperty) {
try {
RefProperty r = (RefProperty) p;
datatype = r.get$ref();
if (datatype.indexOf("#/definitions/") == 0) {
datatype = datatype.substring("#/definitions/".length());
}
} catch (Exception e) {
LOGGER.warn("Error obtaining the datatype from RefProperty:" + p + ". Datatype default to Object");
datatype = "Object";
LOGGER.error(e.getMessage(), e);
}
} else if (p instanceof StringProperty) {
datatype = "string";
} else {
if (p != null) {
datatype = p.getType();
}
}
return datatype;
}
示例17
@Test
public void validate_withTooFewValues_shouldFail_whenMinItemsSpecified() {
Status status = classUnderTest.validate("1,2", arrayParam(true, "csv", 3, 5, null, new IntegerProperty()));
Assert.assertNotNull(status);
Assert.assertEquals("ERR11007", status.getCode()); // request parameter collection too few items
}
示例18
@Test
public void validate_withTooManyValues_shouldFail_whenMaxItemsSpecified() {
Status status = classUnderTest.validate("1,2,3,4,5,6", arrayParam(true, "csv", 3, 5, null, new IntegerProperty()));
Assert.assertNotNull(status);
Assert.assertEquals("ERR11006", status.getCode()); // request parameter collection too many items
}
示例19
@Test
public void validate_withNonUniqueValues_shouldFail_whenUniqueSpecified() {
Status status = classUnderTest.validate("1,2,1", arrayParam(true, "csv", null, null, true, new IntegerProperty()));
Assert.assertNotNull(status);
Assert.assertEquals("ERR11008", status.getCode()); // request parameter collection duplicate items
}
示例20
@Test
public void validate_withNonUniqueValues_shouldPass_whenUniqueNotSpecified() {
Assert.assertNull(classUnderTest.validate("1,2,1", arrayParam(true, "csv", null, null, false, new IntegerProperty())));
}
示例21
@Test
public void validate_withEnumValues_shouldPass_whenAllValuesMatchEnum() {
Assert.assertNull(classUnderTest.validate("1,2,1", enumeratedArrayParam(true, "csv", new IntegerProperty(), "1", "2", "3")));
}
示例22
@Test
public void validate_withEnumValues_shouldFail_whenValueDoesntMatchEnum() {
Status status = classUnderTest.validate("1,2,1,4", enumeratedArrayParam(true, "csv", new IntegerProperty(), "1", "2", "bob"));
Assert.assertNotNull(status);
Assert.assertEquals("ERR11009", status.getCode()); // request parameter collection duplicate items
}
示例23
public static SerializableParameter intArrayParam(final boolean required,
final String collectionFormat) {
final IntegerProperty property = new IntegerProperty();
return arrayParam(required, collectionFormat, null, null, null, property);
}