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

edit Parser.jrag (~ ExternalDocObject)

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