public static String nameOrDefault(final Property property, final String name) { final String determined = nameOf(property); if (determined == null) { return name; } return determined; }
private static void addEnumerationsTo(final Element element, final List<?> enums) { final Element simpleType = XmlSchemaHelper.addElement(element, "simpleType"); final Element restriction = XmlSchemaHelper.addElement(simpleType, "restriction"); restriction.addAttribute("base", element.attributeValue("type")); for (final Object enumValue : enums) { final Element enumeration = XmlSchemaHelper.addElement(restriction, "enumeration"); enumeration.addAttribute("value", String.valueOf(enumValue)); } }
public static ObjectNode createJsonSchema(final String title, final ObjectNode schema) { final ObjectNode schemaNode = newJsonObjectSchema(); if (title != null) { schemaNode.put("title", title); } schemaNode.setAll(schema); return schemaNode; }
private static void defineAttributeProperty(final String propertyName, final Property property, final Element parent) { final String type = property.getType(); final Element propertyElement = XmlSchemaHelper.addElement(parent, "attribute"); propertyElement.addAttribute("name", requireNonNull(propertyName, "missing property name")); propertyElement.addAttribute("type", XmlSchemaHelper.toXsdType(type)); }
static SwaggerModelInfo parseSpecification(final ConnectorSettings connectorSettings, final APIValidationContext validationContext) { final String specification = requiredSpecification(connectorSettings); return SwaggerHelper.parse(specification, validationContext); }
@Test public void shouldConvertJsonSchemaToXsdTypes() { assertThat(XmlSchemaHelper.toXsdType("boolean")).isEqualTo(XmlSchemaHelper.XML_SCHEMA_PREFIX + ":boolean"); assertThat(XmlSchemaHelper.toXsdType("number")).isEqualTo(XmlSchemaHelper.XML_SCHEMA_PREFIX + ":decimal"); assertThat(XmlSchemaHelper.toXsdType("string")).isEqualTo(XmlSchemaHelper.XML_SCHEMA_PREFIX + ":string"); assertThat(XmlSchemaHelper.toXsdType("integer")).isEqualTo(XmlSchemaHelper.XML_SCHEMA_PREFIX + ":integer"); }
@Test public void shouldDetermineOperationDescriptions() { assertThat(SwaggerHelper.operationDescriptionOf(swagger, operation, (m, p) -> "Send " + m + " request to " + p)).isEqualTo(expected); }
@Test public void shouldSanitizeListOfTags() { assertThat(SwaggerHelper.sanitizeTags(Arrays.asList("tag", "wag ", " bag", ".]t%a$g#[/"))) .containsExactly("tag", "wag", "bag"); } }
public SwaggerHelperOperationDescriptionGenerationTest(final String operationSummary, final String operationDescription, final String expectedName, final String expectedDescription) { operation = new Operation().description(operationDescription).summary(operationSummary); swagger = new Swagger().path("/test", new Path().get(operation)); expected = new OperationDescription(expectedName, expectedDescription); }
public static String nameOf(final Property property) { if (property instanceof RefProperty) { throw new IllegalArgumentException("Make sure that you dereference property, given: " + property); } return xmlNameOrDefault(property.getXml(), property.getName()); }
public static ObjectNode resolveSchemaForReference(final ObjectNode json, final String title, final String reference) { final ObjectNode dereferenced = (ObjectNode) json.at(reference.substring(1)); return createJsonSchema(title, dereferenced); }
private static String determineTitleOf(final String name, final Property schema) { final String title = schema.getTitle(); if (title != null) { return title; } final String description = schema.getDescription(); if (description != null) { return description; } final String reference = JsonSchemaHelper.determineSchemaReference(schema); if (reference != null) { return reference.replaceAll("^.*/", ""); } return name; }
private static void defineAttributePropertiesOf(final Element parent, final ModelImpl model) { final Map<String, Property> properties = model.getProperties(); for (final Entry<String, Property> propertyEntry : properties.entrySet()) { final String propertyName = propertyEntry.getKey(); final Property property = propertyEntry.getValue(); if (XmlSchemaHelper.isAttribute(property)) { defineAttributeProperty(propertyName, property, parent); } } }
@SuppressWarnings("PMD.SignatureDeclareThrowsException") static String resolve(final String specification) throws Exception { final String specificationToUse; if (specification.toLowerCase(Locale.US).startsWith("http")) { specificationToUse = RemoteUrl.urlToString(specification, null); } else { specificationToUse = specification; } final JsonNode node = convertToJson(specificationToUse); return Json.writer().writeValueAsString(node); }
private static void defineElementPropertiesOf(final Element parent, final Model model, final Swagger swagger, final Map<String, SchemaPrefixAndElement> moreSchemas) { final Map<String, Property> properties = model.getProperties(); for (final Entry<String, Property> propertyEntry : properties.entrySet()) { final String propertyName = propertyEntry.getKey(); final Property property = propertyEntry.getValue(); if (XmlSchemaHelper.isElement(property)) { defineElementProperty(propertyName, property, parent, swagger, moreSchemas); } } }
public static String javaTypeFor(final SerializableParameter parameter) { final String type = parameter.getType(); if ("array".equals(type)) { final Property items = parameter.getItems(); final String elementType = items.getType(); final String elementFormat = items.getFormat(); return javaTypeFor(elementType, elementFormat) + "[]"; } final String format = parameter.getFormat(); return javaTypeFor(type, format); }
private static ConnectorSettings createSettingsFrom(final Swagger swagger) { return new ConnectorSettings.Builder()// .putConfiguredProperty("specification", SwaggerHelper.serialize(swagger))// .build(); }
public static String nameOf(final ModelImpl model) { return xmlNameOrDefault(model.getXml(), model.getName()); }
private static ObjectNode createSchemaFromModelImpl(final String name, final Model model) { final ObjectNode schema = Json.convertValue(model, ObjectNode.class); final String title = determineTitleOf(name, model); return JsonSchemaHelper.createJsonSchema(title, schema); }
public static String determineSchemaReference(final Property schema) { if (schema instanceof RefProperty) { return ((RefProperty) schema).get$ref(); } else if (schema instanceof ArrayProperty) { final Property property = ((ArrayProperty) schema).getItems(); return determineSchemaReference(property); } throw new IllegalArgumentException("Only references to schemas are supported"); }