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

org.eclipse.microprofile.openapi.OASFactory Maven / Gradle / Ivy

/**
 * Copyright (c) 2017 Contributors to the Eclipse Foundation
 * 

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eclipse.microprofile.openapi; import org.eclipse.microprofile.openapi.models.Components; import org.eclipse.microprofile.openapi.models.Constructible; import org.eclipse.microprofile.openapi.models.ExternalDocumentation; import org.eclipse.microprofile.openapi.models.OpenAPI; import org.eclipse.microprofile.openapi.models.Operation; import org.eclipse.microprofile.openapi.models.PathItem; import org.eclipse.microprofile.openapi.models.Paths; import org.eclipse.microprofile.openapi.models.callbacks.Callback; import org.eclipse.microprofile.openapi.models.examples.Example; import org.eclipse.microprofile.openapi.models.headers.Header; import org.eclipse.microprofile.openapi.models.info.Contact; import org.eclipse.microprofile.openapi.models.info.Info; import org.eclipse.microprofile.openapi.models.info.License; import org.eclipse.microprofile.openapi.models.links.Link; import org.eclipse.microprofile.openapi.models.media.Content; import org.eclipse.microprofile.openapi.models.media.Discriminator; import org.eclipse.microprofile.openapi.models.media.Encoding; import org.eclipse.microprofile.openapi.models.media.MediaType; import org.eclipse.microprofile.openapi.models.media.Schema; import org.eclipse.microprofile.openapi.models.media.XML; import org.eclipse.microprofile.openapi.models.parameters.Parameter; import org.eclipse.microprofile.openapi.models.parameters.RequestBody; import org.eclipse.microprofile.openapi.models.responses.APIResponse; import org.eclipse.microprofile.openapi.models.responses.APIResponses; import org.eclipse.microprofile.openapi.models.security.OAuthFlow; import org.eclipse.microprofile.openapi.models.security.OAuthFlows; import org.eclipse.microprofile.openapi.models.security.SecurityRequirement; import org.eclipse.microprofile.openapi.models.security.SecurityScheme; import org.eclipse.microprofile.openapi.models.servers.Server; import org.eclipse.microprofile.openapi.models.servers.ServerVariable; import org.eclipse.microprofile.openapi.models.tags.Tag; import org.eclipse.microprofile.openapi.spi.OASFactoryResolver; /** * This class allows application developers to build new OpenAPI model elements. * *
*
* For example, to start a new top-level OpenAPI element with an ExternalDocument inside of it an application developer * would write: * *

 * OASFactory.createObject(OpenAPI.class)
 *          .setExternalDocs(OASFactory.createObject(ExternalDocumentation.class).url("http://myDoc"));
 * 
*/ public final class OASFactory { private OASFactory() { } /** * This method creates a new instance of a constructible element from the OpenAPI model tree. * *
*
* Example: * *
     * OASFactory.createObject(Info.class).title("Airlines").description("Airlines APIs").version("1.0.0");
     * 
     * 
* * @param * describes the type parameter * @param clazz * represents a model which extends the {@link org.eclipse.microprofile.openapi.models.Constructible} * interface * * @return a new instance of the requested model class * * @throws NullPointerException * if the specified class is null * @throws IllegalArgumentException * if an instance could not be created, most likely, due to an illegal or inappropriate class */ public static T createObject(Class clazz) { return OASFactoryResolver.instance().createObject(clazz); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.Components} instance. * * @return a new Components instance */ public static Components createComponents() { return createObject(Components.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.ExternalDocumentation} instance. * * @return a new ExternalDocumentation instance */ public static ExternalDocumentation createExternalDocumentation() { return createObject(ExternalDocumentation.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.OpenAPI} instance. * * @return a new OpenAPI instance */ public static OpenAPI createOpenAPI() { return createObject(OpenAPI.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.Operation} instance. * * @return a new Operation instance */ public static Operation createOperation() { return createObject(Operation.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.PathItem} instance. * * @return a new PathItem instance */ public static PathItem createPathItem() { return createObject(PathItem.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.Paths} instance. * * @return a new Paths instance */ public static Paths createPaths() { return createObject(Paths.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.callbacks.Callback} instance. * * @return a new Callback instance */ public static Callback createCallback() { return createObject(Callback.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.examples.Example} instance. * * @return a new Example instance */ public static Example createExample() { return createObject(Example.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.headers.Header} instance. * * @return a new Header instance */ public static Header createHeader() { return createObject(Header.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.info.Contact} instance. * * @return a new Contact instance */ public static Contact createContact() { return createObject(Contact.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.info.Info} instance. * * @return a new Info instance */ public static Info createInfo() { return createObject(Info.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.info.License} instance. * * @return a new License instance */ public static License createLicense() { return createObject(License.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.links.Link} instance. * * @return a new Link instance */ public static Link createLink() { return createObject(Link.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.Content} instance. * * @return a new Content instance */ public static Content createContent() { return createObject(Content.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.Discriminator} instance. * * @return a new Discriminator instance */ public static Discriminator createDiscriminator() { return createObject(Discriminator.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.Encoding} instance. * * @return a new Encoding instance */ public static Encoding createEncoding() { return createObject(Encoding.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.MediaType} instance. * * @return a new MediaType instance */ public static MediaType createMediaType() { return createObject(MediaType.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.Schema} instance. * * @return a new Schema instance */ public static Schema createSchema() { return createObject(Schema.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.media.XML} instance. * * @return a new XML instance */ public static XML createXML() { return createObject(XML.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.parameters.Parameter} instance. * * @return a new Parameter instance */ public static Parameter createParameter() { return createObject(Parameter.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.parameters.RequestBody} instance. * * @return a new RequestBody instance */ public static RequestBody createRequestBody() { return createObject(RequestBody.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.responses.APIResponse} instance. * * @return a new APIResponse instance */ public static APIResponse createAPIResponse() { return createObject(APIResponse.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.responses.APIResponses} instance. * * @return a new APIResponses instance */ public static APIResponses createAPIResponses() { return createObject(APIResponses.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.security.OAuthFlow} instance. * * @return a new OAuthFlow instance */ public static OAuthFlow createOAuthFlow() { return createObject(OAuthFlow.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.security.OAuthFlows} instance. * * @return a new OAuthFlows instance */ public static OAuthFlows createOAuthFlows() { return createObject(OAuthFlows.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.security.SecurityRequirement} instance. * * @return a new SecurityRequirement instance */ public static SecurityRequirement createSecurityRequirement() { return createObject(SecurityRequirement.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.security.SecurityScheme} instance. * * @return a new SecurityScheme instance */ public static SecurityScheme createSecurityScheme() { return createObject(SecurityScheme.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.servers.Server} instance. * * @return a new Server instance */ public static Server createServer() { return createObject(Server.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.servers.ServerVariable} instance. * * @return a new ServerVariable instance */ public static ServerVariable createServerVariable() { return createObject(ServerVariable.class); } /** * This method creates a new {@link org.eclipse.microprofile.openapi.models.tags.Tag} instance. * * @return a new Tag instance */ public static Tag createTag() { return createObject(Tag.class); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy