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

edit ast to relast (buggy), edit build gradle (buggy)

parent 7e28dbeb
No related branches found
No related tags found
1 merge request!1Tests/openapi generator
...@@ -55,6 +55,38 @@ test { ...@@ -55,6 +55,38 @@ test {
maxHeapSize = '1G' maxHeapSize = '1G'
} }
// Input and output files for relast
def relastInputFiles = [
"src/main/jastadd/OpenAPISpecification.relast"
]
def relastOutputFiles = [
"src/gen/jastadd/OpenAPISpecification.ast",
"src/gen/jastadd/OpenAPISpecification.jadd"
]
task relast(type: JavaExec) {
classpath = files("libs/relast.jar")
group = 'Build'
doFirst {
delete relastOutputFiles
mkdir "src/gen/jastadd/"
}
args = [
"--listClass=java.util.ArrayList",
"--jastAddList=JastAddList",
"--useJastAddNames",
"--file",
"--resolverHelper",
"--grammarName=./src/gen/jastadd/RelAst"
] + relastInputFiles
inputs.files relastInputFiles
outputs.files relastOutputFiles
}
File genSrc = file("src/gen/java") File genSrc = file("src/gen/java")
sourceSets.main.java.srcDir genSrc sourceSets.main.java.srcDir genSrc
idea.module.generatedSourceDirs += genSrc idea.module.generatedSourceDirs += genSrc
......
File added
/*
import org.openapi4j.core.exception.ResolutionException; import org.openapi4j.core.exception.ResolutionException;
import org.openapi4j.core.validation.ValidationException; import org.openapi4j.core.validation.ValidationException;
import org.openapi4j.parser.model.v3.*; import org.openapi4j.parser.model.v3.*;
...@@ -5,7 +6,6 @@ import org.openapi4j.core.model.reference.Reference; ...@@ -5,7 +6,6 @@ import org.openapi4j.core.model.reference.Reference;
import org.openapi4j.core.model.OAIContext; import org.openapi4j.core.model.OAIContext;
import java.io.IOException; import java.io.IOException;
import java.util.*;
import java.net.URL; import java.net.URL;
aspect Composer { aspect Composer {
...@@ -765,13 +765,13 @@ aspect Composer { ...@@ -765,13 +765,13 @@ aspect Composer {
for (EnumObj e : s.getEnumObjs()) for (EnumObj e : s.getEnumObjs())
schema.addEnum(e.getEnumOb()); schema.addEnum(e.getEnumOb());
} }
/*
if (s.getExample() != null) if (s.getExample() != null)
schema.setExample(s.getExample()); schema.setExample(s.getExample());
if (s.getExclusiveMaximum() != null) if (s.getExclusiveMaximum() != null)
schema.setExclusiveMaximum(s.getExclusiveMaximum()); schema.setExclusiveMaximum(s.getExclusiveMaximum());
if (s.getExclusiveMinimum() != null) if (s.getExclusiveMinimum() != null)
schema.setExclusiveMinimum(s.getExclusiveMinimum());*/ schema.setExclusiveMinimum(s.getExclusiveMinimum());
if (s.hasExternalDocObject()) if (s.hasExternalDocObject())
schema.setExternalDocs(ExternalDocObject.composeExternalDocs(s.getExternalDocObject(), map)); schema.setExternalDocs(ExternalDocObject.composeExternalDocs(s.getExternalDocObject(), map));
if (!s.getFormat().isEmpty()) if (!s.getFormat().isEmpty())
...@@ -808,7 +808,7 @@ aspect Composer { ...@@ -808,7 +808,7 @@ aspect Composer {
} }
/* /*
if (s.getNullable() != null) if (s.getNullable() != null)
schema.setNullable(s.getNullable());*/ schema.setNullable(s.getNullable());
if (!s.getPattern().isEmpty()) if (!s.getPattern().isEmpty())
schema.setPattern(s.getPattern()); schema.setPattern(s.getPattern());
if (s.getNumPropertyItem() != 0) { if (s.getNumPropertyItem() != 0) {
...@@ -998,3 +998,5 @@ aspect Composer { ...@@ -998,3 +998,5 @@ aspect Composer {
return securityRequirement; return securityRequirement;
} }
} }
*/
\ No newline at end of file
import com.fasterxml.jackson.databind.JsonNode; /*import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ArrayNode;
...@@ -199,3 +199,5 @@ aspect InferParameter{ ...@@ -199,3 +199,5 @@ aspect InferParameter{
} }
} }
} }
*/
\ No newline at end of file
//OpenAPI Object //OpenAPI Object
OpenAPIObject ::= <OpenAPI> [InfoObject] <JsonSchemaDialect> ServerObject* PathsObject* Webhook* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension* InferredParameter*; OpenAPIObject ::= <OpenAPI> [InfoObject] <JsonSchemaDialect> ServerObject* PathsObject* Webhook* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] Extension* InferredParameter*;
InferredParameter ::= <Parameter>; InferredParameter ::= <Parameter>;
Webhook ::= <Key> PathItemOb; Webhook ::= <Key> PathItemOb;
......
/*
import org.openapi4j.core.exception.DecodeException; import org.openapi4j.core.exception.DecodeException;
aspect Parser { aspect Parser {
inh OpenAPIObject ASTNode.root();
eq OpenAPIObject.getChild().root() = this;
coll List<SchemaTuple> OpenAPIObject.schemaTuples() [new ArrayList<>()] root OpenAPIObject;
SchemaTuple contributes this
to OpenAPIObject.schemaTuples();
coll List<ResponseTuple> OpenAPIObject.responseTuples() [new ArrayList<>()] root OpenAPIObject;
ResponseTuple contributes this
to OpenAPIObject.responseTuples();
coll List<ParameterTuple> OpenAPIObject.parameterTuples() [new ArrayList<>()] root OpenAPIObject;
ParameterTuple contributes this
to OpenAPIObject.parameterTuples();
coll List<RequestBodyTuple> OpenAPIObject.requestBodyTuples() [new ArrayList<>()] root OpenAPIObject;
RequestBodyTuple contributes this
to OpenAPIObject.requestBodyTuples();
coll List<HeaderTuple> OpenAPIObject.headerTuples() [new ArrayList<>()] root OpenAPIObject;
HeaderTuple contributes this
to OpenAPIObject.headerTuples();
coll List<SecuritySchemeTuple> OpenAPIObject.securitySchemeTuples() [new ArrayList<>()] root OpenAPIObject;
SecuritySchemeTuple contributes this
to OpenAPIObject.securitySchemeTuples();
coll List<LinkTuple> OpenAPIObject.linkTuples() [new ArrayList<>()] root OpenAPIObject;
LinkTuple contributes this
to OpenAPIObject.linkTuples();
coll List<CallbackTuple> OpenAPIObject.callbackTuples() [new ArrayList<>()] root OpenAPIObject;
CallbackTuple contributes this
to OpenAPIObject.callbackTuples();
public static OpenAPIObject OpenAPIObject.parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException, DecodeException { public static OpenAPIObject OpenAPIObject.parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException, DecodeException {
OpenAPIObject openapi = new OpenAPIObject(); OpenAPIObject openapi = new OpenAPIObject();
Map<Object, ASTNode> map = new HashMap<>(); Map<Object, ASTNode> map = new HashMap<>();
...@@ -678,7 +644,7 @@ aspect Parser { ...@@ -678,7 +644,7 @@ aspect Parser {
if (schema.getExclusiveMaximum() != null) if (schema.getExclusiveMaximum() != null)
schemaObject.setExclusiveMaximum(schema.getExclusiveMaximum()); schemaObject.setExclusiveMaximum(schema.getExclusiveMaximum());
if (schema.getExclusiveMinimum() != null) if (schema.getExclusiveMinimum() != null)
schemaObject.setExclusiveMinimum(schema.getExclusiveMinimum());*/ schemaObject.setExclusiveMinimum(schema.getExclusiveMinimum());
if (schema.getExternalDocs() != null) if (schema.getExternalDocs() != null)
schemaObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(schema.getExternalDocs(), map)); schemaObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(schema.getExternalDocs(), map));
if (schema.getFormat() != null) if (schema.getFormat() != null)
...@@ -713,7 +679,7 @@ aspect Parser { ...@@ -713,7 +679,7 @@ aspect Parser {
} }
/* /*
if (schema.getNullable() != null) if (schema.getNullable() != null)
schemaObject.setNullable(schema.getNullable());*/ schemaObject.setNullable(schema.getNullable());
if (schema.getPattern() != null) if (schema.getPattern() != null)
schemaObject.setPattern(schema.getPattern()); schemaObject.setPattern(schema.getPattern());
if (schema.getProperties() != null) { if (schema.getProperties() != null) {
...@@ -908,3 +874,5 @@ aspect Parser { ...@@ -908,3 +874,5 @@ aspect Parser {
return securityRequirementObject; return securityRequirementObject;
} }
} }
*/
\ No newline at end of file
/*
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
...@@ -192,3 +193,5 @@ aspect RandomRequestGenerator{ ...@@ -192,3 +193,5 @@ aspect RandomRequestGenerator{
return String.valueOf(rand.nextInt()); return String.valueOf(rand.nextInt());
} }
} }
*/
\ No newline at end of file
import java.util.*;
aspect Reference { aspect Reference {
inh OpenAPIObject ASTNode.root();
eq OpenAPIObject.getChild().root() = this;
coll List<SchemaTuple> OpenAPIObject.schemaTuples() [new ArrayList<>()] root OpenAPIObject;
SchemaTuple contributes this
to OpenAPIObject.schemaTuples();
coll List<ResponseTuple> OpenAPIObject.responseTuples() [new ArrayList<>()] root OpenAPIObject;
ResponseTuple contributes this
to OpenAPIObject.responseTuples();
coll List<ParameterTuple> OpenAPIObject.parameterTuples() [new ArrayList<>()] root OpenAPIObject;
ParameterTuple contributes this
to OpenAPIObject.parameterTuples();
coll List<RequestBodyTuple> OpenAPIObject.requestBodyTuples() [new ArrayList<>()] root OpenAPIObject;
RequestBodyTuple contributes this
to OpenAPIObject.requestBodyTuples();
coll List<HeaderTuple> OpenAPIObject.headerTuples() [new ArrayList<>()] root OpenAPIObject;
HeaderTuple contributes this
to OpenAPIObject.headerTuples();
coll List<SecuritySchemeTuple> OpenAPIObject.securitySchemeTuples() [new ArrayList<>()] root OpenAPIObject;
SecuritySchemeTuple contributes this
to OpenAPIObject.securitySchemeTuples();
coll List<LinkTuple> OpenAPIObject.linkTuples() [new ArrayList<>()] root OpenAPIObject;
LinkTuple contributes this
to OpenAPIObject.linkTuples();
coll List<CallbackTuple> OpenAPIObject.callbackTuples() [new ArrayList<>()] root OpenAPIObject;
CallbackTuple contributes this
to OpenAPIObject.callbackTuples();
syn ParameterObject ParameterOb.parameterObject(); syn ParameterObject ParameterOb.parameterObject();
eq ParameterObject.parameterObject() = this; eq ParameterObject.parameterObject() = this;
eq ParameterReference.parameterObject() { eq ParameterReference.parameterObject() {
......
...@@ -65,8 +65,8 @@ public class OpenAPIMain { ...@@ -65,8 +65,8 @@ public class OpenAPIMain {
OpenApi3 api = new OpenApi3Parser().parse(expUrl, new ArrayList<>(), true); OpenApi3 api = new OpenApi3Parser().parse(expUrl, new ArrayList<>(), true);
System.out.println("Loading expression DSL file '" + fileName + "'."); System.out.println("Loading expression DSL file '" + fileName + "'.");
openApi = OpenAPIObject.parseOpenAPI(api); //openApi = OpenAPIObject.parseOpenAPI(api);
openApi.generateRequestsWithInferredParameters(); //openApi.generateRequestsWithInferredParameters();
//writer.write(api3.toNode().toPrettyString()); //writer.write(api3.toNode().toPrettyString());
//writer.close(); //writer.close();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment