Property additionalProperties = mapProperty.getAdditionalProperties(); if (additionalProperties == null) type = new MapType(mapProperty.getTitle(), new ObjectType(null, null)); // FIXME : Workaround for Swagger parser issue with composed models (https://github.com/Swagger2Markup/swagger2markup/issues/150) else type = new MapType(mapProperty.getTitle(), new PropertyAdapter(additionalProperties).getType(definitionDocumentResolver)); } else if (property instanceof StringProperty) { StringProperty stringProperty = (StringProperty) property; List<String> enums = stringProperty.getEnum(); if (CollectionUtils.isNotEmpty(enums)) { type = new EnumType(stringProperty.getTitle(), enums); } else if (isNotBlank(stringProperty.getFormat())) { type = new ObjectType(property.getTitle(), ((ObjectProperty) property).getProperties()); } else if (property instanceof IntegerProperty) { IntegerProperty integerProperty = (IntegerProperty) property; type = new BasicType(integerProperty.getType(), integerProperty.getTitle(), integerProperty.getFormat()); } else { type = new BasicType(property.getType(), property.getTitle()); if (property.getType() == null) { return null; } else if (isNotBlank(property.getFormat())) { type = new BasicType(property.getType(), property.getTitle(), property.getFormat()); } else { type = new BasicType(property.getType(), property.getTitle());
private List<Parameter> expandParameter(Map<String, Model> models, RouteParameter it, Supplier<SerializableParameter> factory, String typeName, String prefix, boolean optional) { List<Parameter> parameters = new ArrayList<>(); Model model = models.get(typeName); Map<String, Property> properties = model.getProperties(); Optional.ofNullable(properties).ifPresent(props -> props.values().stream() .flatMap(p -> { SerializableParameter result = complement(p, it, factory.get()); String name = prefix + p.getName(); if (p instanceof RefProperty) { return expandParameter(models, it, factory, ((RefProperty) p).getSimpleRef(), name + ".", optional).stream(); } else { result.setName(name); boolean required; if (optional) { required = false; } else { required = p.getRequired(); } String desc = Strings.emptyToNull(p.getDescription()); result.setRequired(required); result.setDescription(desc); return Stream.of(result); } }) .forEach(parameters::add) ); return parameters; }
/** * Mostly for kotlin null safe operator and immutable properties. * * @param type Target type. * @param model Model. * @return Input model. */ private Model doModel(Type type, Model model) { Map<String, Property> properties = model.getProperties(); if (properties != null) { BeanDescription desc = Json.mapper().getSerializationConfig() .introspect(Json.mapper().constructType(type)); for (BeanPropertyDefinition beanProperty : desc.findProperties()) { Property property = properties.get(beanProperty.getName()); if (property != null) { property.setRequired(beanProperty.isRequired()); } } } return model; }
if (property.getType() == null) { return "untyped"; switch (property.getType()) { case "integer": return ExamplesUtil.generateIntegerExample(property instanceof IntegerProperty ? ((IntegerProperty) property).getEnum() : null); 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"); return property.getType();
private SerializableParameter complement(Property property, RouteParameter source, SerializableParameter param) { param.setType(property.getType()); param.setFormat(property.getFormat()); // array param: if (property instanceof ArrayProperty) { param.setItems(((ArrayProperty) property).getItems()); } // enum values: List<String> enums = source.enums(); if (enums.size() > 0) { param.setEnum(enums); } // default value: if (param instanceof AbstractSerializableParameter) { ((AbstractSerializableParameter) param).setDefault(source.defaultValue()); } return param; } }
if (ref.get$ref().indexOf("#/definitions") == 0) { String updatedRef = "#/components/schemas" + ref.get$ref().substring("#/definitions".length()); ref.set$ref(updatedRef); ArraySchema arraySchema = Json.mapper().convertValue(schema, ArraySchema.class); if (((ArrayProperty) schema).getMaxItems() != null) { arraySchema.setMaxItems(((ArrayProperty) schema).getMaxItems()); if (((ArrayProperty) schema).getMinItems() != null) { result.setExample(schema.getExample()); if ("object".equals(schema.getType()) && (result.getProperties() != null) && (result.getProperties().size() > 0)) { Map<String, Schema> properties = new HashMap<>(); MapProperty map = (MapProperty) schema; StringProperty sp = (StringProperty) schema; if (schema.getVendorExtensions() != null) { Object nullableExtension = schema.getVendorExtensions().get("x-nullable"); if (nullableExtension != null) { result.setNullable((Boolean) nullableExtension); result.setExtensions(convert(schema.getVendorExtensions()));
Boolean wrapped = false; if (property.getXml() != null) { Xml xml = property.getXml(); name = xml.getName(); namespace = xml.getNamespace(); Object example = property.getExample(); if (property instanceof RefProperty) { RefProperty ref = (RefProperty) property; if(processedModels.containsKey(ref.getSimpleRef())) { return alreadyProcessedRefExample(ref.getSimpleRef(), definitions, processedModels); processedModels.put(ref.getSimpleRef(), null); if(processedModels.containsKey(property.getName())) { return alreadyProcessedRefExample(property.getName(), definitions, processedModels); outputExample.setName( property.getName() ); ObjectProperty op = (ObjectProperty) property; if(op.getProperties() != null) { ArrayExample an = new ArrayExample(); an.add((Example) innerExample); an.setName(property.getName()); output = an;
public Model propertyToModel(Property property){ String description = property.getDescription(); String type = property.getType(); String format = property.getFormat(); String example = null; Boolean allowEmptyValue = property.getAllowEmptyValue(); RefModel refModel = new RefModel(ref.getOriginalRef(), ref.getRefFormat()); return refModel; Map<String, Object> extensions = property.getVendorExtensions(); additionalProperties = ((MapProperty) property).getAdditionalProperties(); String name = property.getName(); Xml xml = property.getXml(); model.setExample(property.getExample());//example model.setName(name); model.setXml(xml); model.setPattern(stringProperty.getPattern()); model.setMinLength(stringProperty.getMinLength()); model.setMaxLength(stringProperty.getMaxLength()); model.setEnum(stringProperty.getEnum());
Property p = null; if (param.getAllowMultiple() != null && param.getAllowMultiple() == true) { ArrayProperty arrayProperty = new ArrayProperty(); Property innerType = PropertyBuilder.build(type, format, null); arrayProperty.setItems(innerType); p = arrayProperty; } else { "WARNING! No property detected for parameter '%s' (%s)! Falling back to string!", param.getName(), param.getParamType())); p = new StringProperty(); sp.setType("array"); sp.setCollectionFormat("csv"); sp.setItems(ap.getItems()); } else { sp.setType(p.getType()); sp.setFormat(p.getFormat());
defProperty = new BooleanProperty(); } else if (BluePrintConstants.DATA_TYPE_INTEGER.equals(propertyDefinition.getType())) { StringProperty stringProperty = new StringProperty(); stringProperty.setType("integer"); defProperty = stringProperty; } else if (BluePrintConstants.DATA_TYPE_FLOAT.equals(propertyDefinition.getType())) { StringProperty stringProperty = new StringProperty(); stringProperty.setFormat("float"); defProperty = stringProperty; defProperty = new RefProperty("#/definitions/" + propertyDefinition.getType()); defProperty.setName(name); if (propertyDefinition.getDefaultValue() != null) { defProperty.setDefault(String.valueOf(propertyDefinition.getDefaultValue())); defProperty.setRequired(BooleanUtils.isTrue(propertyDefinition.getRequired())); defProperty.setDescription(propertyDefinition.getDescription()); return defProperty;
boolean array = false; if (schema instanceof ArrayProperty) { schema = ((ArrayProperty)schema).getItems(); array = true; String type = SwaggerTypeManager.teiidType(schema.getType(), schema.getFormat(), array); mf.addProcedureParameter("return", type, ProcedureParameter.Type.ReturnValue, procedure); } else { schema = ((ArrayProperty)schema).getItems(); pa); } else if (schema instanceof RefProperty) { String modelName = ((RefProperty)schema).getSimpleRef(); Model model = swagger.getDefinitions().get(modelName); walkProperties(swagger, model.getProperties(), null, null, pa); } else if (schema instanceof MapProperty){ Property property = ((MapProperty)schema).getAdditionalProperties(); String type = SwaggerTypeManager.teiidType(property.getType(), property.getFormat(), false); Column c = mf.addProcedureResultSetColumn(KEY_NAME, "string", procedure); c.setNameInSource(KEY_NAME);
if (property != null) { if ("list".equalsIgnoreCase(responseContainer)) { responseProperty = new ArrayProperty(property); responseProperty = new MapProperty(property); model.setReference(responseClass.getTypeName()); responseProperty = new ArrayProperty(new RefProperty().asDefault(name)); responseProperty = new MapProperty(new RefProperty().asDefault(name)); .collect(Collectors.toList()); boolean isSchema = properties.stream().anyMatch(property -> property == null || (params.indexOf(property.getType()) == -1 && !((property instanceof ArrayProperty) && params.indexOf(((ArrayProperty) property).getItems().getType()) > -1)));
private static void initTypeFormatMap() { try { for (Entry<Class<? extends Property>, JavaType> entry : PROPERTY_MAP.entrySet()) { Property property = entry.getKey().newInstance(); String key = genTypeFormatKey(property.getType(), property.getFormat()); TYPE_FORMAT_MAP.put(key, entry.getValue()); } } catch (Throwable e) { throw new Error(e); } }
if (String.class.isAssignableFrom(fieldType)) property = new StringProperty(); property = new ArrayProperty(new StringProperty()); property = new RefProperty(fieldType.getAnnotation(XmlType.class).name()); property = new StringProperty(); log.debug("Field type \"" + fieldType.getName() + "\" is a property type \"" + property.getType() + "\"."); return property;
String refName = attach(mapping).refName(); if (!isEmpty(refName)) { return new RefProperty(refName); return fillProperty(new MapProperty(vProperty), mapping); return fillProperty(new ArrayProperty(iProperty), mapping); bProperty.setRequired(false); return bProperty; return fillProperty(new StringProperty(), mapping);
ApiParam ann = parameter.getAnnotation(ApiParam.class); property.setRequired(ann.required()); if(!ann.description().isEmpty()) { property.description(ann.defaultValue()); property.setAccess(ann.defaultValue()); property.setDefault(ann.defaultValue()); if (property instanceof RefProperty) { Map<String, Model> subProperty = modelConverters.read(parameter.getParameterizedType()); String simpleRef = ((RefProperty) property).getSimpleRef(); swagger.addDefinition(simpleRef, subProperty.get(simpleRef)); Property items = ((ArrayProperty) property).getItems(); arrayModel.items(items); if (items instanceof RefProperty) { model.addProperty(property.getName(), null); headerParameter.setName(ann.value()); headerParameter.setType(property.getType());
if (type instanceof ArrayProperty) { _matched=true; Property _items = ((ArrayProperty)type).getItems(); return this.arrayTypeLabel(context, _items, ((((ArrayProperty)type).getMinItems() != null) && ((((ArrayProperty)type).getMinItems()).intValue() > 0))); if (type instanceof RefProperty) { _matched=true; return ((RefProperty)type).getSimpleRef(); if (((type.getFormat() != null) || (type.getType() != null))) { _matched=true; return this.primitiveTypeLabel(type.getType(), type.getFormat());
final Xml arrayXml = array.getXml(); if (arrayXml != null && Boolean.TRUE.equals(arrayXml.getWrapped())) { final String arrayElementName = determineArrayElementName(propertyName, array); final Property items = array.getItems(); final String arrayItemsType = items.getType(); if ("ref".equals(arrayItemsType)) { itemsElement = defineComplexElement((RefProperty) items, sequence, swagger, moreSchemas); if (array.getMaxItems() == null) { itemsElement.addAttribute("maxOccurs", "unbounded"); } else {
ArrayProperty arrayProperty = new ArrayProperty(); Property componentProperty = getSwaggerProperty(swagger, componentClass); arrayProperty.setItems(componentProperty); response.setSchema(arrayProperty); } else { property.setName(headerTag.getName()); property.setDescription(headerTag.getDescription()); response.addHeader(property.getName(), property);
swaggerResponse.setDescription(this.getMessageDocumentation(rapidResponse)); if ((typeName != null)) { final RefProperty property = new RefProperty(); property.set$ref(("#/definitions/" + typeName)); swaggerResponse.setSchema(property); final ArrayProperty prop = new ArrayProperty(); prop.setItems(this.createSwaggerPropertyWithConstraints(it)); prop.setDescription(this._zenModelHelper.getDocumentation(it)); swaggerResponse.getHeaders().put(it.getName(), prop); } else { final Property prop_1 = this.createSwaggerPropertyWithConstraints(it); prop_1.setDescription(this._zenModelHelper.getDocumentation(it)); swaggerResponse.getHeaders().put(it.getName(), prop_1);