private static XML getXml(Schema property) { final XML existing = property.getXml(); if (existing != null) { return existing; } final XML created = new XML(); property.setXml(created); return created; }
@Override public Optional<Schema> filterSchema(Schema schema, Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) { if (schema == null || StringUtils.isBlank(schema.getXml().getName())) { return Optional.of(schema); } if (schema.getXml().getName().equals(MODEL)) { return Optional.empty(); } return Optional.of(schema); } }
@Test(description = "it should not create an xml object") public void itShouldNotCreateXmlObject() { final Map<String, Schema> schemas = ModelConverters.getInstance().readAll(Address.class); final Schema model = schemas.get("Address"); assertNotNull(model); assertTrue(model instanceof Schema); final Schema property = (Schema) model.getProperties().get("streetNumber"); final XML xml = property.getXml(); assertNull(xml); }
@Test(description = "it should serialize a parameterized type per 606") public void serializeParameterizedType() { final Map<String, Schema> schemas = readAll(Employee.class); final Schema employee = (Schema) schemas.get("employee"); final Map<String, Schema> props = employee.getProperties(); final Iterator<String> et = props.keySet().iterator(); final Schema id = props.get(et.next()); assertTrue(id instanceof IntegerSchema); final Schema firstName = props.get(et.next()); assertTrue(firstName instanceof StringSchema); final Schema lastName = props.get(et.next()); assertTrue(lastName instanceof StringSchema); final Schema department = props.get(et.next()); assertNotNull(department.get$ref()); final Schema manager = props.get(et.next()); assertNotNull(manager.get$ref()); final Schema team = props.get(et.next()); assertTrue(team instanceof ArraySchema); final ArraySchema ap = (ArraySchema) team; assertTrue(ap.getUniqueItems()); assertNotNull(employee.getXml()); assertEquals(employee.getXml().getName(), "employee"); }
@Test(description = "it should process an XML model attribute") public void processXMLModelAttribute() { final Map<String, Schema> schemas = ModelConverters.getInstance().readAll(Monster.class); final Schema model = schemas.get("Monster"); assertNotNull(model); assertTrue(model instanceof Schema); XML xml = model.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "monster"); final Schema property = (Schema) model.getProperties().get("children"); assertNotNull(property); xml = property.getXml(); assertTrue(xml.getWrapped()); assertNull(xml.getName()); }
@Test public void testReadingXmlAccessorTypePublic() throws Exception { final ModelConverter mr = modelResolver(); final Schema model = mr.resolve(new AnnotatedType(XmlDecoratedBeanXmlAccessorPublic.class), new ModelConverterContextImpl(mr), null); final XML xml = model.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "xmlDecoratedBean"); final Schema propertyA = (Schema) model.getProperties().get("a"); assertNotNull(propertyA); final Schema propertyB = (Schema) model.getProperties().get("b"); assertNotNull(propertyB); final Schema propertyC = (Schema) model.getProperties().get("c"); assertNull(propertyC); }
@Test public void testReadingXmlAccessorTypeNone() throws Exception { final ModelConverter mr = modelResolver(); final Schema model = mr.resolve(new AnnotatedType(XmlDecoratedBeanXmlAccessorNone.class), new ModelConverterContextImpl(mr), null); final XML xml = model.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "xmlDecoratedBean"); final Schema property = (Schema) model.getProperties().get("a"); assertNotNull(property); assertNull(model.getProperties().get("b")); assertNotNull(model.getProperties().get("c")); assertNotNull(model.getProperties().get("d")); assertNotNull(model.getProperties().get("e")); assertNotNull(model.getProperties().get("f")); }
assertTrue(model instanceof Schema); final XML rootXml = model.getXml(); assertNotNull(rootXml); assertEquals(rootXml.getName(), "rootName"); final Schema property = entry.getValue(); if ("id".equals(name)) { final XML xml = property.getXml(); assertNotNull(xml); assertNull(xml.getName()); assertNull(xml.getWrapped()); } else if ("name".equals(name)) { final XML xml = property.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "renamed"); assertNull(xml.getWrapped()); } else if (Arrays.asList("list", "forcedElement").contains(name)) { assertNull(property.getXml()); } else if ("wrappedList".equals(name)) { final XML xml = property.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "wrappedListItems");
@Test public void testSimple() throws Exception { final ModelConverter mr = modelResolver(); ModelConverterContextImpl ctx = new ModelConverterContextImpl(mr); final Schema model = mr.resolve(new AnnotatedType(XmlDecoratedBean.class), ctx, null); final XML xml = model.getXml(); assertNotNull(xml); assertEquals(xml.getName(), "xmlDecoratedBean"); // Cast it to an array property final ArraySchema property = (ArraySchema) model.getProperties().get("elements"); assertNotNull(property); final XML propertyXml = property.getXml(); assertNotNull(propertyXml); assertNull(propertyXml.getName()); assertTrue(propertyXml.getWrapped()); // Get the xml for items for the array property final XML itemsXml = property.getItems().getXml(); assertNotNull(itemsXml); // Check the name of item name assertEquals(itemsXml.getName(), "element"); assertNotNull(model.getProperties().get("elementC")); }
.uniqueItems(subtypeModel.getUniqueItems()) .writeOnly(subtypeModel.getWriteOnly()) .xml(subtypeModel.getXml()) .extensions(subtypeModel.getExtensions());
private boolean paramHasXmlNamespace(CodegenParameter param, Map<String, Schema> definitions) { Object refName = param.vendorExtensions.get("refName"); if ((refName != null) && (refName instanceof String)) { String name = (String) refName; Schema model = definitions.get(ModelUtils.getSimpleRef(name)); if (model != null) { XML xml = model.getXml(); if ((xml != null) && (xml.getNamespace() != null)) { return true; } } } return false; }
private static XML getXml(Schema property) { final XML existing = property.getXml(); if (existing != null) { return existing; } final XML created = new XML(); property.setXml(created); return created; }
private boolean isSchemaWithAdditionalValues(Schema schema) { return nonNull(schema.getDescription()) || nonNull(schema.getExample()) || nonNull(schema.getXml()) || nonNull(schema.getReadOnly()) || (nonNull(schema.getExtensions()) && !schema.getExtensions().isEmpty()); }
XML xml = schema.getXml(); if (xml != null) { if (xml.getName() != null) { for (String pName : properties.keySet()) { Schema property = properties.get(pName); if (property != null && property.getXml() != null && property.getXml().getAttribute() != null && property.getXml().getAttribute()) { attributes.put(pName, property); } else {
@Override public CodegenModel fromModel(String name, Schema model, Map<String, Schema> allDefinitions) { CodegenModel mdl = super.fromModel(name, model, allDefinitions); mdl.vendorExtensions.put("upperCaseName", name.toUpperCase(Locale.ROOT)); if (!StringUtils.isEmpty(model.get$ref())) { Schema schema = allDefinitions.get(ModelUtils.getSimpleRef(model.get$ref())); mdl.dataType = typeMapping.get(schema.getType()); } if (ModelUtils.isArraySchema(model)) { ArraySchema am = (ArraySchema) model; if ((am.getItems() != null) && (am.getItems().getXml() != null)) { // If this model's items require wrapping in xml, squirrel // away the xml name so we can insert it into the relevant model fields. String xmlName = am.getItems().getXml().getName(); if (xmlName != null) { mdl.vendorExtensions.put("itemXmlName", xmlName); modelXmlNames.put("models::" + mdl.classname, xmlName); } } mdl.arrayModelType = toModelName(mdl.arrayModelType); } if (mdl.xmlNamespace != null) { additionalProperties.put("usesXmlNamespaces", true); } return mdl; }
public AnyProperty(Schema prop) { if (prop != null) { setName(prop.getName()); setDescription(prop.getDescription()); setExample(prop.getExample()); setFormat(prop.getFormat()); setReadOnly(prop.getReadOnly()); setRequired(prop.getRequired()); setTitle(prop.getTitle()); setExtensions(prop.getExtensions()); setXml(prop.getXml()); setExternalDocs(prop.getExternalDocs()); setProperties(prop.getProperties()); set$ref(prop.get$ref()); } } }
composedSchema.setUniqueItems(schema.getUniqueItems()); composedSchema.setWriteOnly(schema.getWriteOnly()); composedSchema.setXml(schema.getXml());