ModelImpl modelImpl = (ModelImpl) model; if (modelImpl.getAdditionalProperties() != null) return new MapType(modelImpl.getTitle(), new PropertyAdapter(modelImpl.getAdditionalProperties()).getType(definitionDocumentResolver)); else if (modelImpl.getEnum() != null) return new EnumType(modelImpl.getTitle(), modelImpl.getEnum()); String name = model.getTitle(); if (composedModel.getAllOf() != null) { polymorphism.setNature(ObjectTypePolymorphism.Nature.COMPOSITION); for (Model innerModel : composedModel.getAllOf()) { Type innerModelType = resolveRefType(getType(innerModel, definitions, definitionDocumentResolver)); } else if (model instanceof RefModel) { RefModel refModel = (RefModel) model; String refName = refModel.getRefFormat().equals(RefFormat.INTERNAL) ? refModel.getSimpleRef() : refModel.getReference();
private static Map<String, Property> getPropertiesForComposedModel(ComposedModel model, Map<String, Model> definitions) { //TODO: Unused method, make sure this is never used and then remove it. Map<String, Property> combinedProperties; if (model.getParent() instanceof RefModel) { Map<String, Property> parentProperties = definitions.get(((RefModel) model.getParent()).getSimpleRef()).getProperties(); if (parentProperties == null) { return null; } else { combinedProperties = new LinkedHashMap<>(parentProperties); } } else { combinedProperties = new LinkedHashMap<>(model.getParent().getProperties()); } Map<String, Property> childProperties; if (model.getChild() instanceof RefModel) { childProperties = definitions.get(((RefModel) model.getChild()).getSimpleRef()).getProperties(); } else { childProperties = model.getChild().getProperties(); } if (childProperties != null) { combinedProperties.putAll(childProperties); } return combinedProperties; }
public Model resolveModel(Model schema) { if (schema instanceof RefModel) { String ref = ((RefModel) schema).getSimpleRef(); Model resolved = schemas.get(ref); if (resolved == null) { if (model.getProperties() != null) { Map<String, Property> updated = new LinkedHashMap<String, Property>(); for (String propertyName : model.getProperties().keySet()) { Property property = model.getProperties().get(propertyName); Property resolved = resolveProperty(property); updated.put(propertyName, resolved); ModelImpl model = new ModelImpl(); Set<String> requiredProperties = new HashSet<>(); if (composedSchema.getAllOf() != null) { for (Model innerModel : composedSchema.getAllOf()) { Model resolved = resolveModel(innerModel); Map<String, Property> properties = resolved.getProperties(); model.setRequired(new ArrayList<>(requiredProperties)); if (composedSchema.getVendorExtensions() != null) { Map<String, Object> extensions = composedSchema.getVendorExtensions(); for (String key : extensions.keySet()) { model.setVendorExtension(key, composedSchema.getVendorExtensions().get(key));
ModelImpl m = (ModelImpl) model; ObjectProperty property = new ObjectProperty(); property.setProperties(m.getProperties()); property.setName(m.getName()); property.setFormat(m.getFormat()); if (m.getDefaultValue() != null) { property.setDefault(m.getDefaultValue().toString()); Model inner = schemas.get(ref.getSimpleRef()); return createObjectProperty(inner); for (Model item : cm.getAllOf()) { Property itemProperty = createObjectProperty(item); if (itemProperty instanceof ObjectProperty) { op.setRequiredProperties(new ArrayList(requiredProperties)); if (cm.getVendorExtensions() != null) { for (String key : cm.getVendorExtensions().keySet()) { op.vendorExtension(key, cm.getVendorExtensions().get(key));
if (m.getAdditionalProperties() != null){ MapProperty mapProperty = new MapProperty(); mapProperty.setType(m.getType()); mapProperty.setAllowEmptyValue(m.getAllowEmptyValue()); mapProperty.setDefault((String) m.getDefaultValue()); mapProperty.setDescription(m.getDescription()); RefProperty refProperty = new RefProperty(ref.get$ref(), ref.getRefFormat()); return refProperty; for(Model item : cm.getAllOf()) { Property itemProperty = modelToProperty(item); if(itemProperty instanceof RefProperty) { objectProperty.setRequiredProperties(new ArrayList(requiredProperties)); if(cm.getVendorExtensions() != null) { for(String key : cm.getVendorExtensions().keySet()) { objectProperty.vendorExtension(key, cm.getVendorExtensions().get(key));
ComposedModel composedModel = (ComposedModel) v2Model; ComposedSchema composed = new ComposedSchema(); composed.setDescription(composedModel.getDescription()); composed.setExample(composedModel.getExample()); if (composedModel.getExternalDocs() != null) { composed.setExternalDocs(convert(composedModel.getExternalDocs())); composed.setTitle(composedModel.getTitle()); composed.setExtensions(convert(composedModel.getVendorExtensions())); composed.setAllOf(composedModel.getAllOf().stream().map(this::convert).collect(Collectors.toList())); result = composed; } else { ModelImpl model = (ModelImpl) v2Model; v2discriminator = model.getDiscriminator(); model.setDiscriminator(null); ModelImpl model = (ModelImpl) v2Model; if (model.getAdditionalProperties() != null) { result.setAdditionalProperties(convert(model.getAdditionalProperties())); if (ref.get$ref().indexOf("#/definitions") == 0) { String updatedRef = "#/components/schemas" + ref.get$ref().substring("#/definitions".length()); result.set$ref(updatedRef);
if (impl.getXml() != null) { Xml xml = impl.getXml(); name = xml.getName(); namespace = xml.getNamespace(); if(impl.getProperties() != null) { for(String key : impl.getProperties().keySet()) { Property property = impl.getProperties().get(key); List<Model> models = cm.getAllOf(); ObjectExample ex = new ObjectExample(); if(processedModels.containsKey(ref.getSimpleRef())) { output = alreadyProcessedRefExample(ref.getSimpleRef(), definitions, processedModels); } else { processedModels.put(ref.getSimpleRef(), null); if (definitions != null) { Model refedModel = definitions.get(ref.getSimpleRef());
if (model instanceof RefModel) { RefModel refModel = (RefModel) model; if (isAnExternalRefFormat(refModel.getRefFormat())) { refModel.set$ref(processRefToExternalDefinition(refModel.get$ref(), refModel.getRefFormat())); } else { refModel.set$ref(processRefToExternalDefinition(file + refModel.get$ref(), RefFormat.RELATIVE)); List<Model> listOfAllOF = composedModel.getAllOf(); ModelImpl modelImpl = (ModelImpl) model; String discriminator = modelImpl.getDiscriminator(); if (discriminator != null){ processDiscriminator(discriminator,modelImpl.getProperties(), file); processProperties(Arrays.asList(modelImpl.getAdditionalProperties()), file);
if(model instanceof ModelImpl) { ModelImpl m = (ModelImpl)model; if(m.getProperties() != null) { var3 = m.getProperties().keySet().iterator(); ip = (Property)m.getProperties().get(name); this.process(ip); if(m1.getAllOf() != null) { var3 = m1.getAllOf().iterator();
protected void updateLocalRefs(Model model, String pathRef) { if(model instanceof RefModel) { RefModel refModel = (RefModel) model; if(isLocalRef(refModel.get$ref())) { refModel.set$ref(computeLocalRef(refModel.get$ref(), pathRef)); if(impl.getProperties() != null) { for(Property property : impl.getProperties().values()) { updateLocalRefs(property, pathRef); for(Model innerModel : cm.getAllOf()) { updateLocalRefs(innerModel, pathRef);
switch (attr) { case "allOf": _switchResult = model.getAllOf(); break; case "child": _switchResult = model.getChild(); break; case "description": _switchResult = model.getDescription(); break; case "example": _switchResult = model.getExample(); break; case "interfaces": _switchResult = model.getInterfaces(); break; case "parent": _switchResult = model.getParent(); break; case "properties": _switchResult = model.getProperties(); break; case "type":
private Map<String, Property> resolveProperties(Model definition, Swagger owningSchema, Set<String> seenRefs) { Map<String, Property> result; // if the definition does not contain any property, then the model will return null instead of an empty map final Map<String, Property> definitionProperties = definition.getProperties() != null ? definition.getProperties() : Collections.emptyMap(); if (definition instanceof RefModel) { // Don't navigate ref-def cycles infinitely final RefModel refDef = (RefModel) definition; if (seenRefs.contains(refDef.getSimpleRef())) { return Collections.emptyMap(); } else { seenRefs.add(refDef.getSimpleRef()); } result = resolveProperties(findDefinition(owningSchema.getDefinitions(), refDef), owningSchema, seenRefs); } else if (definition instanceof ComposedModel) { Map<String, Property> allProperties = new HashMap<>(); if (definitionProperties != null) { allProperties.putAll(definitionProperties); } for (final Model childDefinition : ((ComposedModel) definition).getAllOf()) { allProperties.putAll(resolveProperties(childDefinition, owningSchema, seenRefs)); } result = allProperties; } else { result = definitionProperties; } return result; }
public void resolveFully(Swagger swagger) { if (swagger.getDefinitions() != null) { schemas = swagger.getDefinitions(); } if (schemas == null) { schemas = new HashMap<>(); } for (String name : schemas.keySet()) { Model model = schemas.get(name); if (model instanceof ModelImpl) { ModelImpl impl = (ModelImpl) model; if (!impl.getVendorExtensions().containsKey(Constants.X_SWAGGER_ROUTER_MODEL)) impl.setVendorExtension(Constants.X_SWAGGER_ROUTER_MODEL, name); } else if (model instanceof ComposedModel) { ComposedModel cm = (ComposedModel) model; if (!cm.getVendorExtensions().containsKey(Constants.X_SWAGGER_ROUTER_MODEL)) cm.setVendorExtension(Constants.X_SWAGGER_ROUTER_MODEL, name); } else if (model instanceof ArrayModel) { ArrayModel am = (ArrayModel) model; if (!am.getVendorExtensions().containsKey(Constants.X_SWAGGER_ROUTER_MODEL)) am.setVendorExtension(Constants.X_SWAGGER_ROUTER_MODEL, name); } } if (swagger.getPaths() != null) { for (String pathname : swagger.getPaths().keySet()) { Path pathItem = swagger.getPaths().get(pathname); resolvePath(pathItem); } } }
if (composed.getInterfaces() != null) { for (RefModel _interface : composed.getInterfaces()) { Model interfaceModel = null; if (allDefinitions != null) { interfaceModel = allDefinitions.get(_interface.getSimpleRef());
ComposedModel model = null; if(allOf.getNodeType().equals(JsonNodeType.ARRAY)) { model = new ComposedModel(); Model segment = definition((ObjectNode) part, location, result); if(segment != null) { model.getAllOf().add(segment); for (Model m : model.getAllOf()) { if (m instanceof RefModel) { interfaces.add((RefModel) m); model.setInterfaces(interfaces); model.setChild(child); for(String key : keys) { if(key.startsWith("x-")) { model.setVendorExtension(key, extension(node.get(key))); model.setTitle(value); model.setDescription(value);
private void processComposedModel(ComposedModel composedModel) { processModel(composedModel.getParent()); processModel(composedModel.getChild()); final List<RefModel> interfaces = composedModel.getInterfaces(); if (interfaces != null) { for (RefModel model : interfaces) { processRefModel(model); } } }
private void walkAllofModel(ComposedModel model) { // model has already been visited both as model and as array model if (model.getAllOf() != null) { for (Model component : model.getAllOf()) { callbacks.model(model); callbacks.allofComponent(component); callbacks.any(component); walkModel(component); } } }
private void attachAdditionalProps(Model model, Map<String, Property> dataProps) { if (model instanceof ComposedModel) { model = ((ComposedModel) model).getChild(); } Map<String, Property> props = model.getProperties(); if (props == null) { props = new HashMap<>(); } for (Map.Entry<String, Property> entry : dataProps.entrySet()) { props.put(entry.getKey(), entry.getValue()); } model.setProperties(props); }
public Model resolveModel(Model schema) { if (schema instanceof RefModel) { String ref = ((RefModel) schema).getSimpleRef(); Model resolved = schemas.get(ref); if (resolved == null) { if (model.getProperties() != null) { Map<String, Property> updated = new LinkedHashMap<String, Property>(); for (String propertyName : model.getProperties().keySet()) { Property property = model.getProperties().get(propertyName); Property resolved = resolveProperty(property); updated.put(propertyName, resolved); ModelImpl model = new ModelImpl(); Set<String> requiredProperties = new HashSet<>(); if (composedSchema.getAllOf() != null) { for (Model innerModel : composedSchema.getAllOf()) { Model resolved = resolveModel(innerModel); Map<String, Property> properties = resolved.getProperties(); model.setRequired(new ArrayList<>(requiredProperties)); if (composedSchema.getVendorExtensions() != null) { Map<String, Object> extensions = composedSchema.getVendorExtensions(); for (String key : extensions.keySet()) { model.setVendorExtension(key, composedSchema.getVendorExtensions().get(key));