All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.genflow.rapidml.swagger.JsonSchemaForSwaggerGenerator Maven / Gradle / Ivy

package com.reprezen.genflow.rapidml.swagger;

import com.fasterxml.jackson.databind.node.ObjectNode;
import com.reprezen.genflow.common.jsonschema.JsonSchemaFormat;
import com.reprezen.genflow.common.jsonschema.Options;
import com.reprezen.genflow.common.jsonschema.builder.JsonSchemaNodeFactory;
import com.reprezen.genflow.common.jsonschema.builder.NamedSchemaNode;
import com.reprezen.rapidml.ServiceDataResource;
import com.reprezen.rapidml.TypedMessage;
import com.reprezen.rapidml.ZenModel;
import java.util.Map;

@SuppressWarnings("all")
public class JsonSchemaForSwaggerGenerator {
  private final JsonSchemaNodeFactory jsonSchemaNodeFactory;
  
  public JsonSchemaForSwaggerGenerator() {
    this(new JsonSchemaNodeFactory(JsonSchemaFormat.SWAGGER));
  }
  
  public JsonSchemaForSwaggerGenerator(final JsonSchemaNodeFactory jsonSchemaNodeFactory) {
    this.jsonSchemaNodeFactory = jsonSchemaNodeFactory;
  }
  
  public void init(final Options options) {
    this.jsonSchemaNodeFactory.setOptions(options);
  }
  
  /**
   * Convenience method for Swagger generator
   */
  public ObjectNode generateDefinitionsNode(final ZenModel model, final Map templateParams) {
    ObjectNode _xblockexpression = null;
    {
      Options _fromParams = Options.fromParams(templateParams);
      this.init(_fromParams);
      _xblockexpression = this.jsonSchemaNodeFactory.generateDefinitionsNode(model);
    }
    return _xblockexpression;
  }
  
  public String getDefinitionName(final ServiceDataResource resource) {
    NamedSchemaNode _createResourceNode = this.jsonSchemaNodeFactory.createResourceNode(resource);
    return _createResourceNode.getName();
  }
  
  public String getDefinitionName(final TypedMessage message) {
    NamedSchemaNode _createTypedMessageNode = this.jsonSchemaNodeFactory.createTypedMessageNode(message);
    return _createTypedMessageNode.getName();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy