github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/jersey2-experimental/oneof_model.mustache (about)

     1  import javax.ws.rs.core.GenericType;
     2  import javax.ws.rs.core.Response;
     3  import java.util.ArrayList;
     4  import java.util.HashMap;
     5  import java.util.Map;
     6  
     7  {{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{>xmlAnnotation}}
     8  public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-implements}}, {{{.}}}{{/vendorExtensions.x-implements}} {
     9  
    10      // store a list of schema names defined in oneOf
    11      public final static Map<String, GenericType> schemas = new HashMap<String, GenericType>();
    12  
    13      public {{classname}}() {
    14          super("oneOf");
    15      }
    16  
    17      static {
    18          {{#oneOf}}
    19          schemas.put("{{{.}}}", new GenericType<{{{.}}}>() {
    20          });
    21          {{/oneOf}}
    22      }
    23  
    24      @Override
    25      public Map<String, GenericType> getSchemas() {
    26          return {{classname}}.schemas;
    27      }
    28  
    29      @Override
    30      public void setActualInstance(Object instance) {
    31          {{#oneOf}}
    32          if (instance instanceof {{{.}}}) {
    33              super.setActualInstance(instance);
    34              return;
    35          }
    36  
    37          {{/oneOf}}
    38          throw new RuntimeException("Invalid instance type. Must be {{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}");
    39      }
    40  
    41  }