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

hope.common.wire.api.CommonApiCollector Maven / Gradle / Ivy

package hope.common.wire.api;

import hope.common.Builder;
import hope.common.service.Collector;
import hope.common.service.api.Component;
import hope.common.wire.constant.ProblemPhase;
import hope.common.wire.constant.ProblemSeverity;
import hope.common.wire.constant.YesNoEnum;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.callbacks.Callback;
import io.swagger.v3.oas.models.examples.Example;
import io.swagger.v3.oas.models.headers.Header;
import io.swagger.v3.oas.models.links.Link;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.parameters.Parameter;
import io.swagger.v3.oas.models.parameters.RequestBody;
import io.swagger.v3.oas.models.responses.ApiResponse;
import io.swagger.v3.oas.models.security.SecurityScheme;
import io.swagger.v3.oas.models.tags.Tag;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Generated;

@Generated("H.O.P.E. Infra Team")
public final class CommonApiCollector implements Collector {
  public static final String COMPONENTS_SCHEMAS_REF = Components.COMPONENTS_SCHEMAS_REF;

  protected final OpenAPI api;

  protected final Map servicesContext = new LinkedHashMap();

  protected final Map pathsContext = new LinkedHashMap();

  protected final Map schemas = new LinkedHashMap();

  protected final Map responses = new LinkedHashMap();

  protected final Map parameters = new LinkedHashMap();

  protected final Map examples = new LinkedHashMap();

  protected final Map requestBodies = new LinkedHashMap();

  protected final Map headers = new LinkedHashMap();

  protected final Map securitySchemes = new LinkedHashMap();

  protected final Map links = new LinkedHashMap();

  protected final Map callbacks = new LinkedHashMap();

  protected final Map tags = new LinkedHashMap();

  protected final Map extensions = new LinkedHashMap();

  protected final Map pathClzMap = new HashMap();

  protected final Map> clzPathMap = new HashMap();

  protected final Map clzContextMap = new LinkedHashMap();

  protected final Map componentMap = new LinkedHashMap();

  public CommonApiCollector() {
    this.api =  new OpenAPI();
    Components components = new Components();
    components.setSchemas(schemas);
    components.responses(responses);
    components.setParameters(parameters);
    components.setRequestBodies(requestBodies);
    components.setHeaders(headers);
    components.setExamples(examples);
    components.setSecuritySchemes(securitySchemes);
    components.setLinks(links);
    components.setCallbacks(callbacks);
    components.setExtensions(extensions);
    api.components(components);
    api.setPaths(new Paths());
    _init();
  }

  @Override
  public OpenAPI getApi() {
    return api;
  }

  @Override
  public Map getServicesContext() {
    return servicesContext;
  }

  @Override
  public Map getPathsContext() {
    return pathsContext;
  }

  @Override
  public Map getSchemas() {
    return schemas;
  }

  @Override
  public Map getResponses() {
    return responses;
  }

  @Override
  public Map getParameters() {
    return parameters;
  }

  @Override
  public Map getExamples() {
    return examples;
  }

  @Override
  public Map getRequestBodies() {
    return requestBodies;
  }

  @Override
  public Map getHeaders() {
    return headers;
  }

  @Override
  public Map getSecuritySchemes() {
    return securitySchemes;
  }

  @Override
  public Map getLinks() {
    return links;
  }

  @Override
  public Map getCallbacks() {
    return callbacks;
  }

  @Override
  public Map getTags() {
    return tags;
  }

  @Override
  public Map getExtensions() {
    return extensions;
  }

  @Override
  public Map getPathClzMap() {
    return pathClzMap;
  }

  @Override
  public Map> getClzPathMap() {
    return clzPathMap;
  }

  @Override
  public Map getClzContextMap() {
    return clzContextMap;
  }

  @Override
  public Map getComponentMap() {
    return componentMap;
  }

  public void registerPathClz(String path, String clz) {
    pathClzMap.put(path, clz);
    clzPathMap.computeIfAbsent(clz, s -> new LinkedHashSet<>()).add(path);
  }

  private final void _build_component_hope_common_wire_constant_ProblemPhase() {
    //  Build of the component: ProblemPhase proto: hope/common/proto/constant/common.proto
    Component res = new Component();
    componentMap.put("hope.common.wire.constant.ProblemPhase", res);
    res.setClzName("hope.common.wire.constant.ProblemPhase");
    res.setEnumClz(true);
    res.setName("ProblemPhase");
    res.setPayload(new Builder>() {
      @Override
      public Schema build() {
        Schema res  = new Schema();
        res.setTitle("Phase");
        res.setDescription("错误层次");
        List values  = new ArrayList();
        values.add(ProblemPhase.CONTROLLER);
        values.add(ProblemPhase.SERVICE);
        values.add(ProblemPhase.DOMAIN);
        res.setDefault(ProblemPhase.CONTROLLER);
        res.setEnum(values);
        return res;
      }
    }.build());
  }

  private final void _build_component_hope_common_wire_constant_ProblemSeverity() {
    //  Build of the component: ProblemSeverity proto: hope/common/proto/constant/common.proto
    Component res = new Component();
    componentMap.put("hope.common.wire.constant.ProblemSeverity", res);
    res.setClzName("hope.common.wire.constant.ProblemSeverity");
    res.setEnumClz(true);
    res.setName("ProblemSeverity");
    res.setPayload(new Builder>() {
      @Override
      public Schema build() {
        Schema res  = new Schema();
        res.setTitle("Severity");
        res.setDescription("错误严重程度");
        List values  = new ArrayList();
        values.add(ProblemSeverity.LOW);
        values.add(ProblemSeverity.WARN);
        values.add(ProblemSeverity.ERROR);
        values.add(ProblemSeverity.FATAL);
        res.setDefault(ProblemSeverity.LOW);
        res.setEnum(values);
        return res;
      }
    }.build());
  }

  private final void _build_component_hope_common_wire_constant_YesNoEnum() {
    //  Build of the component: YesNoEnum proto: hope/common/proto/constant/common.proto
    Component res = new Component();
    componentMap.put("hope.common.wire.constant.YesNoEnum", res);
    res.setClzName("hope.common.wire.constant.YesNoEnum");
    res.setEnumClz(true);
    res.setName("YesNoEnum");
    res.setPayload(new Builder>() {
      @Override
      public Schema build() {
        Schema res  = new Schema();
        res.setTitle("Yes No choice enum");
        res.setDescription("是选择");
        List values  = new ArrayList();
        values.add(YesNoEnum.YES);
        values.add(YesNoEnum.NO);
        res.setDefault(YesNoEnum.YES);
        res.setEnum(values);
        return res;
      }
    }.build());
  }

  private void _init() {
    // Build for Enum :hope.common.wire.constant.ProblemPhase
    _build_component_hope_common_wire_constant_ProblemPhase();
    // Build for Enum :hope.common.wire.constant.ProblemSeverity
    _build_component_hope_common_wire_constant_ProblemSeverity();
    // Build for Enum :hope.common.wire.constant.YesNoEnum
    _build_component_hope_common_wire_constant_YesNoEnum();
    api.tags(new ArrayList<>(tags.values()));
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy