public PropertyProcessor(ResolverCache cache, Swagger swagger) { externalRefProcessor = new ExternalRefProcessor(cache, swagger); }
private void processProperties(final Collection<Property> subProps, final String file) { if (subProps == null || subProps.isEmpty()) { return; } for (Property prop : subProps) { if (prop instanceof RefProperty) { processRefProperty((RefProperty) prop, file); } else if (prop instanceof ArrayProperty) { processProperties(Arrays.asList(((ArrayProperty) prop).getItems()), file); } else if (prop instanceof MapProperty) { processProperties(Arrays.asList(((MapProperty) prop).getAdditionalProperties()), file); } else if (prop instanceof ObjectProperty) { processProperties(((ObjectProperty) prop).getProperties(), file); } else if (prop instanceof ComposedProperty) { processProperties(((ComposedProperty) prop).getAllOf(), file); } } }
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)); RefModel refModel = (RefModel) allOfModel; if (isAnExternalRefFormat(refModel.getRefFormat())) { String joinedRef = join(file, refModel.get$ref()); refModel.set$ref(processRefToExternalDefinition(joinedRef, refModel.getRefFormat())); }else { processRefToExternalDefinition(file + refModel.get$ref(), RefFormat.RELATIVE); processProperties(allOfModel.getProperties(), file); processProperties(model.getProperties(), file); processDiscriminator(discriminator,modelImpl.getProperties(), file); processProperties(Arrays.asList(modelImpl.getAdditionalProperties()), file); processRefProperty((RefProperty) ((ArrayModel) model).getItems(), file);
private void processRefModel(RefModel subRef, String externalFile) { if (isAnExternalRefFormat(subRef.getRefFormat())) { String joinedRef = join(externalFile, subRef.get$ref()); subRef.set$ref(processRefToExternalDefinition(joinedRef, subRef.getRefFormat())); } else { processRefToExternalDefinition(externalFile + subRef.get$ref(), RefFormat.RELATIVE); } }
RefModel refModel = (RefModel) model; if (RefUtils.isAnExternalRefFormat(refModel.getRefFormat())) { processRefModel(refModel, $ref); } else { processRefToExternalDefinition(file + refModel.get$ref(), RefFormat.RELATIVE);
private void processRefProperty(RefProperty refProperty) { // TODO: if the parent document is remote, then this will be remote by definition. if (isAnExternalRefFormat(refProperty.getRefFormat())) { final String newRef = externalRefProcessor.processRefToExternalDefinition(refProperty.get$ref(), refProperty.getRefFormat()); if (newRef != null) { refProperty.set$ref(RefType.DEFINITION.getInternalPrefix()+newRef); } } }
private void processProperties(final Map<String, Property> subProps, final String file) { if (subProps == null || subProps.isEmpty()) { return; } processProperties(subProps.values(), file); }
private void processDiscriminator(String discriminator, Map<String, Property> properties, String file) { for (Map.Entry<String, Property> prop : properties.entrySet()) { if (prop.getKey().equals(discriminator)){ if (prop.getValue() instanceof StringProperty){ StringProperty stringProperty = (StringProperty) prop.getValue(); if(stringProperty.getEnum() != null){ for(String name: stringProperty.getEnum()){ processRefProperty(new RefProperty(RefType.DEFINITION.getInternalPrefix()+name), file); } } } } } }
public void processReferenceResponse(RefResponse refResponse){ RefFormat refFormat = refResponse.getRefFormat(); String $ref = refResponse.get$ref(); if (RefUtils.isAnExternalRefFormat(refFormat)){ externalRefProcessor.processRefToExternalResponse($ref, refFormat); } } }
private void processDiscriminatorAsRefProperty(RefProperty subRef, String externalFile) { if (isAnExternalRefFormat(subRef.getRefFormat())) { String joinedRef = join(externalFile, subRef.get$ref()); subRef.set$ref(processRefToExternalDefinition(joinedRef, subRef.getRefFormat())); } else { String processRef = processRefToExternalDefinition(externalFile + subRef.get$ref(), RefFormat.RELATIVE); subRef.set$ref(RefType.DEFINITION.getInternalPrefix()+processRef); } }
private void processRefModel(RefModel refModel) { /* if this is a URL or relative ref: 1) we need to load it into memory. 2) shove it into the #/definitions 3) update the RefModel to point to its location in #/definitions */ String newRef = null; if (isAnExternalRefFormat(refModel.getRefFormat())) { newRef = externalRefProcessor.processRefToExternalDefinition(refModel.get$ref(), refModel.getRefFormat()); } if (newRef != null) { refModel.set$ref(RefType.DEFINITION.getInternalPrefix() + newRef); } }
private void processRefProperty(RefProperty subRef, String externalFile) { if (isAnExternalRefFormat(subRef.getRefFormat())) { String joinedRef = join(externalFile, subRef.get$ref()); String processRef = processRefToExternalDefinition(joinedRef, subRef.getRefFormat()); if(processRef.startsWith("http") || processRef.startsWith("https:")) { subRef.set$ref(processRef); }else { subRef.set$ref(RefType.DEFINITION.getInternalPrefix()+processRef); } } else { String processRef = processRefToExternalDefinition(externalFile + subRef.get$ref(), RefFormat.RELATIVE); subRef.set$ref(RefType.DEFINITION.getInternalPrefix()+processRef); } }
public ModelProcessor(ResolverCache cache, Swagger swagger) { this.propertyProcessor = new PropertyProcessor(cache, swagger); this.externalRefProcessor = new ExternalRefProcessor(cache, swagger); }
public ResponseProcessor(ResolverCache cache, Swagger swagger) { modelProcessor = new ModelProcessor(cache, swagger); externalRefProcessor = new ExternalRefProcessor(cache, swagger); }