Skip to content
Snippets Groups Projects
Commit 2038b0b2 authored by Jueun Park's avatar Jueun Park
Browse files

edit Parser.jrag (~ ExternalDocObject)

parent 978ce03d
No related branches found
No related tags found
1 merge request!1Tests/openapi generator
This commit is part of merge request !1. Comments created here will be created in the context of that merge request.
......@@ -99,7 +99,7 @@ abstract PathItemOb;
PathItemReference : PathItemOb ::= <Ref> <Summary> <Description>;
PathItemObject : PathItemOb ::= <Ref> <Summary> <Description>;
rel PathItemReference.r -> PathItemTuple;
rel PathItemReference.r -> PathItemObject;
rel PathItemObject.g? -> Get;
rel PathItemObject.put? -> Put;
rel PathItemObject.post? -> Post;
......@@ -154,7 +154,7 @@ ParameterObject : ParameterOb ::= <Name> <In> <Description> <Required:Boolean> <
ContentTuple ::= <Key>;
rel ContentTuple.m -> MediaTypeObject;
rel ParameterReference.p -> PathItemTuple;
rel ParameterReference.p -> ParameterObject;
rel ParameterObject.s? -> SchemaOb;
rel ParameterObject.e* -> ExampleTuple;
rel ParameterObject.c* -> ContentTuple;
......@@ -166,7 +166,7 @@ abstract RequestBodyOb;
RequestBodyReference : RequestBodyOb ::= <Ref> <Summary> <Description>;
RequestBodyObject : RequestBodyOb ::= <Description> <Required:Boolean>;
rel RequestBodyReference.r -> RequestBodyTuple;
rel RequestBodyReference.r -> RequestBodyObject;
rel RequestBodyObject.c* -> ContentTuple;
rel RequestBodyObject.ex* -> Extension;
......@@ -188,9 +188,6 @@ rel EncodingObject.ex* -> Extension;
//Responses Object (ResponseTuple is used for HTTPStatusCode)
ResponsesObject;
//Default
rel ResponsesObject.d? -> ResponseOb;
//HTTPStatusCode
rel ResponsesObject.r* -> ResponseTuple;
......@@ -199,7 +196,7 @@ abstract ResponseOb;
ResponseReference : ResponseOb ::= <Ref> <Summary> <Description>;
ResponseObject : ResponseOb ::= <Description>;
rel ResponseReference.r -> ResponseTuple;
rel ResponseReference.r -> ResponseObject;
rel ResponseObject.h* -> HeaderTuple;
rel ResponseObject.c* -> ContentTuple;
rel ResponseObject.l* -> LinkTuple;
......@@ -214,7 +211,7 @@ Extension ::= <Key> <Value:Object>;
Expression ::= <Name>;
rel Expression.p -> PathItemOb;
rel CallbackReference.r -> CallbackTuple;
rel CallbackReference.r -> CallbackObject;
rel CallbackObject.e* -> Expression;
rel CallbackObject.ex* -> Extension;
......@@ -229,7 +226,7 @@ LinkReference : LinkOb ::= <Ref> <Summary> <Description>;
LinkObject : LinkOb ::= <OperationRef> <OperationID> <LinkRequestBody:Object> <Description>;
LinkParameterTuple ::= <Key> <Value:Object>;
rel LinkReference.r -> LinkTuple;
rel LinkReference.r -> LinkObject;
rel LinkObject.l* -> LinkParameterTuple;
rel LinkObject.s? -> ServerObject;
rel LinkObject.ex* -> Extension;
......@@ -239,7 +236,7 @@ abstract HeaderOb;
HeaderReference : HeaderOb ::= <Ref> <Summary> <Description>;
HeaderObject : HeaderOb ::= <Description> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style> <Explode:Boolean> <AllowReserved:Boolean> <Example:Object>;
rel HeaderReference.r -> HeaderTuple;
rel HeaderReference.r -> HeaderObject;
rel HeaderObject.s? -> SchemaOb;
rel HeaderObject.e* -> ExampleTuple;
rel HeaderObject.c* -> ContentTuple;
......@@ -282,7 +279,7 @@ TypeArray ::= <TypeElements:Object>;
EnumObj ::= <EnumOb:Object>;
RequiredField ::= <Value>;
rel SchemaReference.r -> SchemaTuple;
rel SchemaReference.r -> SchemaObject;
rel SchemaObject.a? -> AdditionalProperties;
rel SchemaObject.d? -> DiscriminatorObject;
rel SchemaObject.e* -> EnumObj;
......@@ -317,7 +314,7 @@ abstract SecuritySchemeOb;
SecuritySchemeReference : SecuritySchemeOb ::= <Ref> <Summary> <Description>;
SecuritySchemeObject : SecuritySchemeOb ::= <Type> <Description> <Name> <In> <Scheme> <BearerFormat> <OpenIdConnectUrl>;
rel SecuritySchemeReference.r -> SecuritySchemeTuple;
rel SecuritySchemeReference.r -> SecuritySchemeObject;
rel SecuritySchemeObject.o? -> OAuthFlowsObject;
rel SecuritySchemeObject.ex* -> Extension;
......
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.*;
import io.swagger.v3.oas.models.callbacks.*;
import io.swagger.v3.oas.models.examples.*;
import io.swagger.v3.oas.models.headers.*;
import io.swagger.v3.oas.models.info.*;
import io.swagger.v3.oas.models.links.*;
import io.swagger.v3.oas.models.media.*;
import io.swagger.v3.oas.models.parameters.*;
import io.swagger.v3.oas.models.responses.*;
import io.swagger.v3.oas.models.security.*;
import io.swagger.v3.oas.models.servers.*;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.tags.*;
aspect Parser {
......@@ -189,74 +199,90 @@ aspect Parser {
componentsObject.addEx(new Extension(key, components.getExtensions().get(key)));
}
/* 3.1.0 features
if (components.getPathItems() != null) ...
*/
return componentsObject;
}
public static PathItemObject PathItemObject.parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException {
public static PathItemOb PathItemOb.parsePath(PathItem path) {
PathItemObject pathItem = new PathItemObject();
if(path.get$ref() != null){
PathItemReference r = new PathItemReference();
r.setRef(path.get$ref());
/* 3.1.0 features
if (path.getSummary() != null) ...
if (path.getDescription() != null) ...
if (path.getPathItem() != null) ...
*/
return r;
} else
if (path.getSummary() != null)
pathItem.setSummary(path.getSummary());
if (path.getDescription() != null)
pathItem.setDescription(path.getDescription());
if (path.getGet() != null) {
Get get = new Get();
get.setOperationObject(OperationObject.parseOperation(path.getGet(), context, map));
pathItem.setGet(get);
get.set_impl_o(OperationObject.parseOperation(path.getGet()));
pathItem.setG(get);
}
if (path.getPut() != null) {
Put put = new Put();
put.setOperationObject(OperationObject.parseOperation(path.getPut(), context, map));
put.set_impl_o(OperationObject.parseOperation(path.getPut()));
pathItem.setPut(put);
}
if (path.getPost() != null) {
Post post = new Post();
post.setOperationObject(OperationObject.parseOperation(path.getPost(), context, map));
post.set_impl_o(OperationObject.parseOperation(path.getPost()));
pathItem.setPost(post);
}
if (path.getDelete() != null) {
Delete delete = new Delete();
delete.setOperationObject(OperationObject.parseOperation(path.getDelete(), context, map));
pathItem.setDelete(delete);
delete.set_impl_o(OperationObject.parseOperation(path.getDelete()));
pathItem.set_impl_d(delete);
}
if (path.getOptions() != null) {
Options options = new Options();
options.setOperationObject(OperationObject.parseOperation(path.getOptions(), context, map));
pathItem.setOptions(options);
options.set_impl_o(OperationObject.parseOperation(path.getOptions()));
pathItem.set_impl_o(options);
}
if (path.getHead() != null) {
Head head = new Head();
head.setOperationObject(OperationObject.parseOperation(path.getHead(), context, map));
pathItem.setHead(head);
head.set_impl_o(OperationObject.parseOperation(path.getHead()));
pathItem.setH(head);
}
if (path.getPatch() != null) {
Patch patch = new Patch();
patch.setOperationObject(OperationObject.parseOperation(path.getPatch(), context, map));
pathItem.setPatch(patch);
patch.set_impl_o(OperationObject.parseOperation(path.getPatch()));
pathItem.setP(patch);
}
if (path.getTrace() != null) {
Trace trace = new Trace();
trace.setOperationObject(OperationObject.parseOperation(path.getTrace(), context, map));
pathItem.setTrace(trace);
trace.set_impl_o(OperationObject.parseOperation(path.getTrace()));
pathItem.setT(trace);
}
if (path.getServers() != null) {
for (Server s : path.getServers())
pathItem.addServerObject(ServerObject.parseServer(s, map));
pathItem.addS(ServerObject.parseServer(s));
}
if (path.getParameters() != null) {
for (Parameter p : path.getParameters())
pathItem.addParameterOb(ParameterOb.parseParameter(p, context, map));
pathItem.addPo(ParameterOb.parseParameter(p));
}
if (path.getExtensions() != null) {
for (String key : path.getExtensions().keySet())
pathItem.addExtension(new Extension(key, path.getExtensions().get(key)));
pathItem.addEx(new Extension(key, path.getExtensions().get(key)));
}
map.put(path, pathItem);
return pathItem;
}
public static OperationObject OperationObject.parseOperation(Operation operation, OAIContext context, Map<Object, ASTNode> map) throws DecodeException{
public static OperationObject OperationObject.parseOperation(Operation operation) {
OperationObject operationObject = new OperationObject();
if (operation.getDeprecated() != null)
......@@ -265,7 +291,7 @@ aspect Parser {
for (String t : operation.getTags()) {
de.tudresden.inf.st.openapi.ast.Tag tag = new de.tudresden.inf.st.openapi.ast.Tag();
tag.setTag(t);
operationObject.addTag(tag);
operationObject.addT(tag);
}
}
if (operation.getSummary() != null)
......@@ -273,54 +299,53 @@ aspect Parser {
if (operation.getDescription() != null)
operationObject.setDescription(operation.getDescription());
if (operation.getExternalDocs() != null)
operationObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(operation.getExternalDocs(), map));
operationObject.set_impl_ed(ExternalDocObject.parseExternalDocs(operation.getExternalDocs()));
if (operation.getOperationId() != null)
operationObject.setOperationID(operation.getOperationId());
if (operation.getParameters() != null) {
for (Parameter p : operation.getParameters())
operationObject.addParameterOb(ParameterOb.parseParameter(p, context, map));
operationObject.addP(ParameterOb.parseParameter(p));
}
if (operation.getRequestBody() != null)
operationObject.setRequestBodyOb(RequestBodyOb.parseRequestBody(operation.getRequestBody(), context, map));
if (operation.getResponses() != null) {
operationObject.set_impl_rb(RequestBodyOb.parseRequestBody(operation.getRequestBody()));
if (operation.getResponses().size() != 0) {
ResponsesObject r = new ResponsesObject();
for (String key : operation.getResponses().keySet())
operationObject.addResponseTuple(new ResponseTuple(key, ResponseObject.parseResponse(operation.getResponse(key), context, map)));
r.addR(new ResponseTuple(key, ResponseObject.parseResponse(operation.getResponses().get(key))));
operationObject.set_impl_r(r);
}
if (operation.getCallbacks() != null) {
if (operation.getCallbacks().size() != 0) {
for (String key : operation.getCallbacks().keySet())
operationObject.addCallbackTuple(new CallbackTuple(key, CallbackObject.parseCallback(operation.getCallback(key), context, map)));
operationObject.addC(new CallbackTuple(key, CallbackObject.parseCallback(operation.getCallbacks().get(key))));
}
if (operation.getSecurityRequirements() != null) {
for (SecurityRequirement s : operation.getSecurityRequirements())
operationObject.addSecurityRequirementObject(SecurityRequirementObject.parseSecurityRequirement(s, map));
if (operation.getSecurity().size() != 0) {
for (SecurityRequirement s : operation.getSecurity())
operationObject.addSr(SecurityRequirementObject.parseSecurityRequirement(s));
}
if (operation.getServers() != null) {
for (Server s : operation.getServers())
operationObject.addServerObject(ServerObject.parseServer(s, map));
operationObject.addS(ServerObject.parseServer(s));
}
if (operation.getExtensions() != null) {
for (String key : operation.getExtensions().keySet())
operationObject.addExtension(new Extension(key, operation.getExtensions().get(key)));
operationObject.addEx(new Extension(key, operation.getExtensions().get(key)));
}
map.put(operation, operationObject);
return operationObject;
}
public static ExternalDocObject ExternalDocObject.parseExternalDocs(ExternalDocs externalDocs, Map<Object, ASTNode> map){
public static ExternalDocObject ExternalDocObject.parseExternalDocs(ExternalDocs externalDocs){
ExternalDocObject externalDocObject = new ExternalDocObject();
if (externalDocs.getDescription() != null)
externalDocObject.setDescription(externalDocs.getDescription());
if (externalDocs.getUrl() != null)
externalDocObject.setUrl(externalDocs.getUrl());
if (externalDocs.getExtensions() != null) {
for (String key : externalDocs.getExtensions().keySet())
externalDocObject.addExtension(new Extension(key, externalDocs.getExtensions().get(key)));
if (externalDocs.getVendorExtensions() != null) {
for (String key : externalDocs.getVendorExtensions().keySet())
externalDocObject.addEx(new Extension(key, externalDocs.getVendorExtensions().get(key)));
}
map.put(externalDocs, externalDocObject);
return externalDocObject;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment