List<JType> (String nodeName, JsonNode node, JPackage jPackage, Schema schema) { if (node instanceof ObjectNode && !node.has("extendsJavaClass") && !node.has("extends")) { JsonNode allOf = node.get("allOf"); JsonNode anyOf = node.get("anyOf"); JsonNode oneOf = node.get("oneOf"); JsonNode superRef = allOf; String propName = "allOf"; if (superRef == null) { if (oneOf != null && anyOf == null) { superRef = oneOf; propName = "oneOf"; } else if (oneOf == null && anyOf != null) { superRef = anyOf; propName = "anyOf"; } } else if (anyOf != null || oneOf != null) { superRef = null; } if (superRef != null && superRef.isArray() && (superRef.size() == 1 || (superRef.size() > 1 && propName.equals("allOf")))) { List<JType> result = new ArrayList<>(); for (int i = 0; i < superRef.size(); i++) { Schema superTypeSchema = this.ruleFactory.resolveSchemaRef(schema, propName + "/" + i); JType superType = this.ruleFactory.getSchemaRule().apply( nodeName + "Parent", superRef.get(i), node, jPackage, superTypeSchema); if (superType != null) { result.add(superType); } } return result; } } return Collections.emptyList(); }