@Test public void testComposedUberObject() throws Exception { final Schema uberModel = context.resolve(new AnnotatedType(UberObject.class)); assertNotNull(uberModel); // make sure child points at parent assertTrue(uberModel instanceof ComposedSchema); ComposedSchema cm = (ComposedSchema) uberModel; assertEquals(cm.getAnyOf().size(), 2); assertEquals(cm.getAnyOf().get(0).get$ref(), "#/components/schemas/UserObject"); // parent properties are filtered out of subclass when parent doesn't define subtypes assertNotNull(cm.getProperties()); assertEquals(cm.getProperties().size(), 3); final Schema interfaceModel = context.getDefinedModels().get("UserObject"); assertNotNull(interfaceModel); assertUserObjectPropertiesValid(interfaceModel.getProperties()); }
private List<Schema> getInterfaces(ComposedSchema composed) { List<Schema> interfaces; if (composed.getAllOf() != null && !composed.getAllOf().isEmpty()) { return composed.getAllOf(); } else if (composed.getAnyOf() != null && !composed.getAnyOf().isEmpty()) { return composed.getAnyOf(); } else if (composed.getOneOf() != null && !composed.getOneOf().isEmpty()) { return composed.getOneOf(); } else { return null; } }
private List<Schema> getInterfaces(ComposedSchema composed) { if(composed.getAllOf() != null && composed.getAllOf().size() > 1) { return composed.getAllOf().subList(1, composed.getAllOf().size()); } else if(composed.getAnyOf() != null && !composed.getAnyOf().isEmpty()) { return composed.getAnyOf(); } else if(composed.getOneOf() != null && !composed.getOneOf().isEmpty()) { return composed.getOneOf(); } else { return null; } }
private List<Schema> getInterfaces(ComposedSchema composed) { if(composed.getAllOf() != null && composed.getAllOf().size() > 1) { return composed.getAllOf().subList(1, composed.getAllOf().size()); } else if(composed.getAnyOf() != null && !composed.getAnyOf().isEmpty()) { return composed.getAnyOf(); } else if(composed.getOneOf() != null && !composed.getOneOf().isEmpty()) { return composed.getOneOf(); } else { return null; } }
Set<Object> examples = new HashSet<>(); if ((composedSchema.getAllOf() != null && composedSchema.getAnyOf() != null && composedSchema.getOneOf() != null)|| (composedSchema.getAllOf() != null && composedSchema.getAnyOf() != null) || (composedSchema.getAllOf() != null && composedSchema.getOneOf() != null)|| (composedSchema.getOneOf() != null && composedSchema.getAnyOf() != null)){ } if (composedSchema.getAnyOf() != null) { if(adjacent == false) { Schema resolved; List<Schema> list = new ArrayList<>(); for (Schema innerModel : composedSchema.getAnyOf()) { resolved = resolveSchema(innerModel); list.add(resolved); return composedSchema; }else { for (Schema innerModel : composedSchema.getAnyOf()) { Schema resolved = resolveSchema(innerModel); Map<String, Schema> properties = resolved.getProperties(); if (composedSchema.getOneOf() != null) composedSchema.oneOf(composedSchema.getOneOf().stream().map(this::resolveSchema).collect(Collectors.toList())); if (composedSchema.getAnyOf() != null) composedSchema.anyOf(composedSchema.getAnyOf().stream().map(this::resolveSchema).collect(Collectors.toList())); return composedSchema;
private void processProperty(Schema property, String file) { if (property != null) { if (StringUtils.isNotBlank(property.get$ref())) { processRefSchema(property, file); } if (property.getProperties() != null) { processProperties(property.getProperties(), file); } if (property instanceof ArraySchema) { processProperty(((ArraySchema) property).getItems(), file); } if (property.getAdditionalProperties() instanceof Schema) { processProperty(((Schema) property.getAdditionalProperties()), file); } if (property instanceof ComposedSchema) { ComposedSchema composed = (ComposedSchema) property; processProperties(composed.getAllOf(), file); processProperties(composed.getAnyOf(), file); processProperties(composed.getOneOf(), file); } } }
List<Schema> anyOf = ((ComposedSchema) schema).getAnyOf(); if (anyOf != null) { for (Schema s : anyOf) {