public static void removeMarkers(JsonNode node, Options options) { if (node.has(RepreZenVendorExtension.EXTENSION_NAME)) { removeItemMarkers(node, options); } for (Entry<String, JsonNode> child : iterable(node.fields())) { removeMarkers(child.getValue(), options); } for (JsonNode element : iterable(node.elements())) { removeMarkers(element, options); } }
private void addRefFileUrls(JsonNode object, Reference ref) { if (options.isAddJsonPointers()) { OpenApiMarkers.markFile(object, ref.getCanonicalFileRefString()); if (ObjectType.PATH == ref.getSection()) { Iterator<String> fields = object.fieldNames(); String pathFileRef = ref.getCanonicalFileRefString(); while (fields.hasNext()) { String fieldName = fields.next(); if (Util.swaggerMethodOrder.contains(fieldName)) { if (pathFileRef != null) { OpenApiMarkers.markFile(object.get(fieldName), pathFileRef); OpenApiMarkers.markJsonPointer(object.get(fieldName), ref.getFragment() + "/" + fieldName); } } } } } }
private void markPositionsInSection(JsonNode section) { int position = 0; for (Entry<String, JsonNode> field : Util.iterable(section.fields())) { if (!isVendorExtension(field.getKey())) { OpenApiMarkers.markPosition(field.getValue(), position++); } } }
private static void removeItemMarkers(Object item, Options options) { if (!options.isRetainOrderingExtensionData()) { removePosition(item); } if (!options.isRetainPointerExtensionData()) { removeJsonPointer(item); } if (!options.isRetainFileExtensionData()) { removeFile(item); } if (!options.isRetainTypeNameExtensionData()) { removeTypeName(item); } if (!options.isRetainBadRefExtensionData()) { removeUnresolvableRef(item); } }
public JsonNode reorder(JsonNode tree) throws GenerationException { reorderTree(tree); addPathsIfNeeded(tree); OpenApiMarkers.removeMarkers(tree, new Options(modelVersion, Option.ORDERING_AS_DECLARED)); return tree; }
private void setTypeNames(Content contentItem, boolean setMissingTitles) { ObjectType section = modelVersion == ObjectType.SWAGGER_MODEL_VERSION ? ObjectType.DEFINITION : modelVersion == ObjectType.OPENAPI3_MODEL_VERSION ? ObjectType.SCHEMA : null; if (section != null) { for (String name : contentItem.getObjectNames(section)) { ObjectNode schema = (ObjectNode) contentItem.getObject(section, name).get(); OpenApiMarkers.markTypeName(schema, name); if (setMissingTitles && !schema.has("title")) { schema.put("title", name); } } } } }
private void addJsonPointers(JsonNode object, Reference ref) { if (options.isAddJsonPointers()) { OpenApiMarkers.markJsonPointer(object, ref.getFragment()); if (ObjectType.PATH == ref.getSection()) { Iterator<String> fields = object.fieldNames(); while (fields.hasNext()) { String fieldName = fields.next(); if (Util.swaggerMethodOrder.contains(fieldName)) { // was not set by external reference processor if (RepreZenVendorExtension.get(object.get(fieldName)).getPointer() == null) { OpenApiMarkers.markJsonPointer(object.get(fieldName), ref.getFragment() + "/" + fieldName); } } } } } }
public JsonNode normalizeToJson(URL resolutionBase) throws IOException, GenerationException { long start = System.nanoTime(); try { resolutionBase = checkArgs(resolutionBase); debug("Normalizer Start", resolutionBase, Thread.currentThread().getStackTrace(), spec != null ? spec : tree); JsonNode normalized = normalizeToJsonInternal(resolutionBase); if (!options.isDeferExtensionDataRemoval()) { OpenApiMarkers.removeMarkers(normalized, options); } debug(FINAL_SPEC, "Normalized model spec", normalized); return normalized; } catch (IOException | GenerationException e) { debug(e); throw e; } finally { long elapsed = (System.nanoTime() - start) / (1000 * 1000); // milliseconds debug(String.format("Normalizer End [%d.%03dsec]", elapsed / 1000, (elapsed % 1000))); } }
OpenApiMarkers.markTypeName(result, ref.getObjectName());
OpenApiMarkers.removeMarkers(model, options);
private void markPositionsInPath(JsonNode path) { int position = 0; for (Entry<String, JsonNode> method : Util.iterable(path.fields())) { if (!isVendorExtension(method.getKey())) { OpenApiMarkers.markPosition(method.getValue(), position++); JsonNode responses = method.getValue().get("responses"); if (responses != null) { int respPosition = 0; for (Entry<String, JsonNode> response : Util.iterable(responses.fields())) { if (!isVendorExtension(response.getKey())) { OpenApiMarkers.markPosition(response.getValue(), respPosition++); } } } } } }
private ObjectNode buildObjectTree() { ObjectNode tree = JsonNodeFactory.instance.objectNode(); while (true) { Optional<LocalContent> optItem = contentManager.getAndRemoveRetainedModelObject(); if (optItem.isPresent()) { LocalContent item = optItem.get(); JsonNode object = Util.safeDeepCopy(item.getContent()); object = inline(object, item.getRef()); OpenApiMarkers.markPosition(object, item.getPosition()); addToTree(tree, object, item.getSectionType(), item.getName()); addJsonPointers(object, item.getRef()); } else { break; } } return tree; }