From dc1267598982a1741c7ca206a90b10ba6c515f69 Mon Sep 17 00:00:00 2001 From: Jueun Park <s5616012@mailbox.tu-dresden.de> Date: Tue, 12 Oct 2021 01:01:44 +0900 Subject: [PATCH] Add ParameterInferrer --- .../6.8/executionHistory/executionHistory.bin | Bin 5678547 -> 5678547 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/6.8/fileHashes/fileHashes.bin | Bin 803049 -> 803349 bytes .gradle/6.8/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../6.8/fileHashes/resourceHashesCache.bin | Bin 395097 -> 403461 bytes .gradle/6.8/javaCompile/classAnalysis.bin | Bin 2087334 -> 2324126 bytes .gradle/6.8/javaCompile/jarAnalysis.bin | Bin 1981770 -> 2782141 bytes .gradle/6.8/javaCompile/javaCompile.lock | Bin 17 -> 17 bytes .gradle/6.8/javaCompile/taskHistory.bin | Bin 32828 -> 32828 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../inf/st/openapi/OpenAPIMain.class | Bin 2879 -> 2867 bytes .../inf/st/openapi/ast/ASTNode$1.class | Bin 1458 -> 1458 bytes .../inf/st/openapi/ast/ASTNode$2.class | Bin 915 -> 915 bytes .../inf/st/openapi/ast/ASTNode.class | Bin 13454 -> 17153 bytes .../openapi/ast/ASTNodeAnnotation$Kind.class | Bin 1277 -> 1277 bytes .../st/openapi/ast/ASTNodeAnnotation.class | Bin 1013 -> 1013 bytes .../st/openapi/ast/ASTState$CircleState.class | Bin 840 -> 840 bytes .../openapi/ast/ASTState$CircularValue.class | Bin 606 -> 606 bytes .../inf/st/openapi/ast/ASTState$Cycle.class | Bin 410 -> 410 bytes .../inf/st/openapi/ast/ASTState.class | Bin 3478 -> 3478 bytes .../st/openapi/ast/AdditionalProperties.class | Bin 4534 -> 4534 bytes .../inf/st/openapi/ast/AllOfSchema.class | Bin 4498 -> 4498 bytes .../inf/st/openapi/ast/AnyOfSchema.class | Bin 4498 -> 4498 bytes .../inf/st/openapi/ast/AttributeValue.class | Bin 1485 -> 1485 bytes .../st/openapi/ast/AuthorizationCode.class | Bin 4578 -> 4578 bytes .../inf/st/openapi/ast/CallbackOb.class | Bin 5977 -> 5650 bytes .../inf/st/openapi/ast/CallbackObject.class | Bin 12483 -> 12510 bytes .../st/openapi/ast/CallbackReference.class | Bin 7723 -> 7967 bytes .../inf/st/openapi/ast/CallbackTuple.class | Bin 5108 -> 6565 bytes .../st/openapi/ast/ClientCredentials.class | Bin 4578 -> 4578 bytes .../inf/st/openapi/ast/ComponentsObject.class | Bin 39807 -> 39807 bytes .../inf/st/openapi/ast/ContactObject.class | Bin 10125 -> 10125 bytes .../inf/st/openapi/ast/ContentTuple.class | Bin 5149 -> 5149 bytes .../tudresden/inf/st/openapi/ast/Delete.class | Bin 7326 -> 4534 bytes .../st/openapi/ast/DiscriminatorObject.class | Bin 9612 -> 9612 bytes .../inf/st/openapi/ast/EncodingObject.class | Bin 14384 -> 14384 bytes .../inf/st/openapi/ast/EncodingTuple.class | Bin 5144 -> 5144 bytes .../tudresden/inf/st/openapi/ast/Enum.class | Bin 4323 -> 4323 bytes .../inf/st/openapi/ast/EnumObj.class | Bin 4294 -> 4294 bytes .../inf/st/openapi/ast/ExampleObject.class | Bin 10934 -> 10934 bytes .../inf/st/openapi/ast/ExampleTuple.class | Bin 5131 -> 5131 bytes .../inf/st/openapi/ast/Expression.class | Bin 5090 -> 5126 bytes .../inf/st/openapi/ast/Extension.class | Bin 4694 -> 4694 bytes .../st/openapi/ast/ExternalDocObject.class | Bin 9825 -> 9825 bytes .../de/tudresden/inf/st/openapi/ast/Get.class | Bin 11995 -> 14209 bytes .../tudresden/inf/st/openapi/ast/Head.class | Bin 7318 -> 4526 bytes .../inf/st/openapi/ast/HeaderOb.class | Bin 7538 -> 7203 bytes .../inf/st/openapi/ast/HeaderObject.class | Bin 20817 -> 20823 bytes .../inf/st/openapi/ast/HeaderReference.class | Bin 7663 -> 7913 bytes .../inf/st/openapi/ast/HeaderTuple.class | Bin 5082 -> 6531 bytes .../inf/st/openapi/ast/Implicit.class | Bin 4542 -> 4542 bytes .../st/openapi/ast/InferredParameter.class | Bin 0 -> 4375 bytes .../inf/st/openapi/ast/InfoObject.class | Bin 14648 -> 14648 bytes .../inf/st/openapi/ast/ItemsSchema.class | Bin 4498 -> 4498 bytes .../inf/st/openapi/ast/JastAddList.class | Bin 5748 -> 5748 bytes .../inf/st/openapi/ast/LicenseObject.class | Bin 9707 -> 9707 bytes .../tudresden/inf/st/openapi/ast/LinkOb.class | Bin 6226 -> 5895 bytes .../inf/st/openapi/ast/LinkObject.class | Bin 18073 -> 18079 bytes .../st/openapi/ast/LinkParameterTuple.class | Bin 4805 -> 4805 bytes .../inf/st/openapi/ast/LinkReference.class | Bin 7587 -> 7843 bytes .../inf/st/openapi/ast/LinkTuple.class | Bin 5056 -> 6497 bytes .../inf/st/openapi/ast/MappingTuple.class | Bin 4677 -> 4677 bytes .../inf/st/openapi/ast/MediaTypeObject.class | Bin 18226 -> 18226 bytes .../inf/st/openapi/ast/NotSchema.class | Bin 4490 -> 4490 bytes .../inf/st/openapi/ast/OAuthFlowObject.class | Bin 13132 -> 13132 bytes .../inf/st/openapi/ast/OAuthFlowsObject.class | Bin 15349 -> 15349 bytes .../inf/st/openapi/ast/OneOfSchema.class | Bin 4498 -> 4498 bytes .../inf/st/openapi/ast/OpenAPIObject.class | Bin 35824 -> 49861 bytes .../inf/st/openapi/ast/OperationOb.class | Bin 3155 -> 0 bytes .../inf/st/openapi/ast/OperationObject.class | Bin 40192 -> 39513 bytes .../de/tudresden/inf/st/openapi/ast/Opt.class | Bin 4048 -> 4048 bytes .../inf/st/openapi/ast/Options.class | Bin 7330 -> 4538 bytes .../inf/st/openapi/ast/ParameterOb.class | Bin 7765 -> 7424 bytes .../inf/st/openapi/ast/ParameterObject.class | Bin 22129 -> 22135 bytes .../st/openapi/ast/ParameterReference.class | Bin 7756 -> 7997 bytes .../inf/st/openapi/ast/ParameterTuple.class | Bin 5121 -> 6582 bytes .../inf/st/openapi/ast/Password.class | Bin 4542 -> 4542 bytes .../tudresden/inf/st/openapi/ast/Patch.class | Bin 7322 -> 4530 bytes .../inf/st/openapi/ast/PathItemOb.class | Bin 8818 -> 0 bytes .../inf/st/openapi/ast/PathItemObject.class | Bin 27088 -> 27909 bytes .../st/openapi/ast/PathItemReference.class | Bin 7689 -> 0 bytes .../inf/st/openapi/ast/PathsObject.class | Bin 7761 -> 7807 bytes .../tudresden/inf/st/openapi/ast/Post.class | Bin 12157 -> 14240 bytes .../inf/st/openapi/ast/PropertyItem.class | Bin 5080 -> 5080 bytes .../de/tudresden/inf/st/openapi/ast/Put.class | Bin 7314 -> 4522 bytes .../inf/st/openapi/ast/RequestBodyOb.class | Bin 6295 -> 5950 bytes .../st/openapi/ast/RequestBodyObject.class | Bin 13846 -> 13852 bytes .../st/openapi/ast/RequestBodyReference.class | Bin 7825 -> 8060 bytes .../inf/st/openapi/ast/RequestBodyTuple.class | Bin 5147 -> 6616 bytes .../inf/st/openapi/ast/RequiredField.class | Bin 4343 -> 4343 bytes .../inf/st/openapi/ast/ResponseOb.class | Bin 7319 -> 6980 bytes .../inf/st/openapi/ast/ResponseObject.class | Bin 18769 -> 18775 bytes .../st/openapi/ast/ResponseReference.class | Bin 7723 -> 7967 bytes .../inf/st/openapi/ast/ResponseTuple.class | Bin 5108 -> 6565 bytes .../inf/st/openapi/ast/SchemaOb.class | Bin 11632 -> 11374 bytes .../inf/st/openapi/ast/SchemaObject.class | Bin 45073 -> 45079 bytes .../inf/st/openapi/ast/SchemaReference.class | Bin 7655 -> 7905 bytes .../inf/st/openapi/ast/SchemaTuple.class | Bin 6484 -> 6531 bytes .../inf/st/openapi/ast/ScopesTuple.class | Bin 4721 -> 4721 bytes .../ast/SecurityRequirementObject.class | Bin 9926 -> 9926 bytes .../ast/SecurityRequirementTuple.class | Bin 7603 -> 7603 bytes .../ast/SecurityRequirementValue.class | Bin 4387 -> 4387 bytes .../inf/st/openapi/ast/SecuritySchemeOb.class | Bin 5721 -> 5727 bytes .../st/openapi/ast/SecuritySchemeObject.class | Bin 14254 -> 15182 bytes .../openapi/ast/SecuritySchemeReference.class | Bin 7927 -> 8153 bytes .../st/openapi/ast/SecuritySchemeTuple.class | Bin 5186 -> 6667 bytes .../inf/st/openapi/ast/ServerObject.class | Bin 13354 -> 13354 bytes .../st/openapi/ast/ServerVariableObject.class | Bin 12565 -> 12565 bytes .../st/openapi/ast/ServerVariablesTuple.class | Bin 5220 -> 5220 bytes .../de/tudresden/inf/st/openapi/ast/Tag.class | Bin 4295 -> 4295 bytes .../inf/st/openapi/ast/TagObject.class | Bin 12041 -> 12041 bytes .../tudresden/inf/st/openapi/ast/Trace.class | Bin 7322 -> 4530 bytes .../inf/st/openapi/ast/XmlObject.class | Bin 10776 -> 10776 bytes .../java/test/openapi/OpenAPIMain_test.class | Bin 6381 -> 7343 bytes .../classes/openapi.OpenAPIMain_test.html | 145 +-- build/reports/tests/test/index.html | 44 +- .../reports/tests/test/packages/openapi.html | 32 +- .../test/TEST-openapi.OpenAPIMain_test.xml | 113 +- build/test-results/test/binary/output.bin | Bin 60 -> 338 bytes build/test-results/test/binary/output.bin.idx | Bin 36 -> 36 bytes build/test-results/test/binary/results.bin | Bin 10717 -> 81 bytes .../1password.com-events-1.0.0-actual.json | 0 .../1password.com-events-1.0.0-expected.json | 449 -------- ...-dot-authentiqio.appspot.com-6-actual.json | 910 ---------------- ...ot-authentiqio.appspot.com-6-expected.json | 910 ---------------- ...tractapi.com-geolocation-1.0.0-actual.json | 219 ---- ...actapi.com-geolocation-1.0.0-expected.json | 219 ---- ...n.com-CheckoutUtilityService-1-actual.json | 107 -- ...com-CheckoutUtilityService-1-expected.json | 107 -- gen-api-ex/petstore-v2-actual.json | 0 gen-api-ex/petstore-v2-expected.json | 992 ------------------ .../tudresden/inf/st/openapi/ast/ASTNode.java | 135 ++- .../inf/st/openapi/ast/ASTNodeAnnotation.java | 3 + .../inf/st/openapi/ast/ASTState.java | 3 + .../st/openapi/ast/AdditionalProperties.java | 5 +- .../inf/st/openapi/ast/AllOfSchema.java | 5 +- .../inf/st/openapi/ast/AnyOfSchema.java | 5 +- .../inf/st/openapi/ast/AttributeValue.java | 3 + .../inf/st/openapi/ast/AuthorizationCode.java | 5 +- .../inf/st/openapi/ast/CallbackOb.java | 20 +- .../inf/st/openapi/ast/CallbackObject.java | 19 +- .../inf/st/openapi/ast/CallbackReference.java | 79 +- .../inf/st/openapi/ast/CallbackTuple.java | 23 +- .../inf/st/openapi/ast/ClientCredentials.java | 5 +- .../inf/st/openapi/ast/ComponentsObject.java | 7 +- .../inf/st/openapi/ast/ContactObject.java | 7 +- .../inf/st/openapi/ast/ContentTuple.java | 5 +- .../tudresden/inf/st/openapi/ast/Delete.java | 117 +-- .../st/openapi/ast/DiscriminatorObject.java | 9 +- .../inf/st/openapi/ast/EncodingObject.java | 9 +- .../inf/st/openapi/ast/EncodingTuple.java | 5 +- .../de/tudresden/inf/st/openapi/ast/Enum.java | 5 +- .../tudresden/inf/st/openapi/ast/EnumObj.java | 5 +- .../inf/st/openapi/ast/ExampleObject.java | 9 +- .../inf/st/openapi/ast/ExampleTuple.java | 5 +- .../inf/st/openapi/ast/Expression.java | 39 +- .../inf/st/openapi/ast/Extension.java | 5 +- .../inf/st/openapi/ast/ExternalDocObject.java | 9 +- .../de/tudresden/inf/st/openapi/ast/Get.java | 159 ++- .../de/tudresden/inf/st/openapi/ast/Head.java | 117 +-- .../inf/st/openapi/ast/HeaderOb.java | 18 +- .../inf/st/openapi/ast/HeaderObject.java | 15 +- .../inf/st/openapi/ast/HeaderReference.java | 79 +- .../inf/st/openapi/ast/HeaderTuple.java | 23 +- .../inf/st/openapi/ast/Implicit.java | 5 +- .../inf/st/openapi/ast/InferredParameter.java | 190 ++++ .../inf/st/openapi/ast/InfoObject.java | 7 +- .../inf/st/openapi/ast/ItemsSchema.java | 5 +- .../inf/st/openapi/ast/JastAddList.java | 3 + .../inf/st/openapi/ast/LicenseObject.java | 7 +- .../tudresden/inf/st/openapi/ast/LinkOb.java | 18 +- .../inf/st/openapi/ast/LinkObject.java | 15 +- .../st/openapi/ast/LinkParameterTuple.java | 5 +- .../inf/st/openapi/ast/LinkReference.java | 79 +- .../inf/st/openapi/ast/LinkTuple.java | 23 +- .../inf/st/openapi/ast/MappingTuple.java | 5 +- .../inf/st/openapi/ast/MediaTypeObject.java | 9 +- .../inf/st/openapi/ast/NotSchema.java | 5 +- .../inf/st/openapi/ast/OAuthFlowObject.java | 9 +- .../inf/st/openapi/ast/OAuthFlowsObject.java | 9 +- .../inf/st/openapi/ast/OneOfSchema.java | 5 +- .../inf/st/openapi/ast/OpenAPIObject.java | 737 ++++++++++++- .../inf/st/openapi/ast/OperationOb.java | 125 --- .../inf/st/openapi/ast/OperationObject.java | 139 +-- .../de/tudresden/inf/st/openapi/ast/Opt.java | 3 + .../tudresden/inf/st/openapi/ast/Options.java | 117 +-- .../inf/st/openapi/ast/ParameterOb.java | 18 +- .../inf/st/openapi/ast/ParameterObject.java | 15 +- .../st/openapi/ast/ParameterReference.java | 79 +- .../inf/st/openapi/ast/ParameterTuple.java | 23 +- .../inf/st/openapi/ast/Password.java | 5 +- .../tudresden/inf/st/openapi/ast/Patch.java | 117 +-- .../inf/st/openapi/ast/PathItemOb.java | 199 ---- .../inf/st/openapi/ast/PathItemObject.java | 200 ++-- .../inf/st/openapi/ast/PathItemReference.java | 263 ----- .../inf/st/openapi/ast/PathsObject.java | 45 +- .../de/tudresden/inf/st/openapi/ast/Post.java | 172 ++- .../inf/st/openapi/ast/PropertyItem.java | 5 +- .../de/tudresden/inf/st/openapi/ast/Put.java | 117 +-- .../inf/st/openapi/ast/RequestBodyOb.java | 18 +- .../inf/st/openapi/ast/RequestBodyObject.java | 15 +- .../st/openapi/ast/RequestBodyReference.java | 79 +- .../inf/st/openapi/ast/RequestBodyTuple.java | 23 +- .../inf/st/openapi/ast/RequiredField.java | 5 +- .../inf/st/openapi/ast/ResponseOb.java | 18 +- .../inf/st/openapi/ast/ResponseObject.java | 15 +- .../inf/st/openapi/ast/ResponseReference.java | 79 +- .../inf/st/openapi/ast/ResponseTuple.java | 23 +- .../inf/st/openapi/ast/SchemaOb.java | 18 +- .../inf/st/openapi/ast/SchemaObject.java | 15 +- .../inf/st/openapi/ast/SchemaReference.java | 79 +- .../inf/st/openapi/ast/SchemaTuple.java | 9 +- .../inf/st/openapi/ast/ScopesTuple.java | 5 +- .../ast/SecurityRequirementObject.java | 9 +- .../openapi/ast/SecurityRequirementTuple.java | 5 +- .../openapi/ast/SecurityRequirementValue.java | 5 +- .../inf/st/openapi/ast/SecuritySchemeOb.java | 17 +- .../st/openapi/ast/SecuritySchemeObject.java | 95 +- .../openapi/ast/SecuritySchemeReference.java | 79 +- .../st/openapi/ast/SecuritySchemeTuple.java | 23 +- .../inf/st/openapi/ast/ServerObject.java | 7 +- .../st/openapi/ast/ServerVariableObject.java | 7 +- .../st/openapi/ast/ServerVariablesTuple.java | 5 +- .../de/tudresden/inf/st/openapi/ast/Tag.java | 5 +- .../inf/st/openapi/ast/TagObject.java | 9 +- .../tudresden/inf/st/openapi/ast/Trace.java | 117 +-- .../inf/st/openapi/ast/XmlObject.java | 9 +- src/main/jastadd/Composer.jrag | 20 +- src/main/jastadd/InfSchema.jrag | 69 -- src/main/jastadd/InferParameter.jrag | 209 ++++ src/main/jastadd/OpenAPISpecification.ast | 48 +- src/main/jastadd/Parser.jrag | 55 +- src/main/jastadd/RandomRequestGenerator.jrag | 67 +- src/main/jastadd/RefGet.jrag | 84 -- src/main/jastadd/Reference.jrag | 83 ++ .../tudresden/inf/st/openapi/OpenAPIMain.java | 6 +- src/test/java/openapi/OpenAPIMain_test.java | 13 +- 237 files changed, 2960 insertions(+), 6469 deletions(-) create mode 100644 build/classes/java/main/de/tudresden/inf/st/openapi/ast/InferredParameter.class delete mode 100644 build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationOb.class delete mode 100644 build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemOb.class delete mode 100644 build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemReference.class delete mode 100644 gen-api-ex/1password.com-events-1.0.0-actual.json delete mode 100644 gen-api-ex/1password.com-events-1.0.0-expected.json delete mode 100644 gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json delete mode 100644 gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json delete mode 100644 gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json delete mode 100644 gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json delete mode 100644 gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json delete mode 100644 gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json delete mode 100644 gen-api-ex/petstore-v2-actual.json delete mode 100644 gen-api-ex/petstore-v2-expected.json create mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java delete mode 100644 src/main/jastadd/InfSchema.jrag create mode 100644 src/main/jastadd/InferParameter.jrag delete mode 100644 src/main/jastadd/RefGet.jrag create mode 100644 src/main/jastadd/Reference.jrag diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin index a499544384f3abbdc40b9561ceefff3753b3016b..aaba02d75fe31398597c121cc0b19bc6e52f995e 100644 GIT binary patch delta 18664 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 X9Mpa}IJo_Ca7g>*;LzolgTsOV7zI^9 delta 15320 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 diff --git a/.gradle/6.8/executionHistory/executionHistory.lock b/.gradle/6.8/executionHistory/executionHistory.lock index 59ea3d89546ac9cc38d3a8072cdddbd5f9c35126..d16cb354f0f9f5cc5ec53b3e735701650262b67e 100644 GIT binary patch literal 17 VcmZQp+O{L7ZHdZl1~8CT1pqT-1Ze;O literal 17 VcmZQp+O{L7ZHdZl1~3q>0su3y1iAnK diff --git a/.gradle/6.8/fileHashes/fileHashes.bin b/.gradle/6.8/fileHashes/fileHashes.bin index f30fa9596b32845baa38429dc3994ec8e2dd15d5..cf965ac5d49fff3e8cab66b14a974d16d26a6175 100644 GIT binary patch delta 11387 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 aYndhM(X#3_cn&J<*ObkW;1swH3Qho16O{7+ delta 11245 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 N@<?spYssU-4gj$Vz}o-- diff --git a/.gradle/6.8/fileHashes/fileHashes.lock b/.gradle/6.8/fileHashes/fileHashes.lock index 21d91eace8079df466ca307e4dcde4cd7b8f22c1..cb391c8e73b37df48baf1fa11665be1ffaf20562 100644 GIT binary patch literal 17 WcmZP;t>XHyYn^sA0|>B4cK`q^a|A*F literal 17 WcmZP;t>XHyYn^sA0|+orm<|9fX#~Xp diff --git a/.gradle/6.8/fileHashes/resourceHashesCache.bin b/.gradle/6.8/fileHashes/resourceHashesCache.bin index 81b32a3cf37a2a7cfd402c3d514832dea26b8ac5..d6264f7a12c94e41f3c7cc034481fa20516ff28c 100644 GIT binary patch delta 13954 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 delta 2011 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 diff --git a/.gradle/6.8/javaCompile/classAnalysis.bin b/.gradle/6.8/javaCompile/classAnalysis.bin index a7e0e4e7e8ae9d7ee1345318ebc2f6c7f8bcefd6..b99b7450fdac43df568d510d40d3a3e85c37dd03 100644 GIT binary patch delta 17985 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 K^OTvvSPcMe%0UbO delta 2276 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 OHH_u9YZ%MdEdu}!yeAs~ diff --git a/.gradle/6.8/javaCompile/jarAnalysis.bin b/.gradle/6.8/javaCompile/jarAnalysis.bin index efcc0bb0aae97a68b965ff0ecccce97d66c979cc..ac96b278f1224cd2b9fa222d23da6ba6b97c6e23 100644 GIT binary patch delta 77734 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 aL5!Pp7#JQ*pEx?MF*>fHLhEr2#-#udJA38; delta 225 zcmdn{d?n+lUlkinBp3@f`$}*yPR^B-m^@c<#pGD2m6PS9Z%pQsiJv@I=Emk;*+9n4 z-{kHyPJXN4IoVIKe=@I<$K+O}ipj3ZhLii0<0rGKR7_s0;=%JD3K$r;R&G@MA->U| zfVbJvqutSivE9*wsol|ox!uu&rQOkkwcXK!t=-Xsz1`7+qutSiv)$2ytKHFqyWP=) zr`^$mx82c$uiepuzunP8pxx0!u-(x^sNK;+xZTl1q}|a&wB6A|tliN=yxq}5qTSI$ Xvfa@`s@>5;y4}%3X1k+@Eaz7MVkl3+ diff --git a/.gradle/6.8/javaCompile/javaCompile.lock b/.gradle/6.8/javaCompile/javaCompile.lock index b01e4c9381f02895d9d91919b447a4a3c89a7bf3..e95653f3358b7b4b9e46a740af5a8ffac2a73827 100644 GIT binary patch literal 17 VcmZS9_jn)L_pnKx0SuIO001ya1gQW3 literal 17 UcmZS9_jn)L_pnKx0Sx4M0WX*X`v3p{ diff --git a/.gradle/6.8/javaCompile/taskHistory.bin b/.gradle/6.8/javaCompile/taskHistory.bin index 5908545b1ffb6056bb1699e06e1fefed16243906..c65acd9a0389574a56351e8b66ec2ac9e182f513 100644 GIT binary patch delta 35 rcmdnfz_h1<X@hZ*z;4}uP5E}V5wVd?)6W`j=bpSj&1-XS(RyA02mucd delta 35 rcmdnfz_h1<X@hZ*fWaZnLzAvu>b7k5IG|@gw|esaG_TFQMeBJ19()iz diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 5074092233a6914190b42f834c58c8e3b895b6a1..bd0780680a6198187999ff55adcdada324b0b51e 100644 GIT binary patch literal 17 UcmZRMRkTpz>bjrL00tU!03f^rf&c&j literal 17 UcmZRMRkTpz>bjrL00zp203b&L5&!@I diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class b/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class index abae77c242d23ef8694fa9577f49f8353d247ba2..aa618c01456960dec5361e8ee8f6bdc57662b1c5 100644 GIT binary patch delta 1100 zcmdllwppzH)W2Q(7#J8#7-n-Zs4)bwGX!%nFoEb0E(R8cAP$C5c7`x626l#U4u%L2 z9SI_$xEVYcqB$927-B)JI4*{Gh6E0VM0SQGE{0@=6fTBThBPh)Z-#Vsh75LwOfCj7 zkXczEIvYgfa50E7gtIef=W;Q~Fa&{!JPw9@4u%4dQH3Bk6oH6hc7_rz1{IKlN;fV_ zU{W?_XDDN5C}(G=U}vagXQ*OlsAgo~a;->CEhx#%&nsqUsF|$6ti-I&pfTB=)o8Lm zv#FgrLoFkNh@O6NQL=t+VrHIxQEG91X;E@&F%Lr>Lp={e14APZLlZ+YJ3|W(Ln}iY z4?{ac2RlP24?`D2_vAy&_QE|p4806}><s-p3=<e8@-R$dXq+s<62U#0VG0k!RE9=I z2Ia}~*+nP!um~_uW0*d9K8reU7eg%%!wiO*JPflKG$vnW$=h7WdWgwZEj=|awJ5P9 zH7K>PG_|;-I6Si?!!s`}wWugHB_OdVF*mg&wWydukwK6_jR6Fh7#JDU88jFe88j#7 zafl^rF)%Q&F)%VPFvv1!GcYjlfZ41JIt;oD3=EtMdJOsuObnU~3{05}EDU@M42(j% z8JHrsGcfz?W?+fj&cJHLBE)9Jx|@MLQj&E$1BVqGh$+MgVsc1wY-8Y>e4j(Eo_i+) z4--Rp3peBP|Bp5?@Jh1mWZ+|D*v7ywBw)oUB)E-1NRo3KgRm7BqZPL#*D(eWkTH^6 z+ZaSZCUGxk-~$VQ&E=NlKF%P&n?W>kH-lK@b_Q`FiERv$ApMft7^Jo{NbldxAQQQr zK~|Cr>d1PQZ47c&JewGJVLIetI)oIqF@UsfV^Gu%m*m;OpyZ>yjX`-ggG%If230Fw zt$p(tIJB6JtT;C^Ffgz%fI=*dL6U)iL6L!jL4`q(L6t$2L5)FyL6bq7L7TyYL5Crf zL7O3(L6;$e!Hyw^!I7b&p23Nsn!%Z&fx(4gB7+;l90m`Dg$$kydl`HfE;INtd}8ot z_{9*w@Q)#kk)0uek%u9YQIH`993@o@JPaNTybJ~mh73HQ2w*T`FlJz2;9%rpFkvud zU}O+vWMnX7FlS(45M}twV8LL?z{;S&@QJ~S!H|KCL7U+@L%lVFAp-|P4#P4A8wN`T zPKFAGSq!!eb_`q$)eO_YMsqV<X0T_lXK-NPVPt3EW^iP1V&G+PW?*0tV_<?>;ljWI zm2+j_WpHC)V6bIi`_Ev-z{Aeq&d$KZz`)Mn!Oq~x&H#q&3|@?k3=BUQ6tw>_n1aQ< k*%{cm6#g;<vorXxGx#$2fy0!M!JmPVA%KB_fr%jy0Jdz#NB{r; delta 1132 zcmdliwqLCN)W2Q(7#J8#7-n-Zs4xVwGX!xlFfjyjFa)zRgm5viGK6w4gn{UA5D~%6 z;KmTi$q>a54PwP`F~l;&aWKTQGbC^^Br+s%F(fmja4~o?q_Q)lu`{G|F^GW7$^g-s zAR>#4L6{+wogtfxL5d-ei$Ph6A%}w@mxCb>WK=#EgBL>qh$v)dDB@yJ0y(I7<EjKE zHA8lW5_X1Cc7`%`hH`d>3U-D{c7`fO1}@i%<kW(a%>2A!c82Q7y39(<stjtAo0!d+ zRT*j~?_riys%5C-VW?+l;9+QFXkuq*=3!`IXysvOV`yh*=-^@KWaygwo!MTvn}?x? zp_iSZkB6b3VFC}sM23dRo-7gElNcuRFic@+U}R99Y{(=k>|c<Y=U9+w9FSO4oLa=g zFqL82<SQ)dyqyd+JPgwrX7Dh~WSBLXgEfy)cXBPGE;A#8+GIl}was%`XEW6cq^IVk z7A2OX2Bj93rWThJGcpKjX!>L&mL=+!mSpDW`z97xGbl3fGpI0t022cvgDQg>10#bv z0|SFT10w??0|NuA)^-NQjSLJ7Obi+f3=C{wL0JY(1_lNmFq@S@i$R-#fq|1jhe4Nt z38a~+hJl4amydygk#jc#Q{;9AW-AsU7Aw}>46KootlJsbtk^(IA$AaxLy}_~1IOfd z9CG!XI~ll`7{Xh)8JGWmw26URl4U0Y4<o}i23{dPD^4N)Z43gEoZA=#t+*JixFxxc zF^GVSk>uLOAOtdrdpQFiSb!7EljJ_mAitYIIC3|GNaS_~Q6aHy4B{aD;@cP`wlhfX z-_0Nuxt&2;k_+m{dX{YrGFCjB7`S0NWMMjl<hC(@v~6RMm*m;Opx~pujX^PdH-l2- zb_QiDUafue7&x?;jjT99A;kg?sU!vo1_lNd22KW523`g=1_=gD24x0q1_uTm244nk zhF}I=h6DyXh7<-zh5`mBhGK?#XNC#}7luv-H-;$;9t<-XJQ=n!_%NJi@MU<#;Lq@Z zA%Nj4Lm0z9h6qMxhDb&Zh8S=(R59={I56-s=rQOs@PNXc!GOV#fq~%zgCv6ygE0dm z11BRW*O@Y~Fz_<`VK8GbXJBQJVED*j!JyB;#-PmbjKPvYpMj&EA%$TngB62011CcP z!%PNi1{(%0hGK?kV57MiPBYjs*fQ8L@G$&i;AXG~Tk6Qbz#zuJ1hvA6fdwk(%)raw z!oa`~%fR-Z!H9u}oxzoXfq|XDjh(@roq?5soq?5|!Gn>Jf#C;(!aoL6kgywrCp!Zx xm%@LBAO=2m23K|lFAOd2>|jOg4BqSvJ`4;Dz6=ZuEDVecehiEZ{@_#^006`W#J&Ik diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$1.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$1.class index 5e1fbb4a776c89d9fabfa648d956fccd79af499f..25900144f8979ce2015de084c710d107396b0f91 100644 GIT binary patch delta 41 xcmdnQy@`9n8D`cD22O^|$rqW^8FMFFvJ^2EO<u#2##laCnAMLlV{#H}000$143_`^ delta 41 xcmdnQy@`9n8D`d022O^w$rqW^8M7u^vJ^4qPhP{4##l00nAMLlb#fAG000x;421vy diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class index 311f3b9c7938b78d0763dedb4f0c2e0edf67c016..0f4444b4db71aaed88c627f2cf651de26fc36976 100644 GIT binary patch delta 19 bcmbQtKAC;PJtoHb$@iI}8Ji|sGe-abN67}j delta 21 dcmbQtKAC;PJtoGQ$@iI}C*NaYo9w_G3;<df2eSYG diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.class index 48ae3e244a16d4f7eda03a61f45b99951758cdc3..a8c43ee2b3cf3e3c717bf384118451797e982bee 100644 GIT binary patch literal 17153 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 literal 13454 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Kind.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Kind.class index 6174300b7919c6de937f1d509b8951196f9038a6..ed962ef583327fd7e538e079240f85a9c06bac19 100644 GIT binary patch delta 31 ncmey%`ImFUD`rNo$*-C98NDV;v)D0uO^#w|VDy@Nn?(r#yVMGM delta 31 ncmey%`ImFUD`rOb$*-C98QmvKv)D1ZPmW?~V052+n?(r#yDSQC diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.class index 3f1b78730828169c64c7d190a3f127af4d89dde9..ea545b03488957fc53e778a9c07c373591f58c35 100644 GIT binary patch delta 13 Ucmey${*`^h1ZGC5$rG7V04G%h;s5{u delta 13 Ucmey${*`^h1ZGC@$rG7V04GKS-v9sr diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircleState.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircleState.class index 8767e0986079f90f0e3dcefb2e0428ceb03b8a15..3b861aca09e01a9a66e5b506ff24ec1fc8b7f4ad 100644 GIT binary patch delta 37 scmX@Xc7kogM<&T21{MZ)22KVq20jKK24Mz&1}TPM26={%$z05K0G;&)!vFvP delta 37 scmX@Xc7kogM<z*s1{MYv22KWd20jK)24Myt1}TOB26=|S$z05K0GyBpt^fc4 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircularValue.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircularValue.class index e6a6e5982e4a729ef0387a2107dac15054c60eff..f869b07f299cce06a27995277a154c3a6b285410 100644 GIT binary patch delta 13 Ucmcb|a*t($CKIF5WGyBW03dAxwg3PC delta 13 Ucmcb|a*t($CKIFlWGyBW03coivj6}9 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$Cycle.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$Cycle.class index cc3876bfb3c8b85c2ec98b731cf2ff106b9b6ba7..8a1a82a9d966f5ee5b4a490ab831e2288d407794 100644 GIT binary patch delta 13 UcmbQmJd1flE+eDC<UB?l038?uxBvhE delta 13 UcmbQmJd1flE+eDv<UB?l038VfwEzGB diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState.class index 0befc72dd95a63482ef1ca0ea232f4dea0946006..aea6604afe290baa1980065fe59ff4b8c598aec0 100644 GIT binary patch delta 223 zcmbOxJxzK;4m)G!<OA#qlY7~X7z-vJU=Ls|XW(V1m>ka`I$4XufVGZ+m!W=gJclP| zD+3Qh8-pN2`{a!rm7KE})EQ<om@&+mY|NR(x{QI7Vfo}moX)Hp8MqlXO@77c%esSs zn_=f<8!k`I{R|uo2N(nx4o=?4Av}2@ml@-U$v3!c7|%}@<#u4b&cMNNV{#O?C+9r| z4u<;-0t^qp>h^P+F+QLCjoY5_-DEQ!2iC6)91PzkSM&Js{$gNZNM_(>n7|;$@O$z# b9(&gR4D5^ylcjilS*;kj7@{ZV@M-}7^VvV& delta 223 zcmbOxJxzK;4m)Go<OA#qlY7~X7;`5dU=Ls|Vc=ybogB|0I$4XufVG-|m!W2IJclP| z69W%JGlL*Q%jAt5m7LQV)EQ<lm@&+pY|NR(x|o5JVaeo0oX)K47`PeMPkzPe%es|; zn_=5z8!k`IJq#QSdl>{6_D$Z%Av}2@ml@;H$v3!c7|%==<#u4b!ob0Bb#fH9C+BSj z4u(4n0t|P->h^P+F+Q36joY5_^<*<12i8vv91Nc)SM&JserI4|NMPV*=w%RN_%Zn! bk3H)j26l$OlcjilS<M-^7$PR;@M-}7(8WMz diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AdditionalProperties.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AdditionalProperties.class index 065df7b7ffcff60917b4b74774b4ba97c41ee3dd..264d393ad55589deb05e635ab94e81f3f404512f 100644 GIT binary patch delta 291 zcmdm{yiIw-GEP<{1{Mb8$?@ExlMirev+6K#Fz8PH!0E(k#=yd0&cMZBG1;0cozZsk zVlGQYm&tdzY*@V*SQxy)I*hs1SpyhY7y>89b33wzF>o-1PhQGBO)`#wl_8#iiy?tQ zkRg#lo*|h*ks*aai6M1z2v0U+(c}X>b&53%tPHgbJPdUV;tcf+atsX&N(_w*>I_W` zx(sy;#tdzf<9X*OPGn$Zn8d)tFquJ|VG4sR!&C-EhG`6H4AU8O7$!3qG0dJU!<Wan zaB?@F2kS}(HilJ`Z}53BZknvjAIP|S@&``Q$zA;FjQhc^J<hMfczE&~ej7&F$(jNn eG7U^F7Vuz{o%{yOE)bNN>?)|mC_A}8&<y|z$weFh delta 291 zcmdm{yiIw-GEP=`1{MZ|$?@ExlMirevuZMMFlbHw!0E(k%)r86!obB~I@y{lozZIY zVlGQY$H{lOY*^hHSQtFOI*hs1S$!E;82l#3b33vIGjK43OkT=8O){E+l_7?Kiy@Xl zkRgsio*{ujks*;mi6Lon2v0U+{^SEZb&8b?tPE8QJPg$g;tVwmatyT$N(^-j>J0S^ zx(w9}#thAq<9X*O_A#(B^fT}<Okfaan8+Z@Fo{8tVKRdn!xRP`h6xNt3^OLn@Z~Yi zo7~Ok!McorjbZuZ8+=}j>nAJo2Qu!M{DD(+au>fk;~ubUkMpZA9+>=w--c0YvZert eOaqgP1w0s~Ccgo*3j}2*y9#PCN=+^hbOQjaOhkGB diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AllOfSchema.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AllOfSchema.class index 5e925f51f878c74a554d9b2edb995a35ad33f622..1dc2be15765f85b7b476600f04844f8a077fd243 100644 GIT binary patch delta 287 zcmbQFJV|*&6DO+@0}F%l<aSO6RviWo2HnYl{GyW|a_VxLF|aV0GjK6jOcv)#XSAJM z&t=KzGP#~hbn-babyhD176$Lhzqo8z0~lBs0w-H@JF<o`a4>{VZseXO8OOlN5YNEH zkia0wkjNm<kj$XSkiwwEkUH6bC!4Wo@*JKz#To`yhFS(5hB^juhI$4$h6V;DhDHW; zh9(AGhB^jghPKJpymJ&MGO#jCV&Gwz%plG%g+Z2KDuW`!GzK+>=?ppylNpQ{W>5aX zo5#3tayp*}>q-VThE<cd@Od$AnjFY4JXwg}j&b+oKz<v>{geCnEg26_KEZFpC_9-| f07N>0$$9|~M%l?Hz-%8unaPTRT8y%jeFWVA1Pnov delta 287 zcmbQFJV|*&6DO-Y0}F$~<aSO6R!s&D2Cd0~{GyW|a_Vv#Gq5n2FmN%LP8R1%XSAAJ z&t=KzIJurnbn-babyjx<76y;Wzqo8zeHmC7{3cs-JF*5da4>{SZseXO8O^}T5W~R5 z5X&IQ5XT_TkiekGkjS9KkTltVCz~;U@*JKz#YzTNhAIXghH3_Jh8hMrhFS(ChB^jy zhI$5FhH3_5hUUrEymJ)$7+4wl8F&~bFo-iuWRPW;#GuG9nL&+V3WE;A1O_998IynT z<}uEjoX+RLx{QI1Vfo}Od|r&}CkOHiPZr|0W85)0kl%)J&*VOSOU46}Pw?9?N=;@J f0Fh2$vR=T0QEKuDFxy8^X0oE77NgW;A3-+&r_Vs} diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AnyOfSchema.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AnyOfSchema.class index 1523089899da17e3d906bba97e6cea6cc7e037e4..c94338131175ad0de462de2cd5e93714052bd6df 100644 GIT binary patch delta 287 zcmbQFJV|*&6DO+@0}F%l<aSO6RviWo2HnYl{GyW|a_VxLF|aV0GjK6jOcv)#XSAJM z&t=KzGP#~hbn-babyhD176$Lhzqo8z0~lBs0w-H@JF<o`a4>{VZseXO8OOlN5YNEH zkia0wkjNm<kj$XSkiwwEkUH6bC!4Wo@*JKz#To`yhFS(5hB^juhI$4$h6V;DhDHW; zh9(AGhB^jghPKJpymJ&MGO#jCV&Gwz%plG%g+Z2KDuW`!GzK+>=?ppylNpQ{W>5aX zo5#3tayp*}>q-VThE<cd@Od$AnjFY4JXwg}j&b+oKz<v>{geCnEg26_KEZFpC_9-| f07N>0$$9|~M%l?Hz-%8unaPTRT8y%jeFWVA1Pnov delta 287 zcmbQFJV|*&6DO-Y0}F$~<aSO6R!s&D2Cd0~{GyW|a_Vv#Gq5n2FmN%LP8R1%XSAAJ z&t=KzIJurnbn-babyjx<76y;Wzqo8zeHmC7{3cs-JF*5da4>{SZseXO8O^}T5W~R5 z5X&IQ5XT_TkiekGkjS9KkTltVCz~;U@*JKz#YzTNhAIXghH3_Jh8hMrhFS(ChB^jy zhI$5FhH3_5hUUrEymJ)$7+4wl8F&~bFo-iuWRPW;#GuG9nL&+V3WE;A1O_998IynT z<}uEjoX+RLx{QI1Vfo}Od|r&}CkOHiPZr|0W85)0kl%)J&*VOSOU46}Pw?9?N=;@J f0Fh2$vR=T0QEKuDFxy8^X0oE77NgW;A3-+&r_Vs} diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AttributeValue.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AttributeValue.class index ebac92482c9179070b16dedc13d012e1979d23bc..a2f7efc5ad636ce99733afb1901e8ca56e9d0fab 100644 GIT binary patch delta 69 zcmX@heU^Iz6APy%0}F!|11E#_WNwxgP6GxG215p62II*ySY~iqF>o+gGYB)-PPSxi V6jo$lV&G<AU|?cUW>5jsssNeD33&hj delta 69 zcmX@heU^Iz6APyr0}F#X11E#VWNwxgPF)5L20aF027}2nSY~jVGjK3iFbFePO}1oh V6qaLPV&G<AU|?cUW>5jsssNP+30nXF diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AuthorizationCode.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AuthorizationCode.class index 9ceba40b2469a0bf017f5a1e93211d89c86c051a..b6929d53382fa2e7cb085c3ffd0bf33b8f5d17f8 100644 GIT binary patch delta 287 zcmaE){78AjB~Df)1{Mb8$=5j@SaldU7<4Bu<QJW6$fe6^#=yd0&cMZBF*%(pozZsk zc`i#vm&xb3L?_E}tFwABurPQ}_Tsi-4Panl2%Ox_?Z_I&z`+nc`6Bl;$v6g9hIj@p zh6DydhC~K=hGYgsh7<-RhSbRoJlTvzli%>vDb_HsGSo8gFw`-KGt@K4F*GnJF*Gu$ zGc+;iGSo2`Gqg?a=AENBk%5(A5(5vzWCn4DDGag<QyCN)rZK27OlQzxn9N|rFnh8G zUmoMa$=mrnSXVNzF|3-*!tcenY4SpT;mJw-c8t3xFXXpj+&}pqza``0$r1uKjIxtM g!Q><`d0xPSQFgL~AV_?Upv>e#K`lnv$#VqV0I@SfNdN!< delta 287 zcmaE){78AjB~Dg(1{MZ|$=5j@STz|q7_=rY<QJW6$fe6^%)r86!obB~Iys#yozZIY zc`i#v$I0ipL?_E}tFyW@urPQ`_Tsi-^<`jT@SEJt?Z_I;z`+nQ`6Bl;$!G>vh8PAe zhFAtchByX!h6DyhhC~J>hNQ_2JlTx-li%>vDONJDGE_0}FjO;$Gt@B1G1M|BG1M`r zGt@KaGE_4dGc-@`=AEP1$H2<a&%nblfkB*MB7-c$BnCx>$qZ@?Qy6p@CNLN=%$V%K zm&Z77@^(HC)@2NA49h38@Ov??pS+M?cybcI9pjG43;Asr_e{RWZ^?LIvV?#QqtxV3 gFgXcKo)_?7l$tCd2oj$oC^NZGP>WG&@*F`o096G;rvLx| diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackOb.class index 9d3d5265292e9a45e5cb57fa8662ccb8e33e7dc9..206f53e1bc1418661db6318f77dfc048558bedf8 100644 GIT binary patch delta 2113 zcmcbqH%X`d)W2Q(7#J8#81}I<6mT&xG8A$#6fqRDGn8;Kus}GaAXXVjxSX4zf}xU| zp^BlJo57Ny21L}dGt{v&)PtlOxELB4nz$JF7@9#QwSdH0*%{hEy4txIL>M|i!kr*) z7Z-yv$aH;WhHenE2SoI;GxUMzel7-Ch6x~IB8Zp-A||slOkro3y76cnli)N)1}@i% z<kW(a%>2A!c82MjO_&cbGS1lim8GANan|HkwiL$MlV7oUG0vH6%D$J~#DbB*NJDe- zLso6UtkmQZYeojnpwzU~qSU<P)X8($-38%1y{w|dbSo3%&FvgAjC^(s_UsIEc^Kv~ zxG^#qPEO=enEZf+WAXt;PE8($`3wtq7#1=t;$c|Ku!NmqDG$RkhUM%GD|i@IGOXfZ zSk2(Z!?1=SXR-&Elk8fCb?gl5c^Eb@Y~*3EW7x#Qu$f^C55rc5C5#N3U~>-$aH{bz zY-89ClHb9@u#;gI55sPTJv<EV4E8(>9w5S#A&Zeg3#|MB3zrNJLncEO4?_@x7Y{=q zi0}mwo(x`$4C<2;dDJH-b2qc>Wn{3PoXBG|S%#;6@&``!$uoJpCx7RCHo1sXaq>St zE>Tc`Ffwo!Bo-B?1|*hbFfw#$_)PxDDL2`iKa~R{Yt6{uI(Y%V9SexF`5u27W4$bc zG6N%n3IhX!2m>dBDuWsWGlMz<17kY_I|Ca71H=B^42+T68JPUEwlOfzWRTd+z!JHg zfz^sdl0|D91KTzRc1e~ETH6>njxo4^sGSU)j0`&&xEL8gN_H}EGcwF%(2``?$-u+N zaDai=idA<v17D;htCl3|HU|EBZJiwq0^1n`w=oDU|9?qq8-p;!AYq~m5&;>sjX_wF zbti);6T@}}v26_E%l}`}(bC<?Ai>NKuDgMOfq{iVgMop;jDeSdfkBypgF%&npFxd5 zf<c`@v7SMLL4`q!L7PFFA&^0bA%{Vap_oCRVJ3qC!xjb;hP@1?44MoK3?2;Z3=#}H zV3jNkfeaE1It;oDtPC^ZECz=C40;Uu3?Q(d!GOV#fe{pZ3`Pvb3``6h4BHt@7)%+M z8O#_M7<k}v_2vvr3>FLw3{niNe;8EQ85sXCh_N$R{$enIGZ?JEeqdy<X0TykU|?df zWng5mW3Xpn1jQ7CF#{vmI99Fg43Znc3P9fFVqjumV6bLjVXy)F0AeRAg9C#j0|Nsi zgA>?*dUXZ{25qna0|O&MHyhYUS0tT`P@OCc&I~S4t977OGcm7$+Y8a@g`|@Ss*{ny zmB9^7XFaCYK&)Eb!OjJ_7TLd22p2>A8_vMO5P@U>!oMC^4XBq!HzAgRg&_{B37!mI z3{2o4cVb`!hc1`ab_SUP46;7jpk&4bPG%5yBr|X@q<~EkgQ$dt0S5yUgExaC10yt2 z>lqn*SQr_6!AARm(hh?^0|Nsn5Ca$(SQtUY0hkVA@B-7p3?U3m&~y+ARx8cG#1P5A z$Pksv5X%t9kjTKqkW|c&%#c#dkjlcyV8W2bz=%^}eKA8iNM!~CBd835#*RKTUO`Dp z4&gPBs~8w2gS~~GoU$>Z7Bgn2Bk6=Dih2P@h9HJ4412dR$fMgUi=-PGtpbh=fmk&w z5U1Ifp*{;5r3f!?V^AbQH#kH=0TRH#AmGU0$$-ruC4vUkGcZ6?0waSD*qj_J4kBz0 wvM~(I(DaeZkO$6|`3w=@5{8)}jA152xEd!zG{a1W7zas)cs7Qa3<+wS0DmJUH2?qr delta 2312 zcmbQFb5pPW)W2Q(7#J8#7|yXXlyWgJGL&&Ka59v$GgNRfus}GKAXXJfxSE}zhKr$= zp^l3|iJ=}O+yD}8<Ys7MXy#^UVQA%Muw!Tg5$)^@9qbI9An7hHhHi!)E(T$SUXTTS zAhCXSh6x~DZWFl}BpD`w#3zIJQ@9v3K(=ZyOa-x~fr#ns3^PFVOpvX!K*VeiF$YA< zWoMYj&M<%Dx;Q4m1&j<_t`*6t1tppJdByAu3pdL$A7Er$wD}%OKO^Ik$$4xk+)Ei5 zSiCdyQWzO5CUI&^<`&?Z%+JopxNNc<`(8%V$#>W-xY&YH)7(=_7#V^lD{{DVyQh}u zWfdi+TbWpFF5{44<Zxzi;bB<L;63>vzw+b*oWcSt7*_HytYTQr!?1>7EhB^4<OW{3 z$$MEj4A~jh@i44s*ucY}#h}f@u#sUC55s1LE$j?ic^I}aY-eZK!NahVVHXd>ZU%22 zhCK|0lYenK$?j#?$Ih^yhv5LjK^_KYhC@6IhZ&CWFdSvr!pNXGxsg#}awQkH$}xuH zAlVZ<3?~^*@i3fbIK#u>19F)!i11^`XJpWt+{mag`2rV<R31Y<4?{SEKMz9~hzJ4^ zehmJM4C<2^In^hNayPS_Wn{1hb3j3|kBw{cb?&msWjvmOJn5+=L8)n}MX7nosf-Mv z8j}T?R2elV3o=QG6v4#x;VP^rJ8+9l{KsaEMUIg{AU(CjH?g1~HN`nUuOv0Egpom2 z!zU}TEKxrvF)v-;IVZ8W*n09o4pBkg;?xr7#GIU@#N=%MBt{1P$%(AGlXvsHVg&h1 zVR9TF7e6BdXF+07acV$fNd_ZB+r)zklbQKaS*#fu948m>*=^p$m&RDH#Gt{z$e_u< zz#ziF35p2@W(FMw2F67U><nxS3=G$HGcZPOXJGQv+Qz^<lR<ws154y~239K;Nfxbb z3~bvN*d<xCw6`&E2yt#>;5xv-sjahvfqNSRk0i?mt!)gv#~55d)J_IIMuwdX{EQ4B zojVx>7#U_VXi2iv?_>~UWH`VeWW}nxn?X2Il2uERbsK{S$Q04-3}V|D#FziSq_vGf z0%DK^E`w0akp!8ujX^?^bti)q6T@}}>1_-$%l}`}(bC<?Aj`}UuDgMOfq{iVm!Y14 z!HR*8fq_ARfrCMbfuBK{L4rYrL6Jd~!Gb}J!J0vX!HGeWA%j7Sp_xI4p^HJ6VFQC6 z!)XR1hARxl40;R<3?2;Z3=#~=4EhWP3@i*83=#~63`PvB3>)Aq28L@4#tbG5AaISr zl);RF5friv<_s3~3``6h4Cfdu8LSwX8LSx?7<k~4HVjM*whRmmQVgtr7_8YD82>Pc zu`}5HVlaR+80^9RU}SJ$aAaU$U}A7$U}SJ+aA9BsMIwVS10&cpR;}#}avQ-4bQu^J zxEPoi7#J)WSQxD8!Crva$;#l$;Ksnfz{ubZH$fZBXJBAN=w<^O>5Qb25vq}e!GpmQ zYPAm3Y9{72aC;#-J&<%V)kC#1GI%j~6V&RDtQD@)2ku&A|H>m=4DoL$0}DeKk^x}v z)`R`$i`4`LbQ7W(SQui^O#mC<$KcPv1P*dg1b{-9OKUrW;sFLFA8k-lV`4yrdm;k| zLlW2&F$N}({ajF=a4;}21TeTUFv4RskcE*U2yApPDD5zWFfcHH0x^_<frSxNT7l_s z27fRe!4S#71WgA~V71Z=Obl@hj12Lq3`q>h3~3BZ4C%!T84Q`l3|TCU43-Sp^$d)7 zROWzG<}xrc<T2z!BS#+^ub?EQjPM%BRSXOh!QMhoO$B&jwjSak28O9fTA3gLBH+jn zj>X<>3@YgMN+D?mM=Jw^fFnZ~R?Vs?nnB@@U3U;eJ~T=ZUf#x_hN2ssIYDIrs+W<X zNx+f85351y5QFML=>igXSe$`K2w-yxu{a274w1$%FhkQv5koOJTPl_?#Daan%n;46 Zm?1`ulOcg&F+-w*Btr_rVun;TP5_ZwU(f&m diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackObject.class index b6edf8bceb3896a46d9ada0d2978d46e1958ce72..0efdd1cc1560cdc966d10c9958e0b1460b32d5d2 100644 GIT binary patch delta 1089 zcmX?{crS57A1|Z9<VGgN$s2gNSh7-+OE&M~jbUaqnJg}-&BYm%nwDCWnwOk9`GA1C zAe^U{Rg{=+Wn#Q}o}f2}m|%KpNkC#rhG$7?u74893`PbcjmZ}!lt6}ZfCQ`=8T2L# zGAV!rgg^p}4BW~2xdr*fsUV$`6?j!aQeX#6_UAR&d`L>3kyD9*g>fYVCxi0jSJDx@ zIt&~Px(p%=dJGB-`jh=-d<89_@|Fzz3|0)H4Azs^%FJVQnCv5K$>=`0P1c6hmw|=B zZ}M?j8`fY37KV_?9CD7VkqjIRQIq}Trb#9;ureeua4{q^2r{HF$TOrdC^DooC^2MA z{wtTwSUNdVzD}{8ft8_wfrp`yL7bt9L5`uBL5ZP-L7kzML6@PC!I+_QGKaz(#VHJ| z3{x3+7^X3ZGfZcYWthRB$S{*ZjbRpp4#PACBZhgCk1FIbE}3ki=)t;%fsJA9<VMA0 z#x0YdD%vydovf<l%y?{arcxl|xyiegqB*ZI2s2z~kYKnmSzfu6^9}<m!(9e0hI^Ce zDra&&V_;=?&cMy^Vlux<5$gvAPKJ+@+f+&!e@*_Q;>E<sI5|^Eesa31IwR-gepMGn zp~?NKvXeimYO+c(urW$cZdBBs?4@SGs5H4*&7M(v@?kY+Mia0eHFYCKo5{PC6ed@y zTXVWF2s64eNHDrhmRFXXd`&%u(~E(X(VKyb(P#2pWy#4Q8UdUk46KZy4BU)illfI7 zCm+*@WQ}9sWQ?EOrlLLBU(<^*WAYyr$;q2FjTrO6Hn3``GnP;8SCyRXrlrl;0A_V- z@o`ErurP2lFfiPhyhtm>D`Yo=b>wyi8!I+R)@=;7+ZgPuI3ziCGT1XR%w*69u^bo~ z4lt-%aY}M-V{o)$mt+GmoFv)9CE0a$FgWjIaA9T$U;h8>WPfe_`dths7#J8%Fq{I@ zEDRwG3=Clmq6`d-Jq(<Ty$phkeGHO}{R}#c6BsNRCo(uQPG<09oXQZ+IE^8eaRx&w z<4lG;#@P&gjB^;KGR|dK%{Y%?9pik4ZH$W;b}=qxILf$);RNGShO3Or7(y8s7-ASW z8TuGx8LAkjFmN(VO<|B^*v_znft?|b!GmEZ!!8CkhH!>LhTRN%7+4r$8L}DnGK4d* zf_%>q#t_Z`0yh};G3;kx1dAPD*u}uaz{zl);UL2y24;p>1_lN(1}3O!hZ)#FswOAu zm@}GAo~hF&x`~0EaWjJ;<5mVS#%&A|jN2Jx8Fx%J(Jf%yGkK}5CF6m~_jPR;Whcw% zfyhWOxj<iW@^(FSM%l^t_1qX`C#&g$<dVVU0(}og*~u@#?E8B1lU)rU>SQK&8dw1U DnPnJt delta 1055 zcmcbYcsOxGAMa!(KBdVUc)2$3<BefvG@UFhsLjO|l$z$ATEfT>H2JuI3m=51msOOQ zZe?Pzd4-@i2On>GYDqw1Nrq=hYOa6M<oAMVAVXNJ85y)D3o<EyI6{mJ+{yX51^LCP zAeD>^i5im|nG``%ll^%OHs6twXXKP;U}0Rwz{#L6nMEdoSCfH*L5o3zL7PE=L1%KN zjIW?6RNjn%pTV3#l)+;1ahZ9Hwv!jgicYSURbh0Qyg=55)r*0J!F%#USsT^>1{Q|E z$q!{kC!5RZu!b>kFoaLekeenM$H2-E&%niyz#zzw$RN*<%%I4S!l1;EI$2yko3Uu} zLs{X;)8w-iYZzD=Y8iMK>KMcs>KWu18W@xq8X43XnizB$>KKd}+9oS0%u$@kz{)U* zfrnu-gE+$!23dxw42lfX7}OZ1Gw3i(W-wxyJ^8*u9^=Bveu^HfD;d}rR!yF*n9R6w z@_$8p#$A)`m7Ez5PgYcypS(!Pi1GB~t4h(Fml=c^t}sY2T%ByGT*`TqftBGF0~f>X z$=j7PIUh5yGCX16W_UVTQ>BRYEdwXRyU7bwN*TXT7E|?NV)zF(s!>&)kqzvP`C4p~ z52<Q1^22%TYPziA3~Y=NlV>YxPfk&@V3eQyUr}`OCN(Wa4KVAInjWL!WJUErM$5@p zl@umVR=4JKWDsU_Vvt~To_t-sl+&GomC=KNi_vp(s75AdAOkC75Cb=3@Z{qfMXb>b zoQyG(7pQ1Y&eZf`Or5+%)0;78GRTASTI!4?P<L=mPSH|ltcCJKI3*ZZ8Mql37_Lv= zqm{xKJXuj&hEZ>_owf|WB)iTw2Irj&F3b$!%m1I7oTaT_zmwrO0|UcxhLd2Lg&~B2 zfgy}Rl!1Y<lYx`5i$RdFn?aJXhe3z2m%);;kHML70)rppB!+Ot$qccKQyEejr!nL) z&S2<coXIeiaTdcW#@P&O8Rsx;Wt`8jlW`Hl5ytrp#~BwfTwz?y5X!*75W~R9(8nOd zP{lBXfs<is3WEg0c7`1c><oDf?hHE_b}_IqgfkQ{>}J@*z`_vAkj1c<A)J8~<Q;}E zhHwTDxX!STVLt;SSnL49E(RtBPKI*~2N@1AFf+t5FffQQFhNZ_%)kaxHMvH|oY7?R z7M(WH^$hHc8yEx`H!+AYZf1~R+`=HsxOK9>ZUN&?aO%FQtHQW<@-JN*Mybh;`r?!Q z^i;tt(aD{9>Wos8H|lwS_y+QmCG|mkM}3G&(aDp+{Ed2wlkb38j{2gLB@Mu84BWta KWF{{$umS+KU=e}< diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackReference.class index fe132c94c31190af0a39a07332a06ede9f9b1ae9..5bb40c24a1927eb8dbb4ef0187a41bd7e466fccf 100644 GIT binary patch literal 7967 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 aW0<DK$uNWA8^cToNrpKL-x%hqaRLDJnvpsH literal 7723 zcmX^0Z`VEs1_l#GRxSoBhE<#l91N?u7&sW#fQYpqv2`F~J&4%A&ae?Aya}XgGl<y2 z#jurO8#}{xc7`473_IBwc5yKXFs$NW*bSoha53y<*vG}NpWy(AdytEPpWzV5fWsi- z2p7XqhGQVsaS(9=#61bJ<`l@}(;(su2g6x*hI3pDN(|?@8G0EmfCMkHGhE_gPy>lv zX1K!6aFv7M8W)2m!y#^l%M2IT8Lo3N=rXJV8F_<?p^D)qh`R<PcZ-AJHc0pmJHuU& zJ@-JweUQil5b=<m;SoE-V@3x4lKkw{yx@|e%)IpYpwu)*1|grU#Ii*FoW#6zeTcX< zBZCxJnR8-JPEulWwtrGQg2~9B<CBuAUs9S<lv<pUnx~(cm!@A_qMu)onwMCRsh?O} zqK{B*&B$P$oS$2eUz`dPL^3PhH?bhzKPf9Uxg<W`F*w98KP5FjzAUpivm`Zzk%1rL zw9=By9R1+b5^F{Vv1GWDz?$Gn8KW2(*laTMGE3|j8JIOR!x$M@obyvsL55`JrTUfT zCZ!gIBqrsgf_$8xoR|}qSd<CkLj_q%GBS%98H|bcTTp6RYEf!la;h~W124#873Yl1 zoRp%}JVpjb4T#H;1C?ll{gbRg&SxqxU}Rt_Fl1zq3@Xhl$;?d+%Ph`J%1L$1%gZlG zEXmBzD`sbS%E-X&oS#=*QdF8;l3&Egz~h;hms;eUlUQ7wTFl5`PtaOuup>-WK{C&p zk%1*IF*lWwff<}wxL}d!pTx+(Qc_uv%E-V5Ni~cNEZLcPDU1xPA)qA2$iSUfnu`b$ zW(`eGMh3pz#7d9Evecl|@}kTVkg*z?QH%_HX*s3E8IC0-Mb3%I8L5m6B47dM{G6QB zWROpx!mP<T`FW{~45k{I1pNhbDRMlq<bjg}mup3GY5~aHVnzm*<otq4Mh3=IMg}#c zSaSy1<d<I(Tv||&UsRHs0@nkI@8FWe<ZR!>0%+plNGr|BaR!^i<&s)Zl$x9fPQYSF z1|r0*85x92ic(WS8vOD@iW2jR)AEaQ85vlUK`Drlfw1SGk!H=vz?jL%z~~8zjH1+3 zMg|U;!Hf(XnZ+uug{6r(j0`#&1cM7^A}Bi8ic?F#(JhK49fQ&)YguAWDJbgGp$bJb zG?BatNf6fT4A0mZo-;C75^Fh98U&{yP)HZ2mcU{Xl;-pa`vjpJoR4_ZQBBYzA?^4l zSu-;5qm^Hb45=hJ0unIbLd-X@z*^HMzbGA6TAF0(7bF%Hrxxkw=BK3Q=$9G8%T8-X z1`b$h$H<^Tye`IMMg}gJPEeRJ=Oz|_%0X~B4|fM619yBuVo_plYDsEQF(ZQjk~@7e zi@~L>4@yB<S&#}%?><OseG?08AY5>12Pw_1iH&k=J8O1^7wil#*%@9jGH?cGrspM= zloq8jGAyDXkSTKz(J{o%@S2f<6I5(vCY6FpGh1T4jg->i+O63c-Y_z-c!LX33o=Xs z>9l5KU=EJ-V`q2^Dwy+2i;`0r8LY@KEEufUnvsDmvA7^LxrC8{!x>VK7cnw$rKBe3 zBo?KnIF>Lngt}VAB!P<Uocto)l8n^i%;K2f%=D1d;u3Um-K@molEjphnBt=3nB2t7 zycn1O%xt}^qQrD7Q&S5@20la@2G#Y93`Qj7T#z1+^Mg{;+*3;!8G@+cOo(9+N19kL zGH@0_DzcD#Mh0ynoChmq!8tS!UJIfYpU^DC$iM}O1h-63t3?b}uE8rbJy3?`VQ^t^ z<zaAQaOPnsWhmoesAZ_*VTcEbC4h)Th6Y9kLt-0jaI<+B5*d<s7~V1D@i4pxHG#K- zM3yr$Xhjp7n5-EYR6s6-G%a!0r;H5z2xYECMW9xUI6?$cnK+eZ=A@(+F*3-5Rahy2 zTLKDs`6UX)uo_w+Ex$;Chv5UmM|Or!JPe;1zOXZV<ze{7P|3sa9YnZ*!Y2phuT+L4 zc7`833^@!-c^G~&{NiEw&G3hZp$Nn+W+>rduwk&}VX$McXJlYtWDo|s23&GF78NB{ zf{I5_xc}v0_{Z>{hrxltk&!_Vp~xe#I3qZ<gq@Lrhmn!tKO=(_SPoo1Lfdli)&wI% ztaD~ja%oOtkwQvp8mJ+enV+YSpQeylQc?siR}^3|@1LZHRu^d?q;#;gr8V^!8PtfY zZ+I9g7%F)fnHb`D7@0wiwk643DD83$O+6lldQi&KBR1th5<L&Y0)~Y=3`;=qPy~vo zOok*z1})+ZfkhTLtifpx)W&CLWMO2mC1eUTb0U?^NG)MT1_4AQLeeB7gE{F&f*UrB z418e2z)1>}niv^)5dyxT>Kc;fz}^VSD9SGfd4rL`nsf`{^$R0|8R@z~bqXVc1?d_g zMHeFjTR~z`Y96Ti05@*I-6OWdf`U{~S3wtB`x2=!0SRYl-nT}H0!VscWZ(cb??AmB zMh0P&Mku%o1Zuv40~Q>RU?D~Z_Vm;eKX9jpqa+_<1tWtxkzQnE-~csAAq{n1!fh02 zqO$e`wVT0?g=p2$@Fb;~&!Pb~fH^TGg^>ZJSq=#ZYf!r#DGddKsyvS5{JfIH%)DYo z2KLNi*W7}VN=62@qSV~{vQ#1}1*p>z`GG-^frG({fsw(QfrWtuR7Nr|FtC7%Nigle z;0UIj7@Qdx7~~lkK~)n2BZC_Q1A`3%69Xdy0|S@Vb_PZ*=B*4&8yOfFm>Ap{7#R2% zn8E5<7+x@NGAJ;3FfcIiKvXk$GI%k7iePUBSExzaU_Ju_Bf<bSuwqRljf`-OE(|^l zOkgJ@F))EG5`jBGOM4pwvzE>_1{Q=_VhpSd3=BpL5XTrZ@G+P$2s4<1%~pWuhnmg6 zAj06wU<<Zegu#!&o`H$MpMilvoq>@dn1PugB$|P#m?5;7A&em$%!~jrBf-q5VumON z7KUhs7^tsw7#P6@F)^=!hYQ48R$!|k;lTv8nvo%vA&#I<N31&I;UQ@ZwUbqAI|C~s z1h^QO7#JAb8CV!RkPKjjTb+Q_05)_3d>L36{ID93$N-88P^xfZU<6wRN)_w}7&v^i zH^6-laYir$2SW(h6fuZOs53Yim>7~7ycif6Qow1Bk%5naks*~K2^uPU7+ApSowc?x zaQbL7Ze`%o+QPtnj6qNvL~mo@Il#cXm4RD(gU@aT{>a@70+HJp1cijQF$imIV-VTK zAi9k~cpHP*b_VhN;D}LRPy{DbP=b|XU}s=ph-P4Ah+*Jjh-DCDh+~jvNMKN8NMulA zNCG<-lvY?7WT1{zVo+pAV@L;^<P7yf1_J|wC<D_U26=V{j{l&zU}xZ9U}OjTB$FYD zff<}^^+7TW3=FJV+ZZGe!2?Mg`Cz*si31ixSqvZmN{Jvf+2HJw0}q%D49pBH3=9mW zTH6>TeL!Jxj6sXpRtCh{w}?R=M9UcY=^kU?)7{1(<)^JHvyDNzg^6+b|9jxrVFu?} zH3m)w28K!oR)#7D9)@ZLafTWOIfhyWC5Ac%b%uHdU507~V}@q1^RyUP7~~lE8FCr& z7?>IO7*rYZ84AF$V+sulRt5uxLU3$?0)>}>`7Z+>I|B!!+%E=J21bS=xa-$LU2lTq zdQF7u<+NnBG04CiFN^H>`xuVzV_;?IXW(I&z#z^rkwKPW5`!YcWCk^cDGWLc6Bvvb zX22aUi{y9}xZ_RWj@QTPcv+C+Ss02LN}y>nlYt5BYb`D9?F@1=8I-lQFvx2kVBpxo zAis=3RBH=^0)(fqjDekHIRgv0EP#YJC@L8k=7F6A$q8Ce>lqld7?K(C7#JBqVaLkA zq~QQ6N=g~Zpw`+!t!2~F-pU}4o=ulAure%1GL{W)EE_{PxO8I#H4LF;s0TDL3WA(| z44kLrmou;mDS{FvvP(CCjf5mjL8y@+_pviD@j0?HRDnxMZU#n%8U{v&kYa{V21ZcN z1)Gx<(4D-Cft6u5*nCJxpgP$e?8JJ82B?z}`DY7*0?3(=N(U04$H2xwoC(W6pqzu` zvM>flhDL@aNN!}TVPIk4U|?XFvYSCEl65<SvY)Q@P6ibwhHzaS2(7h+LG?HTzt(OB zwMh2u4C-4MR6#<zI~g>X7-ll??q<-86w=zxpuHa|ti!|*zMDZeayx^b6$>Z<Sg}g7 zZe!5j#$Ygufmf0R$}yB=v0{U2F=Ao}mt@;u#g5Ep-_O9r;KxwL(89pL(8ACLrdhzb z)rmoXfq~%?11G~}20?}^43Z328FUz~F<3HOXK-e?$>7Iun<1Rx4nr)%J%$X1`wT@4 z4;jiBo-i~rJY;BLc)~D|;VC$v>=@V>!WncKni*OcSQug%)EQbCyucOa6lfeXFic@+ zV*tegh}F)}!NA18$<WQv$<W2X%+SpMtJ$Y8v@`TDFoDyo1_R3<1|4>WUa`Lndh86k z;Nnn_frXucgPp;OouQANp%+vx_A^WX*A5fGiAS1&iD3!@BST~=!*qrj46_-S80Hi+ z%w?EY%rKvU5!8=>CV*WG%;0+4O=}AS6D$IZ!4bf+m4QiX8-vL~2Gf}gLLk-w22&q! z^F(_Ch`Wu!494{Z3+sRaS&Tu0!H$7}L7%}KOhXdB5d#kc1H(rKc7{(3f(&06#2CIY zC@_3y&|vt(pv&-`L7(9#gE_+=1{;Q-40a5E7+e_sf&&$j`rM!a2+AZJ49tSEe(VhW zcs#lY<k7_pjG(>}G}j<f`gR6$w3N=sh-4Qmr86=tBixK&WJS^mZGZ?kG88d1U|742 z!2-=%1}P-XP-_Jo8FH{{#;Dz}YtF=ywYM=?5@9nqI6)adn}I>Vks%SQL7c=G1aEYJ zLt-f<A%RUZ(IK%En#K`PPgY2zGGKFsBoQG24n}OQAUPNl8J1)53~9zNFfptE7ZEEN zf*3#*BP&Ay!xM%;HBN?Vh9?YBYMcy{7@japR^w!t%J76?nu8?6Ook^6v(z{N%El{L diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackTuple.class index 6baa683417f96c1f11d1cd37f816976ea7dd8a95..64c2be6a46a4e3521b14c82dbc565604bd27ca9a 100644 GIT binary patch literal 6565 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 B=PUpK delta 2396 zcmZ2#{6)R~)W2Q(7#J8#7}jwyFfkOdGZb?&a59u|F>o@Jf`~GZa5;#m01=h!3{@cE zYLKcLE{0l$I(CM7c7_IahDLUVCN2g6h9VAzW)R)N#n8&o#>LRi&;jChaxw5Tbb<7C zgNPoGX}w$q44e#oAZ9;^m;f?$A_v1Hc819yMN>e6Q$eh0AYwW@!;FnLJQx{gZB}Gj z$izOIona0mgXLsLCgaI}Sh`u}LO3Rq_p@eBZsru{<qXbD&r2*RElOo%$eirRq%rw0 zXDXWpgC-+``s9zS>WVxJ^BC%R7@`?sco^n0EZ|{qWzghda03zU4B3nfx|2V$DooDj z<Q3y#aA)w~VOYoz!Vc2m&XCK<pcM@^^C4G-+aiX=><mkI7?v_DV`o^-!?1!Oo`+#2 zh|mC;9R$+r4I+XVvUwO*F|6ichybx78KQU?)ELwm85kHDw7|CQ=jPE~15%I$QV;>s z<j>&2$RM1RSeB@tlbDyT@0^pLmztQAlgiGpcC$UtA4Wz)kas5U;o+Jr!_OI^%D~9L z0y36?fkBFakwJq&6J$IC1A{RGBLgD?0|Tqpb_T|c3=9lR4B89~44`mkV322EVNhVu zVPIh3fhc0oWzb^)xlA8oz~owfsd|KZO$H7IEhP1vaP=At1`JFLS_}*fQ4Gus%nS?+ z0w4>uw6`&^Xz4I-V_-$tEyTbAb{GqT2?HmCDFZ))8Q4q(h(4&93=9Gch79TqjP)SH z7>pQ<8JHMM7#Ki83>FN`43^OhOvMaV#SGRAHejYLh-n9A+7~l8Ft9K<GB`nlK?fQP zOe|~QVZa9Vvo+Xmi2s?Ob~7?KGq}KXPM#{j4-Nx}dMB*vT_NEG_7@_+*$|$F1h@wS z3xg+;0jzKf-LM+K4mAK2un-gc7+4tmv6|q{-~oz)$-aWp_J}A8Vc=j01*;chU;;-x zB#Jp0m>4`6^cWZ!ycif5SQr=?_!t-&ycs+|-k!W%Fvc5Xh8zPs0|P@011m!;0~bRa zgCIjZgFHhbgCau`gAzkB*j!Mwu`<X&O;ch}Wbk3|1qZD&)OUW9{e)!L{TVzMm>IMt z7Yd14g3N{lX93s@Nbti#BY*(}KyeLH69`U_K~R?+5OM=Yh8hDW0|P@911m!{0}n$D zgE&JigB(L0gAzkMgE~V4gDyi2gE2!3*mNxh76v&6euiL%5C&!jJ_c2WP=+vYXqZA> z$jV^A5DpFvKL!Q{UIymB41DYioQ!h67+4t?86qH-GcYi$XJBTS+$wAr3-STP4gCzP z3=<f57$!1^GfZNTWthyM$S{RLjbSQ-4#PwSBZir9H^?HnK?Uvx6Sy1nVQ!eLAR@vZ z$q)sO3u_Twu#Z7u!N4#dY#JmkWuQ74z@Z<)z{mh{Ju3r~lmjRYMl-~K3}9ejuw!5X zdzVd1dn<z+G);jM11L!>XJBPmfn+Qj+*me-Sa5dZWMqhAhzF;x4<brPuGtLM28lgE zs5X!r*cq7k9N8HXz!{dCfsrAJfsw(on8AvHks+BO1?nt&24=9c*tN7#O9)6(-_5|r zum@}b#JlWJ3+fpd*cm*bC0i;(8pvJXjK>5{b(~tv+Zdz|Feq$5%jrkJW<eYaE4e_4 z4CKBHi2JM=7#T7d(xC1Gl{lcX6KtX)+{6@6+(TmHEEXdf8L}9%p(f}<iyctutAy^J zi%6PbNuQA+2U7A(o+u!UWYJY5wa`*Zz!6lVU|6(`K^fg5DJ0EMiv%1Qf*`I0<wv9# z#je($AsZUX2p?@@P$9x1a0&ngRv-g|fFpx9#8L(Z24sWuB#AIdz>&cn;*81fCBzI7 zk$}a?h(ZmlD;MN=kgiA~bulnA<bhL9K0^VRE@UtVSFOwprVKL~%+xp;5*cPP*sF0e Mq%+K9a8Tm}0Ib6WEC2ui diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ClientCredentials.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ClientCredentials.class index b6c0ce9e44ea69a74f3b5e7d0378ccf67ddffe50..2bdece9501b18dc54fe5c0729a6954c0a0e1b802 100644 GIT binary patch delta 287 zcmaE){78AjB~Df)1{Mb8$=5j@SaldU7<4Bu<QJW6$fe6^#=yd0&cMZBF*%(pozZsk zc`i#vm&xb3L?_E}tFwABurPQ}_Tsi-4Panl2%Ox_?Z_I&z`+nc`6Bl;$v6g9hIj@p zh6DydhC~K=hGYgsh7<-RhSbRoJlTvzli%>vDb_HsGSo8gFw`-KGt@K4F*GnJF*Gu$ zGc+;iGSo2`Gqg?a=AENBk%5(A5(5vzWCn4DDGag<QyCN)rZK27OlQzxn9N|rFnh8G zUmoMa$=mrnSXVNzF|3-*!tcenY4SpT;mJw-c8t3xFXXpj+&}pqza``0$r1uKjIxtM g!Q><`d0xPSQFgL~AV_?Upv>e#K`lnv$#VqV0I@SfNdN!< delta 287 zcmaE){78AjB~Dg(1{MZ|$=5j@STz|q7_=rY<QJW6$fe6^%)r86!obB~Iys#yozZIY zc`i#v$I0ipL?_E}tFyW@urPQ`_Tsi-^<`jT@SEJt?Z_I;z`+nQ`6Bl;$!G>vh8PAe zhFAtchByX!h6DyhhC~J>hNQ_2JlTx-li%>vDONJDGE_0}FjO;$Gt@B1G1M|BG1M`r zGt@KaGE_4dGc-@`=AEP1$H2<a&%nblfkB*MB7-c$BnCx>$qZ@?Qy6p@CNLN=%$V%K zm&Z77@^(HC)@2NA49h38@Ov??pS+M?cybcI9pjG43;Asr_e{RWZ^?LIvV?#QqtxV3 gFgXcKo)_?7l$tCd2oj$oC^NZGP>WG&@*F`o096G;rvLx| diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ComponentsObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ComponentsObject.class index 8c38d5ba1e6e464009869f02329fb2b769bf4692..8d557fe497bb599264fec840fb91aa5fd8ff035d 100644 GIT binary patch delta 2268 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 delta 2268 zcmeyrjp_e3rVV}3^$H9e3`z|A49X1R45|!f3~CIv4C)N73>pma3|b6j4B8Bp3_1+; z40;T04EhXx42BGA8H^aVFc>qOU@&1g&0xxKk-?nd27?8|0|qOG{|wfQYz#JxQVh0? zvJ7^N$_x&SS`3biMhs4jfeg-!nG7zB`3!E1Weo0&bqt=2bL$zr7?&`3GwxvUVLZs- z$9RIlpYZ}iAme+6AjWSD!Ax8XAxy#yVN6mC;Y>;lkxY&ZQA{2T(M&N6F-)lpaZEW3 z@k}KQiA<9jl9*;OBr~mJNMYK}kjAu+A)V<MLnhNxhAgHx4B5;K3^~l440+4~4Ef9w z3<b>Q428_z3`NY$0Su*^`(viD*4Hp_Fw`;dGt@JfGBhv*Ff=iQGc+^QGPE$vU}$5Q z&(O|rl%a#+0YewVbB1n4UWOh<4Te5OeTII<P=*PN1q_oI%NZs!&SjXwxPxID<9>$e zj87S6FflO9Vq#~Q&7{jPhslFs9+N-Ae5O){1xynd7BNj{Sj@DSVF}X>hUH8TnHW}V zUY6v}$hwY!g<<{V3+bYh*;7{N?qJ|#*vTNuu!}*FVK;*=!yX1phP@1~4Eq=Y8TK>8 zF&tpXW;n=D!ElJ7mErK@J1Nb&XBb!*&N6T@oMRARIL{!)aDhRV;Ua?y!zBi7hRY1b z3|APe8Ll!oGhAcvX1Kn&C$*iC@y=wCbW6s^ll{_dSYI-*FuVd=za(9q^*sX%!-vTi z(j8g9GH@__n=F<wRf^#+11rNn1}=vG41$ad4DyUj42q1*3`&eFlaFR(GYU>N%&b$C zW?*HMVc=nuWe{hSV~}H%XHa5PU{GgNWYA@lWiVz`oqQp4j-mkrE2AL;52F!-IHNIx zETaj7BBLpT8lxG54x<r+5u?@Q-mE-Ehsl4kJXk##*cd%0AFS1$T#{|U7%+KlwmoCy z<hR+*j7gIXa{?K&CMy;yOkSL0%~`}C%vj7I!B{f+V3p*g+!)RZ23E#O1}?^`$qUOQ zC)ec$a5gcpGBz`CGqz0LSS>mELvAE%4+AG-?_|HcQpRbMDkLZ0%`;-0JJ~QtezJbP zI^)vGhP9HD3-YxY*Fjk<lXvE8vTkEwW84mQlTd*L<G#t>1@?@`CwCV(GhP7eeOF+_ zcw@3+VKnCh24TjB3=)iwKyI2muP}!583QZha|SNP7hp%p6a{d8U|?nZ$iU6`3GAr8 zqDa<X44jO=C;R1TPZlrsVq^h1th(5UksECI*<y7@VX$-fO0*eez^vdBT~-waHYQcD zqc)USFzQTxSz^y<I$5*Snb8icucy?A(G46}_e-rg{TPIq{23&e0>BQlDU0C@VPItn zW#D28o4l|rlQWKil_{Qqn<)Y8D4p_1)(i$trcAJ-ww8M_7EP+~W~>AooL!;L*a&vU znhI^kE->q3g)ZwP1~#V2U<dhCS}@L<++JzVxOnpMN@vD3V0~IuMvPm)4yvuP=G?;| z%(Rz5f@$C6gH@%RhZtCy4l{5u9RY_@M0Eh?83tCSvkcr!=O%BgE@HjLz{zwS?3myh zFUAL;5ZYd2#P}R+FlVhg<NL{mwJwZ5CL7kuPM%z=$;!aM#>_bRU~MuZ$7Izydq%;@ zsddhbQegEb>Wmnbzz&hFx8~Gh5N6h9kYLsUhfGC%45tADE3+X37qb!AG2iL~IIS31 znXMVPnQg$KlhF{#>cYUu><V_!#|AG(Kahh$8;ux4!4@oURA-C@hs%pbZN@Y(OSegv zHIIRfIUgKCT}>8@Ws?s#*)!HpW^Q(7>;UUaYc^t>0Cw2UW^2wF48qJa86=ozfgL8+ z62m!<ft7ha0~hlGu*0Ub1aPikU}av(z|Fi0>@c?0NY+gZoXnfS4(o6AV%!6A*ymOw z#=~F>T-($cPlKJ))~3yP1<X3#rpJ1Rft~s8<cCwVCu_D_Fg}@_)NarCcJiWjXU1<} zeXJdZOw9klE{o`}=44|KW?^TLVBr9}Y->jhCl3QF3oio~3m@2J#+?D2VhpS-;tbp@ z5@44t?TlhoVBlg=oNSmQJo(pjiOKq1-i%t4<7P-qp4?^3Xb86ES(iGaCD>8w-P(*! zU{+4I9;+7vJBv5id8fK97=tD=_t-N=Pj>EcW=sL=Th?R5m;-j*&mL>e5(Z(GQU(c@ zGO+8ydSf`N7+6`V8Ms(#z^=Q}8^GDZz{=9fz|GPIcAZ;a6l)&?7fV0fbr<@)8E1f9 zXVP!XI3H|Fd%rs4a<H3D^lLM20JC@}=&|l#U}xD0c3t)a3&sPJmrSr{JURKv1ZT!e zV14crjTmo%T{ml@HRmG+VV1`X5-d-^uKPYQhVumjE6Ym;E|ynd*Og8R;QYkE%JP|k zo8=4Gb<Zb7vHoG;V)+YqUEySJMmDhPu1+>)<ehAoBR5%niUy-7*iD&Jv>D~VtaVfL zSk)NVS=A>$oRZ9_H`#TnJ)`;L)~U{n4q!dcry4VQOjazEpKLYFhBJUcm^F|=f;9;2 zvKiB2IKvoNS;HB)SR=qL6Pq5unZUrxn#jP-ngn)P$Mh)HECw#tY^ckU8A~R|&G2Td z2Ah6jh6ZEv<c~947<(pvoFO|oc&0kzgvl4uMJD&pRArnpdFxCYMybjAvqUGe&r%1o mKzzeY;mP&0Ou>B7$)~_FATgiWoRj%xYk{(GrtoB+*~S3drMNQy diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContactObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContactObject.class index 1ec670e4c50d0b588b1841ab6fb020ad4e30380e..2d5a6b3934dbc93e60ef16045b82a4fb56f1a443 100644 GIT binary patch delta 597 zcmeD6@AcnsM$A;1frCMnL5M+(L7G9GL6t#+L61R`!Gb}H!I43m!Gl4EA%H=bA)i5y zp_xISp@YGQVIqU^W=3&!MqMig4h9<reg<0xaRxgEIR<+MH3kO;T?R)6QwApn8wO{F zcm@}SDh79kW(JSRp%T5Uehe%O{*xP3MJNA}Fz1Y5;9!Vk5MhX#Y$F*Yn#{n$kix*p zkjlWvkj5a)kj@~*kTH3&<SxeC$#GJaj3tw2NZGJfF|aUHgH3oRrOw*Gz{1c7=IKl8 zu(mO9Ftkrjke(*l$H2<a&%nhnfkBXAB7;1`WClfsDGW*sQz!GwWHT<B+^8x%xlblr zaSa12!&(L&hII_$4C@)>7&b5{F>GW|XV}D`%dn2Ym|@#wDcL!S2N_ry4l(dB9A*$_ zIKm*yaFjuj;TVG&!*K>3hQka-45uewmtDYkadL%R5bI3_R)$-X&&vfdKAqg5pg%cK zUWfH911rP3$>-(dCohyYX8Z{jXHn2*V`OAtWn=<NgeVv@@=oqhh+!3FU}F@U{8AyA zQFgMgqCKP9<X%N*M*Ybb6$2T~Co3yObJ{ZqGdeIxFgi|dS1RRnWng7=W8h+RpUkS9 z$?4C)${4`F%@{bjT)Bufl7W*kYVtefQpV)TDJtHKS(7g+%1=J8qRv<Z4g!BwuE`>* z>WrWO6`t&`YRFhWxlz@Uv3c@tRU1ax$v?oPsTzn43bIx;Q%2dzyWxCpbz??Zuu0tN JoRg!~jQ~u`jrjlo delta 597 zcmeD6@AcnsM$A-!frCMbL5M+_L7G8@L6t$3L61R=!Gb}Z!I43O!Gl4QA%H=PA)i5; zp_xI4p@Tu6VIqUUW=3&!MqP6T4hBmGeg-QBaRzG!IR+aBH3nM-T?RV_QwDnm8wLl4 zcm_v?Dh3yZW(L>Ep%T5U-V7`ZK9d_&MJNA}Fy{<q;9v-25Mc<PY$F*Yn!v!qkjTKv zki@{pkjx;=kisCvkUDv><Sxdn$#GJajD?eDNZGKKGq5mJfK7NOrOsN*z`{@m=IKl8 zur@PrFtkigke(*l&A`gg!@$MR%OJ?m#~{xzfkBaBB7+jcq{;j;*^KiiH>wIx?vu$@ zT*<)7u!@0)VKsv|!x{!ThP4bz4C@%w8P+rCGOT7WX4pJgN_LLoJ_c5X{R}(|2N=W| z4l>9x9AZ#pILx5NaD+jJ;Q)gX!->h)Wfw4>n_M9m#CnZ^mErp2^KwCqk0y60=uZxm z*I|9dz{>D?@_9M=$qVI;8NY$WSroL{82&M^GW-WigeVv@a!u|~h+!3CU}F@X{8AyA zQEIZUqCKPX<X%N*MxDtQ6$2SfCMzpNbJ{QnGukppFxpLSS1RRnVqj%-X5eCUnarx3 z$?3zu%IM3$&FD9|T)BufjDeFeeDXWxQpSYIDJtHK>60%i%1=J8qRyBP4g!BwuE`>* z>WrWO6`t&`YRFhKxlz@Uv0?IVRU1aB$v?oPsTzn43bIx;Q%0%DyWxCpbz?>;uu0tN JoRg!~jQ~S4j;#Oy diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContentTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContentTuple.class index 69a60b96bfe44dd47c7de52721ef5632ca49e515..4ec651a3ab59ae2cd1fde85b106eefbb73dc8df8 100644 GIT binary patch delta 327 zcmbQMF;`=QC^xGT0}F%lWI-X($@<*dtU3%F47!u!x!rlq7+4t088{g%82A}1CvWDi zVzisA$79LpIyr;KhSi&ag~11`Yafp~Yajy)LlBtvpGSu^oPmQOVzL46G|6}dR)z!y zE`~$~L53s-d4?1QMTS%cC5E)g_j$7!izf>T2~UpW%T}yqU}dOd;9;m|5NBv$kYi|M zP-19eP-kdn&}FD+FlK0<{EBam;v@!EhRF;(3{x1y8KyGGGE8GoWSGvN#xR3HhhYkX z5yPCx%lTUv7fsd?2x48uz{;?Ca<f1X<F?7y1Y%hCF|aZ0pKLDZ#dv&jlVBj@g~{>U zqLW_=sxw}hEGT5jcw@4+kPV~k<PI=-6ik9#Cn{{pC_C9(7$gVc&lWajlm)wcwlL@9 H*TO~sV%<yZ delta 327 zcmbQMF;`=QC^xG-0}F$~WI-X($@<*dteOlQ3|f=px!rk<8CV!h7&sYB8Tc8@CU54h zVzi#D$79LpG&zIEhSh_Cg~1c7Yafp~s~-akgFl$}pGSu^gn@%0bg}{OG|3nSR)$yx zE`~S;L56q+d4@y=MTR5>C5Gh5_j$7!3nmK+2~UpW%T}ynU}dOg;9;m?5ND`mkYlK0 zP-3WOP-kdh&}FD$FlK0({EBamVm|{b!vqE%hKUT~43ijS874C*GE8AmW0=aI!!VJ- zh+*dB<@_y-^C#;F1hFn>U}ab_xmh5Har5MB0x_(+8Q2*1Og0zvVmvarNidM{?BsZE z(aA3b)fq2N78J5%ygJ!i$c9mBatD|^3MN6W6BRaPl$z`<43Y!!XA2uMN`c)yTbOh5 HYhfb*?qo|o diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Delete.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Delete.class index 2b80a03b34d05b692f88091e05647c8b8fe491b2..399c7420f49acd9c9fbdd8e7ed3835733394f334 100644 GIT binary patch literal 4534 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 Kp@qR*jS~Q!KBD>n literal 7326 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 DK{4C? diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.class index f5e8bdb4d0f8f6f43745036d5e9e27ba2b6944a4..456da48a0617c2d8155c28217b71e38184d947d9 100644 GIT binary patch delta 517 zcmeD2?(yC*UrbS%frCMnL5M+(L7G9GL5V?wL5o3?!IMFYA(la#A(=sM^8qn&MqN_| z4hC}ueg+E$aRy5UIR+~RH3n-29|jwSAO>586b3tnOa^;~90o^*QU>SAED|$VJsDUS zye2P{@Zk(*;9v-05Mc<N{7u50H;#dYA)bMgA%TIPA#t*o<P^rV$@e8K8FMG!mlU0> zC#B9>%)r7>GI^nd=;VAUb=FD-7KSP?Z-bN$Ydr%8L&M~UQqv^c8CV%Q7`PZZ83Y-+ z7~~mx7!(<L8I&0MCQp#gW}H2Fp@i^cewl2=r3|bL%NTeVmNSSmtYDC1SjnKou!=#Q zVKsv;!*T{=hV_$Y%gj;S#lXt2n}LU64}&<vUItl)eGG~W`x(?24lw92>|rosI5Igx zwuSN3<h!y#td|&A87@yYkqctHH@RIdhV>Z(8^iO-FXWOL-%a+Bw`cr5xkuiKiIHLQ z1^GZmj>$?2(VPMd!i<6p5{yEV+Z0MU#TZx_#TmF5B_^{dW^yVpurew#a5E}RE>kRG z)nede)SmoSv6Rtda<Y;)qxIwq^750<DXB9$gT3UZ%r#k9S)I`b$}?mP00+)gWfjJd n$-9(o7-c7a2a_f$Aa<dO2czudU0^mSNVrsu8D+tG168d7_Y``; delta 517 zcmeD2?(yC*UrbSffrCMbL5M+_L7G8@L5V??L5o3+!IMFqA(ladA(=sY^8qn&MqMKY z4h9njeg;zpaRxI6IR<kEH3ka?9|lW?AO<Uj6b5UCOa>c<90ogvQU-^~ED|$V-56LH z+$S%T@Zk(#;9v-35Mc<K{7u50H=2QkA%=mIA(nxkA#Spl<P^r_$@e8K8M7wemlU0> zC#B9>z`(*#IC-Ij=;VAUb=EQl7KU;#Z-bN$YYhVjL+#{;Qqv?`7+4uv8MqkQ7z7#G z8RQu{859}17?c>gCr^;hW}Gp3p@i^cewl2=MGUMAiy3$rmN1AjEM<^mSjM2lu$)1i zVFiOO!x9E#hBcFC%gj;S&cMpBgMo)(CxbY{E(TeK-3*Ehdl=Lh_A=-&>|`)vI5;^% zwuSNd<h!y#tmhe687@pVkqctHJ-J;jhV?N68^e>yFXWOLUr+Xtw`cq^xkuiKiQ(_$ z3-W=Ctdo@#qB(gPgc<o5BpCT8w<(lz3Nx@WiZF07icV%x%;c11U}cnJ;AWJcT&7sW zs?Na4s4@AiVkx8H<YXmpMvKW8<mD%yQ&MMi0DH+#nQOAJvO1$DlxN833l5yA$|{V3 olXofGFiK7S4kk@hK<q*l4@RlUyTEKvkZ`FQGfIK=2C7;E09-11od5s; diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingObject.class index 4989da0795a8e0c7b37ab5b51179185e18df1352..fcb23a013a9708b1627fafd84dab4477ca7ba1c9 100644 GIT binary patch delta 775 zcmdl`u%Tdsf}*D~0|$c|gAju{gEWH%gA#)#gEoT}gBOD~LjZ#gLo$OdLoS0pLpg&1 zLp_5bLmPt;LqCHt!!!mHhWQMp4Eq?&7%nrIGu&jb+MKDln$gmcfrG)BfuF&JL7c&r zL5{(V!G*z{A)djLA&tR{A&<eEp_IXgp_ajyp@qSZVHJZv!%>DHhI0(TlYN!9utqYl zFhoseQ;FbBX5e5*VGv<RWl&&9o1Co@FPqQ6!cf4#$xz6^&rrl5!cfd0#Zbbaz);Gd z&QLb_xymcX>dBW>Eg738^QhUdb}+CobWZkFvtjLHU}5N=+^6QqI)#CQVd~^7YSSd= zFt9SrW#D3%#~{cspFy5sA%h~rA_gUf#gm)Wvl%x`ey?7qxQl_6VK)O0!yX24hP@1O z4Eq?A81^%$GaO*hW!S@D%y49KpT-=;^9-yE7Z`XLE;5KSTw;)AxXhr)aD_pQ;VOd; z!$k%ohMSYUHP<oTpZrTRg!MTCE5nP)9}OfY=V)0nexCeYUw`sdEnU{%3~UU4CifU> zPd3uFU}T>B!BBK^gSHkU514g8TaQt6@_X$-M%l@ZI?<e}48n|R3=)j$lb7n0a%wZM zGU_mJG3riM*3INJWng7AW8h{qpFCB!h}E8flhI-FL=)}F=6YU?o|BvOycq)~zt@(Z z{8mq$F=Fz4Q_0DC`r3?%U{<ld4r?X@D`OVeg?sfa8A~UB*N<kcWng8joBYv0esY<C zI%DVLc?N#06B$?;Cr$on;Kn$2@;n2j$x(*7tV<c#7?(}%F-&G$JNbj5J>#~?21d?| z`@!~2HZo#7KG{)6Ve&I0YtHiw!i*OfBp5GF)-o>Tyvo4Jc#VOJ@%rQy#+jV=8CV$~ zFmN+IoGfKh#QKtflkwH$i6*6tpC_}MdNck4n^t71#>B)l`M#;l<ZY%JjNFs&o4PRa wPgXIrWE7qpXJ*4FJ9##kya6WX8Hi8TF*jtCog8NlmNRz)sW6wB{LkD7015}w3IG5A delta 775 zcmdl`u%Tdsf}*Da0|$dLgAjuXgEWIGgA#)pgEoUYgBODaLjZ#&Lo$OFLoS03Lpg&k zLp_5YLmPuWLqCH7!!!m%hWQLe4Eq?287?!JFx+G?-<+wqn$gmZfrG(;fuF&VL7c&f zL5{(h!G*zvA)djFA&tSEA&<d>p_IXsp_ajmp@qSlVHJZ9!%+r*hI0%7lYN!9u!b?P zFoaKLQ;FbBVBla#WDsFUVo+d6o}8@`FPp=_!jQ|r$&kmu&ydd`!cf2<#Zbtgz)-}X z&QLu0xymcXipiH$Eg9=4^QhUdwlc6Vv`zL^vtjLKU}5N)+^6QqI+1~cVbbI)YSScV zGO#ktV&Gz!%^=7yhe4iU9)lvod<G?k1(TcAvl-V;ey?7qxSfHOVFv>b!%hZqhFuJD z47(YW81^uzGwfy1W!TAJ%y4jWpT-=;GYqT@XBl`H&M}BHoM(__xWJ&uaFIcc;Sz%m z!#M^chHI0(HP<oTnfyyLg!KsnE5p;t9}OfY=V)0newh4SUw`sdEnU_h3~UTPC-)d? zPd3uFU}Tv5!BBK^gSHkUCzy3WTaQs_@_X$-Mybh;I?<d;48n}c3=)hglb7n0a%wQJ zGHNn#F=|a#*3INJVqj%7X5eNtnLJguh}DLHlhJnaL=)}F=6YU?Zj+nzycvBbzt@(Z z{8mq$F?8~MQ_0DC`r3?fU{<ld4r>|%D`Ps?g?sfa8H*-=*N<kcVqj&gp8U~3esY<C zI%C`9c?N#0eGIIO{gXc$xG~O}JkLOBa+IMi>mmj=#>JC+43imGP5xkL&$xNAfsr%g z9<Y6rjf@zNOm@^!nEcGhn)3{UFymPU3C44iwTw$SFEOw(US{B8yfS%(aVF;-23E$q z4BU+OCQF$Vu|8wqWPCn(qDd*^hso@w-i+VDrWKj0F){w1eBV@N@-|ZqMvlq%O<fpy wCaaiPG73zNGqYionmij!-T;&H48$kvm>V)mO^!1M%bB}@RG7<5{%39k0DR%nRsaA1 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingTuple.class index d2611a18ac60bd0c20b148b1086fc3d99a9b77aa..1e00872b5e222ac77272092b0e7d42e925795bca 100644 GIT binary patch delta 307 zcmbQCF+*d605_`=0}F%lWKnJhRviWo2HnZ$1w|+4a~tuRF|aV0GjK9kFz_>2PF}}d z#b`HKlgE<Lb#gL~4XZZ;3xm((B|J8)feb7RL6e{III@N_a4<wn*5;ii8PCAVkifvj zkjNm&ki;O*kiwwIkjkLMkT&@iZ#HA`WH-J##aaedhB^iwhI$5Zh6V;XhDHV@h9(Ae zhGqs`hI$5LhW5!%`Q|82Vqj&M%)rAig+ZKQDuXP;GzLY6=?rQNGZ=IjrZ5;W%$dB1 zzlCwpWOacc)>RCw467&C2?Q~2n|x6qhIJnU8^iv|MuJ|9$0yec1~Oild|uFo@ycW# zAxp*^lih@D7-c6P5E7j{Lr5LW0`dO}d4SoXlcR+}qNjvqCeIhvVw9bHO4tto@>WWL delta 307 zcmbQCF+*d605_{V0}F$~WKnJhR!s&D2Cd2G1w|+4a~ts*Gq5n2FmN)MGVn8)O<u=c z#b`ZQlgE<LX>u};4XXzO3xnt6B|J8)ehe%O{*#~bII@N?a4>{U*5;ii8N<NJ5X->D z5XT_M5YHgbkjS9Oki?+GkUaSoZ#HAWWH-J##VQ6?hH3^Lh8hNOhFS(WhB^i%hI$5d zh6V;*h8hNAhL*`s`Q|A0Gq5sDVBlex$RN%zi9wcOGJ_(+6b3bhsSG*{6B&#cW=>wj z-@-V5vbsPJ>v9HGh82_R1cDehPrfJ+!@8S+jbYDZBSA05Ba>?d0~yawJ}+p)cyTh1 zkR{{Q$!<b6j8c;i2#HRfA*2pwf%t!gJiu(x$<e|f(Nn@QljjR-F-lE7CF}<Pg=|UF diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Enum.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Enum.class index 3420fe4b532c0b0ffa02156d77e137f51c285d92..0123e617071c00e77c20b2f8ab285a1905736506 100644 GIT binary patch delta 293 zcmaE?_*ikn8xB?_1{Mb8$sai^7<DFVaXNCEGO#e1F>o@NPcGq1XSA7ohtrbLd9oOn z4XY;u3xn6>j~t?tbGX!5{TWyo0>HerTso|w3>*w$lkag&lZ<6xWr$<oVu)uDWJq9; zXGmgDWJqREVn~_X%bm?wIQb)o@MIpIY{hB@R)!h|9)?;5afUhuIfi-$C58qDb%sU; zU4~i)V}{nrGkE4GPGDeVn8?7xFo{8&VKRd(!xRQZhN%o{4AU5N7$z|oG0d7A%G<)Y zVDc^AAl4NOtPCqB8}bD)ZkgP|7sa>(?7A;}DvWz3OY++=%1#aglas+D$Q_UQO&Mh; ZOA3JGK>Q5?oRf<Lv>0W<uG}DC3;@zrNiP5Z delta 293 zcmaE?_*ikn8xB@^1{MZ|$sai^7&RwraXNAuF|aTgGjKAPOfKO}XSAGrhtrbLVX_#P z4XYai3xoUQj~t?tbGX!5eHd66e8If6Tso{l3>*x>lkag&lZ;|uWr$|rVu)c7WQb*u zXNYG|WJq98Vo03a%bm@bH~Axn@MIpIY{d!&R)$Ij9)>CgafWIJIffbrC5BoCb%r_y zU4|+KV}_>5GkE4G_A;<C^fB--^fQPvOkj{@n8={WFo{8pVKRdbLqCHN!}Q6aye*7# zC*R@?VqMC>%CKy*Azu*V#>p*wQH)!`uKU8L!nkv?B)<)#)Z{QQIT=iX-0_&-lu>H3 YqyR_`#NQymIk`wci%|;f$_)a>0CaLllK=n! diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EnumObj.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EnumObj.class index 115f9ea4c64240bf5363d7775bff8cf6af9109fb..2587342a8a8c408cc917732bc2c464232512876d 100644 GIT binary patch delta 265 zcmX@6cuaA_3l3H#1{Mb8$!|F<7<DGAaXNCEGO#e1F>o@NPcGn0XSA7ogVU1Hd9o0f z4XY;u3xn6>U@jY0e+CwYfXP$199csdI2ghv-{P7k8Oy-R5XZp95YHgUkia0%ki?+K zkj$XOkTSWGJDag^@>lLU#cBpth8hMQhFS)3hB^j0hI$4ih6V<8hDHWmhFS(=hSteb zc;+ZhU|?mK$iTxei9wuUGJ`C`6b40xsSIii(-?FZCNUT>%$gj?+rqeD@-^Nd))fq_ z3@az=^0_f?nOwr>%eZ6mAwEmSJ(K_N*)YmZw&VwqWngkMzXzl2<Ue3`gMiHBPysDQ J*~tw8ZU6w>KPdnJ delta 265 zcmX@6cuaA_3l3I!1{MZ|$!|F<7&RxWaXNAuF|aTgGjKAPOfKL|XSAGrgVU1HVX_dH z4XYai3xoUQU@jY09|jf%-^o+B99e@HI2eK_-{P7k8O6ZL5Y52F5W^tI5X&IX5YM2< zkiekCkT|)MJDV|Y@>lLU#R>*ihDrt=hAIYehH3^mh8hMXhFS)7hB^jahAIYQhNj6= zc;+bfGO#lAG4L?-Gl(-xV31{)$e_qDi9wBFGJ_67KZ6m&^vQv|EsS#~U*ip8UCO}9 zuxzp}pBv-G$t8Tgj9Vuk;<IGjIr$Ht4Wra#OMVbp1|~Q2doW5({sU$=2*^wh70_ao Jn%p4Z1^})#K8*kX diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleObject.class index 659351d7e01a4ec979a2b48366116e7bbc58978c..bfc252177e622221f6769435e43c1dd0126e8482 100644 GIT binary patch delta 645 zcmdlMx-E3WTnS5M1`Y;Q1|bGD25AO$22}<P20aE%22%zt20I3A1`h@uhCl{gh6n~d zh6DzEhI$4AhRF<u3^N!^HeZuyVsx}-;9#(2;AgO75NEJwkYjLQP-Adp&}DF9FlBIN zuwigvaA9y|@MdshC}ePF=wa|=n9ShCu#>@?;R=I4!(E1e$up%^vxYISFoaK5)DoT? zBW=l<z`((f$RNUyG<lwMgk&}Y3quYACqpg+A4494Fhf3rBtrp%0z=_sewnk3Ws~p9 zSTfd57MHbQZDwF$XaSp&Evw1e$-u(U1?H`h)nn~v;9!_A`M&Hl$>|KN3^N$G7-ljE zGR$I-XPCpF$S{{diDBO4KDlhh)nFaG^4W@88CV&%G4L>KXAo!D!63)5lR=4L7lS&( zZU$Y3?F_~Y`zOzopQCt+ftBGj0}sO)262Y746+R87!(=KGpI3KV9;SW!(ha4WpbFp zI>uX*SrtQAA2F~pJf1A5BtN-U(U|ew<c*5atlt<|8NN>zR0?EbWSYEDQGfDeB^_2S z23AJy$%0CflkY0&GKztnB&Tf6D#yUeC=W3}*_csl@<!ztRwD*BM&rpsD#?silgm`> z8J#C@Q*mbWnfyy7kTGPkk7_h$41+LZEQ17N+~f_arJP9&tc=MFT#PA`_0%#sa~N0| za~Zf9^CmA)D`G8U;AAYHEUsS4*f6<Q-J7v}@-G$n$v@Q98T-L*FxD_+oB?K4Xc#ii z0kigMs4*^>{6xcsQFgMTCWI87T&$@M;%f;{UZ-gaVrhy_{s|Rx1M#(FCbwuA0RYcT BnKu9c delta 645 zcmdlMx-E3WTnS4B1`Y-#1|bGz25ANr22}=C20aEf22%!g20I1~1`h^JhCl`_h6o02 zh6Dy3hI$5FhRF<i3^N!EH(!%zVsx}%;9#&~;AgOA5NEJqkYliAP-C!T&}Fb^FlBIH zuwigyaA9y_@MdskC}eP9=wWbUn9ShLu#>@q;R=Hf!(9g7$up%^vj#J;FoaB2)DoT? zBW=kU%fP`9#~{KGKY5;Xgk%N-3qvLYCqotkA44{SFhdT5BttHP0z=+pewnk3#gp&K zSTa^k7MHbQZD3$wXat**Evw1e#=yeR4(6?q)nn~p;9%&Td|!5&<P-*0hN%o(4AU3{ z8KyJHGt6XAWSGUE#4vkupIkQM3a}1d`E12a46F>B8F(1BFo-j3Wsqao#-PNook5*p z2ZJud76xO6J(Fk3&rv+iz{+rffrsHFgE+$}23dyF42leA7}OZfGUzazWH4g5I5|vV z9pm-MtcoG5_Ze6j9!wTglAm0wXw3L}@<zpI*3S&A3|}S-Dg`nz{GYs0QGfDeB^_3F z23AIn$%0CflkY0&G75v8B&Tf6D$T&kC<8G-*_cs%@<!ztR(%FGMuW*hD#?uIlgm`> z8675XQ*mbWocv2AkTGzwk7_h$B!e(x6oUj~^yCeyrJV5$tc(c^T#Sj6_0%#sGZ|PJ zvlzG;vnMZ5D`G8X;AAYBEUsS4SUb5_-J7vx@-G$n$v@Q98GFEPFxD_+oC;=DXc#ii z1he*Ps4>o+{6xcsQEIZHCWI87T&$@M;%f;{UZ-gaVrhy_{s|Rx1M#(FCbwuA0RYZK Bn9cwI diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleTuple.class index 1f882a77cee7eb20ecf3d2a6fd6c1f03f5291d56..0f49588f8af514765455bedb187ca03f840ea30f 100644 GIT binary patch delta 307 zcmeCy=+@Z4%+0FAz`~$B`M;p(WLa))RviWo2HnZN-0r+)3@i-h44e!W4Ezk1lNWMV zG1^U*;jv_NogBtv!|Khz!r%kewT4HXHIRXYAqdQS%cH{@&cMMCF<Fjxnq)i!D?<VU z7egY0AVU&^JVOeDB10;J5<}YLv%J}i#gi@h>J)1kSQ+XVco^y##2FeG<QN(mlo*;A z)ESx?bQ$Uyj2YS|-{700IEjIkVKM^`!xRQ_hN%p)4AU4C8KyI+G0b4lVVJ^T#4u;_ zRQ?vmMU$ljf>>8EurjQkTqqF4xNY(gff&|(3~UVhC#wp2F&>{>AQ;GaVe%nC8^$Y> u{|j0&-k5ADWWy*sxeQEh29qCzJQ!ssTMC23_X^8Qo+PZrC_8ztupa=!1WKj= delta 307 zcmeCy=+@Z4%*`s#z`~#~`M;p(WLa))R!s&D2Cd1y-0r-_3@i*L44e$64EzjclNWMV zF<MWS;jv_NnjFSs!|K7n!r%$kwT4HX)sKON!5_?f%cH{@!oa~0I$4f)nq&+ED?=;; z7egF_AVWNZJVPRbB0~~`5<~Ljv%J}i1(PlL>J+OOSQ)Arco=FJ#2IQC<QVE0lo;w6 z)EOEWbQx+Gj2T)c-{700*w4VqFoA)GVIqS#!z2b-hRF<y3{x1?7^X7lFid1HVwgF3 zDt`;({K--RL9ELeSQ%DKE))o2+&uY+Kn&|{1~!I0lT`)17>`UY5Da8IJNb~H4dcbh u{{<}>uTHiUvSE~(Tm~jLgUJs<9*k0xErmhidxd2tPZHK*l$yL(*be|&7D@O3 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Expression.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Expression.class index b310022591c4653aeee9b6bcdc54e0944262d033..0f6ef228daa041d9788dd31365ac626c92de0429 100644 GIT binary patch delta 515 zcmaE)-lnl3hLO>Aax9~rNLFfciM3`JBLh=`0f;bUWH6Yl$fh{ipOuRRBsuvSV?RG% zKw?RTXGv<Ve-cP+a{*H(lbB#}Y6+@1BZIL9OtS(=A=qTWbWC+d8k#VL++c<5409P7 zEGH|nX-r<g!6TWGnUiA8$RLBEb@NKrQYJ>d$%TwsVCQZ2<e13Bs>Hy;pgj3LmjkN~ z0|$fdWEF0AUNZ(326F~Z1`7s$2FuA6+*OQrlRtA?GP+LI<*{M)W?*6PnS7s1baFF~ zI%^;U3q#Q4^*oNO;S3xM5tG02Op}afU}Z>P;9^K*5M)SVkY`9?P-IADP+~}%yo5KK zv3RloU!7tt11m!v0}n$zgE&J2gB(L6gAzj%gE~VqgDyiogE2$<<n?@W6elsTGE8RR zVVJ@o&M=ihmSGx$BExhBHHH}sIt)`7j2Pxj&f#xiTr~M3e-P^`23CgElRX527`IKH zEfB-HkAaP0|KvXcUW~^ly9)*~UYI;n(1!5}*yXPURTytf77(&wl$|UfEIK(!NFB<W b4`v+~@&NNe^1i}ujIxt`g=Hph5H<n;YW;=z delta 485 zcmZqEc%;4|hLO>6ax9~rfVE~ABLh=`0f;bUWYC%H$fh{?0wdStdyM_uTmgwC8J;Dn zx&BF;YnU>bgm{ZnOAum=4Eh={^}=9-c+-*PC;wwo1DVBc&CW2Fk->7ZBb&zLC9J}H z5-7?xpJXj%V$_;k$f&hBmt!Imt2_e>gTmxOVd2SQ+`6oq3>*wvlRdcId5sxZ7)%&A z8B7`Y8O$cn;jUt|o*c*{I$4KDh0$qpAdd~J2LlU(Cs^lF9!*w11{MZ?Fz*?U9%~2# z2Sey&N#1FaF$}B>u?$=caSVbC@eJ||i42MiNeoI1$&*j;W-}Imb-43oD^@YEGE_70 zFw`)JGt@H3G1M_AG1N1tGc+*hGSn~_Gqg;;%r{4|pMjNO0s{}jL<Vt&Ner?KlNl5l zrZA{6Ol8nvn8;wnFmv(*{uajhlSKuBSeG-fGOU=KBM`*6dGdaN7}nhkYz%uQD+qcq z9+{ji7|3{b@?Jq3#*1JV@CvChUY%?rWWy*mxe!W<PChK84&n<7PyQ!l3StR~PWBXr Ph`E9I!ZMSu2pa(ar(t?Z diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Extension.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Extension.class index ba40763b0a3fcbcb0111a419cd1ec372c96b7c16..e647508dba6f3ec5c05228ec4d342dd7ae2ee406 100644 GIT binary patch delta 305 zcmcbna!qB!Y))1s1{Mb8$qP6w7<DG!<aFaTWnf`2W8h>kXW(P7n5@H9#b`VEA(!an zJzOe`E|VW}*|2&surPQ}Ucf0j*_>OQHGqMIArQ=~;MQRcW8h#2pS+TLnq(XUD?>a3 z7efMrAVVU9JVP>rB0~y;5<}|b2%c=lqRB^i>J)1jSQ%;=co^y!#2M-t<QN(llo%Qr z)ESx>bQ$Uxj2YS{C-crxoXEh+Fo}VOVKRd_!xRQthN%pS4AU6Y7^XAmFid7JVwgQy zfo~Gy!pWQYf>>8FurjQgyq8~cvNFFV<JQTs{L!p?8CV(iP2S7z#&~ivi-0fVS+Hx< t1ymR>PVNz~VU(SG5=^oQg4oW29*nY+d%$b~A(_cf1+^GuCkqI<0RR*@Nc;c* delta 305 zcmcbna!qB!Y))2r1{MZ|$qP6w7&Rx~<aFaTVqjq~X5eHnVc=shovg!E#b`D8A(!an zJzOe`j*}m9*|54ZurPQ`Ucf0j*_>OQ)t7;V!4J%<;MQRcX5e55nY@yFnq)KsD?<ze z7eg$AAVVC3JVOG5B10mB5<}AD2%c=l{K-dn>J%#(SQ)Aqco?b~#2IQB<QQrhlo;w5 z)EVj-bQ!7{j2W6IC-crx>|<bM=x5+zn7|;;Fp)u)VG@HP!(;|EhA9j>3=<fP7-mdX z;G4uaZ}MioAl79JtPIO1@8y@Atjur8xM^}Me>CeZ23CgMllStwF&>-DBH+t-3hdf+ s0Tsq`lY0bg7^Nnk1e0unAhxrh2cy*F9xz)#NM`a=K`ln9$pS)d0Im^8Q~&?~ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExternalDocObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExternalDocObject.class index e36b08670e23e695429574e710f5024859da54b7..770c960d7e853eef101b90ec122e843370046d4e 100644 GIT binary patch delta 532 zcmaFp^U!C*Vlho+1`Y;Q1|bGD25AO$22}<P20aE%22%zt23rPgh8PANh5`m%hEfKD z&1b~K8CA_0I2f!L_!+Dj#2IWD<QQxj)EMj-bQ$a!0vH?^vKgEiN*G)wb4c{CdNHst zcu!t0B|3SXggIvj0|!GWg9t;|<aZK2g7FM23<(UJ42cYU3`q<k49SzdC6_a1O#Uos z$(TP`SIUO9l!1kz46M6ZN}aWufrX)F@_H#p)<y;nhNj71rKU-CGO#jqF>o<-GYB&D zFvv6XF(@+hGbk}kn7l+fn{n=B0hv0*<qWJ0D;RhfRx*e)tYVO3Sk0isu!cdMVJ(9$ z!%7BYhK-Zg%gj;S!@$b0mw|_2AA>l<eg;{F0}P4`2N~2D4l(F3>|-!uI5s&)b`s;6 z$^T`8Sg$a!GF+X^DK9^{RL+?3!Q>cu{mD1vbXZ?7urj=y%qbtl_+@g8d<^R!1~!Jj zllRIeGqOxpRIq2{ot&uP%qTW_sX`#5+~n^H(VS`w!i?$+5{w#?qZLazbr@I~bs4xA z^(Nm`%;Yp<U}ZFC;AXU#?5$M9>cGIs=s5Y1QYoX?WD8|)#=yx-733!`R#s<>oGhRs zJNbpOI%Cpg0Tma<G;oMzsi-h!P3~8*VU(TRuPQqEp^7?`C8r8vxv6@9`5^f-s&0(3 Nlh3HiOx9O30szj{fX4s; delta 532 zcmaFp^U!C*Vlhnx1`Y-#1|bGz25ANr22}=C20aEf22%!g23rOVh8PA-h5`mHhEfLI z&1b~K8C6XfI2g<s_!%r1#2G9Z<QS|N)EKN8bQx?I0vK!=vKbs0N*Ej`b4c{Cx-+ma zcuZa|B|3SXggIv*0|!G8g9t<L<aZK2f-wv%46zKH3~>y64Dk#i3<;CHC6_a%PW~)u z$(S=)SIUO9h=GNn7_7TlN}aWWfrX)R@_H#p);b0bhWg20rKU-?F|abUGjK6<FbFbq zGRQM@Gbl3jFeowfPF^CN%{XhafJ~j@5(ZX=r3^d_%NWENmNUpPtYA=LSjnKyu!=#K zVHtxl!@9}qW#%aEWMF03#lXX`n?amm4}&bjUIs;meGF<0`x$f?b~6|;9G;vbJBjh+ z<o~iktQQ$r87@ucl$W1eDrd}icXEup{^T2SI;>9_SQ(y8=9CX&{5UyAK8E!t0~^Dy z$$RCK85t)lD%dk}O-@vBW)z;hR3VU2dh&OLXijAYVMY}O2}ae)(Tb&<nhdOrS`1u_ z+LLc8W^x)curiu3a5I`t_EsulwPoOBw3~cLsg%)uvW2oYqu=DE3i6W|E2}exO%_m* zo%}*soiTp0fQk!aGC0JtR8$z#C-<w^FiK7CR~4Q7P(>Zel2Zk-+*Ccle31MZRX0Yd N$!An$ChMyi0RVc|f0zIO diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class index 2df7717cf9d22f19130a0b4841a419f61185dbb0..9dfd22aeb0a229e8127a696780b893f9d2fa906d 100644 GIT binary patch literal 14209 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 literal 11995 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 E01%vdmH+?% diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Head.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Head.class index 6c1f42d202663b957867d3217122ba0d124a79b8..24e1aa31077ce2f91bb4954483c33493486c0a91 100644 GIT binary patch literal 4526 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 G8Yci{RiADE literal 7318 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 DP}bOS diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderOb.class index 667e96f5f98213e4c9644ff0cdefe84cd2732809..ec6e346c798adace95492f40ac5a0db0a81a8bb9 100644 GIT binary patch delta 2592 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 aIL?r(#>r5~aGasYL6V`A;W$H?8Ycj}tFOxd delta 2817 zcmZ2%@yV+G)W2Q(7#J8#7^T@6y15t_8G5)FI2n4`8Tz;wSRkB!5NiTRcp^K)Brb-@ z3{$umEEuMOgr|Xor-Ss(0I_C*ShGN^*&x;&5Nj@oH4ns^4`M9<u@-`eMO+Mw^$d$a z%q83mOBt4NGc0FV!OalDuo6V9VrN**&aeg~y_Sn%9m9Gq1_g!<AR{({#5S=rYzEO= zxEQuFY~x~3W7rOo+W`{W$;GgXVK<1o2gKdW&ae+;!G10VeTD-d;e#OVAua|xV~`i^ z7!GqW*fAUd5l7h>j)CaoATOQ(5hp>!DG+g*o#6~S!`aPJjDAdl=NK8dTq}}O3raHc z^NQIS&Tp<{-oeOtVY3lyD<k8j$vfCm7%xwjW%pvdGC6~NFPpIiBZGm)WCa$j$rm_T zc&!;3*n(2i+*3;!8G<Hfa=3H5r<Ukt6(y!ynVD_g$05PU5y=q6!*G=$aq>e>6M<_C z*LfIjFx=!}xW#arkwInh1U8j=c7{7V40jps@h~_rIPx&uXL!KF@Q~pV55r@ICp-*K zL0X=Hv^)oiy#R^51c|)@iM<Aiy#a~61+m^SwDT~$XZXOw@R8vYJHuxlhA#|X*%`j^ zFnnkD!Nc&AA(4mS7ehNEgFsedS)zVUVqUub<Ss6Asdo&&*%|)uF#Kis$HNfG@Slf~ zfsv7ik%{5c<Oy8LlmBt?8Za_5vamC<@-VV7vhy%RGIH=Rax!x9Fmf~Uuru=VF!C|- z^Dqi93i2=tF??cV(42gbNnvs{H@Au~qX<a7C=a6;qc{(v1fwJmLlP)dl0ifYLn|YL z#^i%c8ZtZ#Eex$Z47m)cJPbJ?A_GLEFr+dvsDn-Wz`;KGD|a)C6eEK*T;PKU*W|T4 z4U<E7Jq3BvQ%izU(^894^O92;8A3HC7c!|bYECX>k`gI`iR;5vSWi~q5lhR>Pf5+u z$0E(hAdsF~;+t4dkecG0pI4HaSHj4ks^NnOJLjCl;$mw}BoY6ltkmQZYeoj{;?xq4 z)Wnq3BL5^t23?KGiY!{2XY!`7*IO{yF)%XNGcYiSFmQt6oPn9aiGhLX90NN88v_I5 z?A;8Ek=q%V{Is?)FwbPr-_5`hxt)R4ibaw|Ya0XGHU@S{7A@^<3>-q7+ZebGFmP(? z>|o&D#=s-VvO#Mb1Me{gZe0+)je$>V8v{R-%fF35Kx-R=;IVp$wBR-dA+2o;!cb}9 zZ44q>+ZaTlT+wX|Vp`i6#Gzbq2v-8imDt80skMzk>KKCyh}y{@&B(BmL57h5<i?#0 zvWyHf8MGu>b~4B@G8|x#w_?@Z&7cq|$*LvEx{aY;5#(N_?F`D>7*v-3zofN|K^0<< zDp3Zh!3<IdnWM3tL30~}7Q`IwV+;ZyuWN&3bha^o*m@AN_26dL<8!4x$nb3pdXlU= z84Q>hwlf%RV=!9&|B{ZD?oI|{W`=Ox4GatnEDX*J3=C}yiVO@43Je?!N(}rA$_x?= zDh!GYstgtkY7Ev48VpVhnhahHS`2{<+6<8lIt&R6x(pc%di4zX4EhY^3<eB!42BGC z3`PvS48{yo8B7@FFqkqdVK8G@&0x-Ok->uD4TBZKX9jCVNd_B669zj*YX*Bp4+aND ze+Ea!QU)i+2@GzGGa1|&To@P_f*3d$Bp8$#Tp8RLSQsucNHDlFcrdUsO2S#CP*y!F zD2*|AGI%jCfLY!QJ`9XtmM?=J0}}%W<75VZh5!a;hCl`e1|GOv5CaoKFaraFHUs}3 z25WW(Mm`Am!yv}a5b}$`0L~DGvlv3b!NtfB#t_cHz`(>1!BEf05Xlh5zz9n748{zM zAoCemwYD>uYy_(S1uYi?69WT-F9QpMAJ}(bM=-E5L^H&I+{_RQH$WTAXJBANXl4VO z7>=Zo5vq}eA&w!w9%{7?)M_T?HE??&T4Rv3GC{R6G9)l064aTDRc8|1wIJ`-GcquM z{cDPFGQ_``3@i*;NG2fsn~Y)t%m6cV1M(SI7z(f&kiwA4zyuC)Cy@U^q06PUox%J7 zgN2VaC`mJclQhH~r3@SlWng2(!12HZ4Fe7aCWbVI7zRdotfsRtGGu^_&IBbUhAajK z22dDgGcd3)g353(oy(94rt=u`8JHOAAqk-XtXP_XiJ^pnk)bq|p@N~3p@xBpp|+Tz zj-kGop@D^w!Jna#ff0|wCXm8r21ZcD0gW7eXtaV-lqJGvAXhOkEM;(EsE4L$q~z2_ zMAWVX2M8n~LKB66BSS7jD~7$>7_89kl|s^74~<p<M}{1%x~=i)Mrh7pXoW^8!pqwj zYzS(uXJ7z_C@4g-85jf{8B(yCWJ}N_1_nez02|Ye#X%Ux_#+1f)H?`s7?`02MF&GC oI9qlx6f-a|NHH)o6f#_7C{p8OC}X(DQ0^efP{nYOp<0a-02HF<!2kdN diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderObject.class index 6243552974751564b189978405e41a7b3c2108b8..9d722a916756605ba9237a3b75a17884768ca9c4 100644 GIT binary patch delta 1327 zcmcb(i1GR&#tqSOj7F1V<kWdNgHqE{i&FEFQyCdTC-=&^^FereSw)HIR%XVV@5^1` z<5Xf`VP<FGWKf>GN4G#!hk=7ZmqCO<k3oS!pFxMgfWd;naI&Lbm!%a{oizg=gAIc) zgDryugB^n$gFS-^g9C#WgCm0hgA;=}gENCIgA0QTgDZnKgBwE-gZpL{{Q^ctpULYD zL??F{s4xakUT<K-8p*)I5H;D*P;@e@p*m|k0}DgKWJ5zo)>H-#hP26yR>G6J44Wl$ z8CV(e7`Pbn83Y*$7~~m>7!(<b8I%}GCaW1`Gd4~(G!&k^)F@lAn}L;~hk=KomqDDN zk3o*1pFxRX0)slkL<U`kUIt@^sgn(j=O`{<U}adyz{9YJL7ZVRgDk@m21SOY3~CI^ z7<3pGF&Htdn*7fA8RLe@S4~1#cQCLr?4112RC2PrsU_o)$&IGbtY;Wl8O~0AXzIpz z18j4?IsarYGac3k46F<fCqFcmpFGP<o$(D^?unTW>lX%AhOb~b6LU2tMh2*)H7f@L zD<db^f)nPJj3Sd8P4y=mTIjIKFt9Spf;BW+s55Fn)$>n2ZK1<zz`)9A2$qw!RA;n- z%cWZCvbr*`F}h7Y;2<`6t))M!F9Ro|-(*IsK*rF?F}4bmi>>q+V<#`Na$roGY-=q& z`Ja^?WBz1YYgg8C23E!jusar5>oPXO&HP}k%i7Jr#@I9YfP?mAUmFX?$&=e`>>1}w zK4#<0xO6g?Z6M>?$uYLkoLd=$8MiS=Fm9iGz_yfgHv=o<9tJMPy_4<iGC7YjureNF z;AT8Nd4pXM>v;xF#tW0x?MoSNPM&M;&G=w4m#zF{4hMC{7n3)7N>284&}RGyX7xGf zvi@XXWBfJwfI|`!6XRqRM|(!D$tjM`jKW||#~qCrrNLg4a<b-BW)NmlVUS=_oqWJn za&oy-45uaoE0Y!j7nAm6J3GnAU!4LtjTu;(Oc=PCOeb%!lboFH9LZ|Sz{zAcS>0ZH z@&{)xM)%3K){>J$T#Oj~z&0#%QD+PTJLb8IHe)=PrQ@p0n$Ez+lmQNuPFD-Y{K<!0 z?HMa3Gr2i4HiGq~x*0Kcf?c-5&6;x}gD}%11_`FgV3&!y$8b((U}c)Yz{NBZ?6S%3 z0h|jNSeX_va5F6iyNuN%l65r$C(|0R%lbUL7`K95_Q}JDaSzxA7f*G@Ba=6J%1-X| zRA)T9d7~#AQ~gZ_PNrK7f=ss=B$@6o=rG-7uw=T&;LP-Z!H?+?Lpal8hFGSj45>`d z7z&u4GgLFZU}$4{$uN=W6~i2+*9=RT-Y~3Zddsk#=^eu%ruPh|m_9IEW%|f)m+2G3 zGp5gsY)oGm<(a-Rsxy6O)Mxs^Xu<T8F@otAV<FRT#!9BYjE!PU{}`t-Gce9%W@cQ% z%)q#unVE45Gs|WlpFl=Y0S0zvK?Xr)VFoc~5e5lnQ3hFNvB{f!3mBy)8ybpCHuqCy zl$#vuX9G(4{-TrD`>BIj;*;O`sWQrf)1<n;DU?;<Zw!_doxIZ@q7I}FR1~QD^G&u7 afQX4st^u<^;syRZlMf^DI483QdI12PW^-%+ delta 1317 zcmcb<i1Feg#tqSOjK-5=<kY#?f>P7mQ%e{bf+kOpbLVzXEz!#=N=&yhGu!-B?g}5L zJOc|e3j-&E!sJ7`1)`b^91L0vA`IFL3Jf|7It;oD77Tim-SxUG&7tZn82A`08H5?E z7$g|18RQsj7*rT+8MGMe7z`Nf8O#|R7;G6F8C)2g7`z#r8G;yGHgoA0Ffw{ht~Rh_ z44Aytz=k!9frTM_^2Y$-$()9otT7BM46$IIm!TeO5(5WA^5j~>X_8qCtPI%<Tnsr3 zf(*F~@(lS5iVOt|N(_aQb&RqZ>%clz8)YkYFt9RoGVm~TF^DsCGsrRYFeowfGN?23 zG3YXMF&HyUnrv=7M{zC#E5ken9)|f0;tUHIWEmDRC^9T!P-9rkpu;eq!H8k`<S)k0 z7}rj|Z4$z|m4TIE+vG+w$;s!;*(L{@8Z#c8%weHFd7G&Y>q!PyhEtOp&EzMunW-~g z1-l}~l7Di5nGWk+23Cf9lN-(47+=E0UzzE!eq>-}_ypEtWv<4=@E0!GVy?r=%D~FV z2DQwRQE)PcMKr4<11qBxSVOyoI-@FF{Y48MR$T^GMm?~cqNO^cB~;Fa)ro<P(RuP* z%T!h`22Mur$?R5vj6su}6ed?%=`lu4USZ|Hm^|6hMRGEewF6@gm=$BK!&<_?%2*1v zewno{V*}JU{>k60by+(Y*cdw}YuF?+PMF+dW6wBq@);Xv#zm6_Yy%lrfsAglwdUN! zAk4U#L4tA1<YTs_oI4m;8Fw;pG47h&;4V2i)-Hha5CbdYVFqr-Ba^q;6|tUS;AA{I zS=YXl@fz3(d+d!E?@ku5m7mP#pw9RdY<-^t*W_Rab;fs4o-yk;1~$g;lQnF#Cx3J> zXJY&}S<BI$k$rNOqcfubSo2v&BSwiyPSKnS48lx`3=&LAlT(~ZIn@|gnbaA$m^8qy z`Rx?IX~4kBWXQnHWHdR%xro(@fs@I4vaY@M<ZsSij4qQMUA!5+!3M5zQD+Q>+Rrxm zt&28e44h}=s>_<fz{Zpcc2U2p1!K<S6R!4*rIR__oEhuD`m^1P7~4QWw9n0&vyVZT zsh>fDX~JYC_fpO&46IC38Mv6HO>S_{<ebOA$~2#Wn`y!1PwqvmD;PMLR)QTg#lwqn z6F7)|co;G61RLt*sm^#1?u-kbER*{^)frF0L^faWe9KsWje(QtI)fn74F*Z3n+!Tk zw-_v$ZZkMD-DU7&y3Y{K^nf9j=@COJ(_@ALrY8*5Oivlwn4U3AWO~jphv@~w5~i07 z>zQ6LY-f7SaER#*!zre>3|E=nG2CT(&+v@t10x&LM@D(3PmJnJUl{e7zA{=cePfJZ z`p#I$^n<aI=@(<87}IaYsZ4(vXEHM|E@Ar1xSW}RaSJo!<{+OyMp0e{c4j^XL1qC4 zF=jyq31%S%S!UtMJA4Zm#lfDi@l#`zo}BDw!zeX*0hAP-{K-$9Q3@=t>u(BX$xN>I t*8-~%pM20?70eQy{Kp@mj&HJS0EoB1Pjqq<nDsG0X7aHBkgksbX#imqeLDaE diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderReference.class index 3f96a0d478b665d5eb10a55bd7213cf9a1253c7e..9cf047c8224e00075f661b0774dafaa6f01b307b 100644 GIT binary patch literal 7913 zcmX^0Z`VEs1_l#GEiMK(hE1Fd><pW^7}y!MfVf*h#5NGIot<F^NO&hm!7dQ7n~Px& z!(MiVee4YT*%=P7GaTe%;Ahyx!EgvfALe2>!f=#};TXel5cdQZ10TalkO8Ma#Az;u zGYn@ztaBjZJcxS%WX(m8$(J}7F0(US;bKr=xXR5ik>MIh@H#ug4K4;1kjPDjTkH(C zIT-G6F{m?~<Yu_ZaE+beE*FC~!zPevVB#JZLnFg|kk}TGf(IN74?%K|xELNYJOLT{ zl$&7%!!r=^oSoqX7lQ@EOAdxtAYHFP#2XOt7DT)Q$-M_T?gKl+M=l0OkS%TupFqZa z1`%J_8NRYJd}CzbFUikN%?mCm%FIiT4@ymAWDxSnN-Rs%&q>Tn*N2E(Gcp(_=jRsW z7pHopCZ?no#X~6nq<G)Nf_VR=tkmR^_;|<Q5WoDC)cE+a%;L<F)D%Vreuz<}C7C(; z!Ko$Ij0_?fU<069;0hU|7#Y}XGV?M^>=+rCH8jH*8Cab2Q&K@jWag#%mF6a;7KJ1x z<)nh#m!F)N6P8$%3F1QqSxPc8iy0XVeNs~OOG;CUQj1ek^Yk<G()5c<^z#c+^AZa( z^%ILr^dT+}N=-{GO3h17wPs}C1zD@&oROK6Qk0s<$RMf#aW!%PfE>hBV8F;A8C05A zl9`(tmRX#cl#}Y1mzQ6XSdy8aSIo}vgOP#TIX|zsq^LBxB)^D}fyXm1FSW=yC$YFV zwV08?o}lBPA&4+l1<5>XMh2F=#N1Ry24-+Pv6NI6q%tzFLE?y!fh9XLFNKkTH3Sr) zj11g)rMU=CF>7dgGBWVxCRTbRmZb)zmKSA~fK1ZRjACTqOUo%O&TuR#DRNFs&PZis z5CID~=jY_4CWAZ&6=qG&$<Iq=WH8pyB<K~)aAwH^M<|zTMRIBZ$kbv+2A1Uff=WgP z##BZIHKb5?2HE46UlLqeP>^3#l9~e71B$QUlEma}-^2oF)N`bj=Hxho&EaxMEhtJ& zP6Q`DF(d;K;?|4|!X-tisUQu0`5{G#dBth@MY)U&tjVAhz{o(@YtUG-W@KQ@WMp9U zWMp6gnaIe%0ir+#Gcs^w7OS`xmL}#fGU#X!3@n(5pvYh=PAvh)FKbz1PAMpY)1d+) z8k$I6f<(JDJHt<QhF^>fmc&|ul(@ht1r(wvnVXRzk+6#)(d(aN4RH}Thx;ZLSZn&^ z7p228oJp2`L1IyHYLR|!eoAVNewi^e`&lzGut5p}P`neVgE51Vfdit;KZ%h+i=c<$ zZe(O&&P^-;l_lVk4enS*2JZNR#G=I9)RNSqVnzl5B+vL{7K6$wF&~t|rm`Rvn(BOz z)cPhC*g&}8G6Pb$Src?0EY|I;*%^MbGyGv^_{+$^8JwA(msnC-l*-63kL-A$%sE6x zB0IxBMg~q$v5}cn3Mx%(iS;s48iZ@NW@q@%$iU(aF2pRzFbSm7nvsDyIMR=ukpWaN z=9d;Fr!q2FkzrUcST87@CKeZ@CYLZWa5zJ1z#>Klu9Vc|oW!Ek6vq-qhEP|lm?TiK znUi0nTauAloLL+boS7byT3muIuA7xuT#}fQ5>s519Fv=vnHK{SfSIkARg{=+WoBf- z$iM?j>Y&P%k->oIG8dZs7#SE#7#Va4`W=!>LP`sAQmxq;85tQk;gutmJO?)q>N{gb z2F@Z#4HS~k$e>Mx&tO@Fk%22YF%MpS=@6k6;y?c+P~!uo0ELGW7bLRXGC{2i5r}#u zHz$@Q@-X-@`13IMF!=H?)G~zeFr<UH86YB)VI3obK8dXk9)?VYEFMNChB6*TW>8~v zA4p_9BZF2n!T3T1g$lSd0~a~CD@;ZPeuOgDq9RbcL>wUksYRShGjmc>ix?T?!78j2 zz!kkhUVe!}F{}z!NXsu$;9+E8WMyY$<6&fH<X~sy<YDAuXy9SwW@rEfQ5X+H2}2eS zLoP!WJ0lN>vxbL}mywT$k)Kh3hoOpL4G%*#Lk$mu2ZJXg0|O(2FxVmB^4PJcD6tY$ z=<+c5F$(f93NZ@vFnBR|GcpJw6nP{TX9TB~urrGAFp4q?Gcrhl<-kDzZJ5DZ3XBZl z&Y4BYr8$X33Mr{+phjM1ex5>pnnGepNfEfjQh>y@f07<b1*icN*1^`g)zo8TP$8zu z;$f%<g^d_P8V{p5$g!5hy9YV%YiR26FiJ2=vNKBYFiJDZ@G#0U%JDGDgUnT6SkK6y zO<d{&XK@}zMTQ1O21b1zMkPjN9!3?06dp!ZMl~Krbw*(xMh%8_JPb=1mNGKv5N9YP z6Y(&t2E}a^DDn##vKSdOh}8{C1K=nGr(#f}o}E#Xk-?Ub8PJ@7RGA>PmKhlY5NQLF z${88VNjDPQMq*^(0~-cTsh~v4$iRyb@CCIkAW0eQjgX9@{Bn>t7#XZdw-8<-GBTKv zt{YSdGBQ|@t`SlOGBOAu{N-7aT9gRx$gmY87NzEaDnW1~8Qe``ODrfz1$8)dvGtdb znnRGlhZZr`DDeVGJ&X(->8T~)ZW1GdFiIH>7PLkw!@xp}4D9KtC4S)E5JyQq#0o|R zbt3)E$iPvYS_1AJF*4{9Ze>AJnzbjW9|(3Vq_3c(;Ymt&fkgvs0CQqW3R*W45)js) z_CHd>3Qh$Fd466=VrE`3BLjP8v1@KYNhKo#TTyCmepxCb14~hUehDLkArTd!e?e-V zV}K{rDn<rfLV<;%0p1`17bC@t3_`Gof@cbAP`3x3X2ekBVQI;lk%2uUvDh!Qq6E~P z1ygM4sU_a2m5dDBIf=z3o_Q&$75-^x0R)L*YfvYaEhjZEy(EK?fwQ<YsTe$P!N?${ z;pvH`cf`oRmI~^H6*Dq$r>B;{3U)>YLqeX1MmeHzVNhgXXK-U+WN>F-W?%tTVGIlm zETAe1O#3kSGB7a6GBARg3Ji=40SpWbHVjM*j0_A6Tw2>17`2$UGB9mqU|?Wk2xMSj z;A3EBU|>*UU}3n%z{#M@5X8X1zyndu5X=z50ID8C8T_FpX@mI;42%c^*uaW)kTf#F zHTp4xF))Fh;LpIsz{J47zz=tVmi9IVW`r?93@i)`45m<bm@)7%n1hWJgJ^>q$-uzR z5YFJqz{n86z`!8Kz{n88z|0UE&A?d95XTS?rV|(v!E_P>3qvwP3e@E~44}3+0|OKD z8o1vfPPYNu1MxEx)E-8LRE9KyI-RlVOoxY-G1N|0t?djf2(NO1z2pgwG(>Q-!mZB0 zY5*&`0sagu3;{?kKp2q8kOd8PCk95aWuTa6JHWv1qrCy{dx$ea88{fiz@|V#nhWX- z4hANMY=#g9Mur@4x?*JDWncugsGy;;hk*rbva{AU1`Z!>#;pvTT3Z;njxh*ogXnDx z+y@wVwlZ*OZ}8d8z!$ljfj@FPgMg6WHU=TBZ4AQO7(}))2yJ5!-OeDkADn^|7!(<J z8JNL|QjUS0fq@~Gft4YSfr}xYL69MVL7pLrL6ISuL5U#+>|6x~W(HOU8K@(b7!(=u z81lg;IYYfrz`(#D%E0u8L7ts~{XZx!*csRv7}>!-DP+iEU<M~meUJ<T0|TqpHU@D- z@IVqrA=oZR;(!Hk5d#Q-5+F!TF*r+<Fl0dkW&=1|GBB8GZDWw|0foge1}$b=84zpV zA_jR7Eo0=TdyIikcN>GGpSG^dHU_B{CdTFe?}1|n5(H`toD2*M)eNi*H4LD}zBof2 zgB(LWgAzjngE~VagDyiYgE2!Z*m+tEEDUlC{0yZGWem&=d<?1#<qQ?z*fE6$1uKIA zLnSyiL4m@{!2FkikDY;?QSKK5D+41#72Ngfp{_SUa=j+P^>SJ=+Zd!_j+a4p{Cy0^ zPhenWn8?7xFo{8&VKRd(!xRQZhN%o{4AU5N7$z|oG0cKHUKYvmDsab}z#XrT)$y_* z$FqQ1^3b4<h88k1TH4zgWM?vnYHeYV(>}n!zJ)<<83Q}Zat0P~?uUdhDDoH>7JwZA zN&7NT3mL%4s*Hh=0Tf!S3`|lEpu(e;Aq;Af9n>N=E$yuga_AXz1p_O?N+e_1;Ks5s z)PV~xMo^O+nngXJ$xjgE*kcS_AZj@StB^b>DI&Xc3)o0VQWS(5334Ah0~4PkJ3}M5 zNaSW<WN2n!WQYZohl~s@46Tq<&REaD!ob16z%YF`gF+<hb_PX1UG1F=N=yvlx;hYA zYYT(&aRz>^-3%&`?AsYsw=yV$gmiZ@s4+3jWZ>P+pdKltv7JG4KU7$Yi6MM9gLdS0 z1|2Jw-3;uJ+ZlANSS4AvG3ae$(4WP?E6D=o7)Y{Mu|ahiGBJcpvTd+pN9MEdXJBIR zW2j_kXJBAxXXpgeEa0-hi9vvYf#CoHC&NJoL54#Nk_?9#bQq2>STY=CaAr8p;Ky*1 zA)Mh9LjuDYhHQqj45bX`87dhrF|;t8XJ}`*#4v^7GC1Ju7}yxX84MWO7}^<F7!nxN z89Eq37+66;0u4+ChUpBQ3|-(dWI97PLk|NJ11CctLoY)g12aQE1FT{M$xUEj0w)d) z29`ezI_wM+#r`rFvNLFdOBz827Ip@9b_O?ghDq!U6G27JWQHl=f_Ex7mZTY&7-ldq zG9;!l%x0LwFrR^mVL>s&LWV`f42u~UK^-4R;$W0zU;#U^MQaNK6D$slz;VE`m4QiX z8-wvS29uo(ri=_e+B+G{7#U_VIBD->FlS^qz+mC4vyH)0Ya4?e2n$(lW3XmP05P{Q z*lc64-Ns-ylR-#l8-x8e1_wWIvp{#l^8dScGdM<WXK?ZXi)e4KVgWNGS@tt9Gl(%H zGE^}zFk~<kgXt=U8ZZq>r&bJn3=9nS8Q2*fFbFa{Vi03^!eGYmlp&Jg8ABq&Ylbw2 zXABt(&l$2AUN96hyk@9ic)?J`@S35K;SD&7K)KM2!H8iQ!*X!x)dGzeP%0N@U={qs zAjr<J;x~iKF9s$*c81A#!g3`jELSlwf;xoIOp7Szw=+0{G8d!)1StkSfE@tIT(EMU zkzp+njesvmI-$)60Y`=^hIJU$Zewskw^kNOGt^oEM}`utn#GCJT*$Bvl6V*p9^S^_ zN`z)`aDsxPn1MmSks%YSK^(*w1aC5cLt+gjA%RUZ(IK&hIw6tEfXx*WM1%x57_qs6 z<Y3HXSdYasq#47&!~k*gMuunx1_mt#R)$E1?+j6DoD5A2-x-qBI2oofd}o-h#>p^~ T;XA`D2T6vx4Br{%sc`}T$j*F@ literal 7663 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 D=T{Or diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderTuple.class index 8705260ea74cb981669e140875ff9f15d150aaf9..735761ac4da37b16110e4786e7ac9a8eb4c0a806 100644 GIT binary patch literal 6531 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 delta 2490 zcmZoRzNKD&>ff$?3=9k=4C}ZUm>7!K8Hza>I2lT~7&sY9K|~oyxEw@OfQU+VhANP7 zHAqzr7eg&W9XmrkJ3|9ILnAvw6BmO3LlFl<Gl*{CVrXS(<6>xM=m2p$xfu8vx<Gon zK|~M8v|cU)22O@P5VIddOaPfWk%M6pJHup<qA4K3sUX%g5HX#dVaCQAPK=DRHcK<j zWn!Pr&M=3O!E*9P4#mk2Sf;Yfg>f8sgeO1XVVS&<HCaVOL(?ZKu`E$PCowNw-#;lU zHMzu^k%2QfGd(Y{q_ilNks%Xo!UE1LHVp<%Mh5lCADPt^c^Kv~)blVzGsN&P%x74@ z!{ExG$;03VBHS6W85y)Ee`HpeJfE9wvI8@#7!QLxg9i`8LWU4_kS=$ITt)`1=*b|L z6>xA&KEze-wuoUdJHrwlhNTS4*cq1dFsxvR=V4e0A~ZmD1cCH>gNPu8Y#xSH46At< zB0#K2hA18eH3oG?1_nk34XCYLdTT%mvOo$VK$`p+JQx{-5gv8U$<IqoOv*`RXIRU~ zU<>ln<PUsYlXIDPHplYpVPrIf3JFK3GB7f*fNWr3V2}dY!Jx^&$e_i*z+lY4$iT?J zz`&}toq=&90|NsSgEj*L11MG)7~~mP7!(+E7#J9MAc`1t8T1%Hj?{-3FgcoEN*keG zlYxUl3rRgET)hT^0Rt0**5n2JiuEA%LJTZm%UKvq7&sYB8Tc8@!1@#zm>C!t1fcpr zEJFr$u-yU-MhwObObjLr3}6up24)7!Xa=TY2CHHQYX%!I(-y?E12gT585|f`7#ta# zpgz@s`m~;jWewb)Y+$pk!FEIZ$ON^Uk-?e41x+gxGrCSEtU6sGp#%0IB6!&#!3*|3 zBz!#>SQtE!OkjoE?S|C^c8Cd}0E8Ie$H2nikJSKo1`kkxGcbVt&jgB6t?djP2N*af z+X-^mBa8@P;9v*^8zII3Rt9wg2Lls>CxadXBZC(M0|N^KBLg1;BZD`C2PjM?w+hC1 zgUpa)U}s=ph+$x5h-Khnh+`0Bh-Z*zNMulCNMcZ8NCuk=ic?kw8K`MW42lds48GuS zcZS;KH(5tWhTWgRgMpbrYqGzPm?g+;NZb^F&49!WEPMhOKme2yKxzWPDKZG^vUx&o zu^`=Q44e!M3{?!Q4Al%g3^fem47Ch$40Q}j4D}4^3=Isr3^feK3@u>OwHR0!<QVuF zf*C>>m>KvOR2f1U!oZ<n3UwhXg8@T0I5hkwI|_@iM?h_h5q1T~C&adX23Cd%3_J`I z8N?YTF~~AZW>939!l1@5l|hGLB7+gbOt@{bNVciKZ8L$}rVq1?fq{XSf%z{3A3Fml zqwFsRRt6S^NQNj-Brq^AL^CikOjZz41G@nf77PsY!FE96QU+=s132_U7#JD+Kv|uE zNy-6~ETb7>pyt>yFoC_xrlq}=K@L5YEoWe5Sb=0L8{AknhFEZB<YZ)sV~7VOxXI^4 zl#pDr8LSNwdxB7HAUCixF!4FEGbDhsGdBYxLlOfcgJm&;6$2wfGD8Z~S@sOfU}v#w zX)|wQU`2P=ZU#1nJzxtU-erecP|v`?&fp0x+EN+PK<)zPMJ8~n<J4l_#vpxwL16=0 zF>nNI7R0fzq6?JBK<>+cxX+q_ks*^I4eCBnc?2pv!6qugO+@nlSu92}GGsAiLru_! z7D}MvR|(xc7m+l>l0G9t4#8q6hJoQKl2&MmCg2FFY%uKI#-NODuN0DIsJ#M?3_%b_ zgR&=*2eGU5XUK*II>Lk77*vR`2%I25DLIgVLBNs08)7K~0|T-_ljlpY6Lf<+RyS}F z;|6$%C*a87&X9}6D_k4m&=L=pfIuoanHloH>hl>2z;q#lIk+ljW-w)#$zZ0&$&kn} Rlfhn%lOdg9CWC_-CjdKY67~Q9 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Implicit.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Implicit.class index be7d9da14cef49a592a48aa789a3eaad245ab365..55f7b453b922750160edc4590b18f805e5229f6b 100644 GIT binary patch delta 307 zcmdm|yia+<I!;z41{Mb8$%cZ$laF!gvg$B!Fz8PH!Rf?l#=yd0&cMZBG1-|bozZsk zYA#Dgm&s4LY*@V*SQxy)IxM+0SpyhY7y`k(DsDa2Fa{2W@X2err%A>!urkCma4{q> z2r?ux$TK7}C^DolC^4i?j^W8>ECTDe&6BNI!@$Z=%fQ1>#~{v7&mhOpz@Ws?$e_;9 z#GuPi$6(CRHaVSlj^acHR)$FoJPeZ=#2KbA$TCc2P-K|KpvEwrL5E>7gAv2*$trw# zj0-1E=JQ}($-u_2YVrd<FUC!iwfO@XcTcY6w_)55w(%^#8sp)~U-)epWhWa7KuFQa h%>wEmzM$~reFCN+mVoGFPC<y68;CC`GkJ=j7634JM<D<J delta 307 zcmdm|yia+<I!;!31{MZ|$%cZ$laF!gvT8DLFlbHw!Rf?l%)r86!obB~I@y^kozZIY zYA#Dg$H`B*Y*^hHSQtFOIxM+0S$!E;82rGzDsDa2U<M9`kjZPgr%6ULurkCja52O( z2r|Sm$TK7`C^956C@~~Wj^W8>%m?eZ&6BNI$-v4`#lXW*%^=QD!yv~{%b>(i$Dqzo z&!Edt&0x&XJUN|rj$$7JD?>j655oioafXQuvJ8_L6d5Kns4+}o&|#RsV8k$EvI<`w z<Gjg}`8-&cF|aW#pZtK&i*fyAZT>*U9g}PMZ5a1}Z9L1b#&}@z7k(Q?smX={5K?q< hvw%8?FDN{DpMWWdB_KMPQxGEN2I33KOr9dB1pv!BMt=YR diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InferredParameter.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InferredParameter.class new file mode 100644 index 0000000000000000000000000000000000000000..33ffd0eed5d650793279988868c2b1fd600cc8dc GIT binary patch literal 4375 zcmX^0Z`VEs1_l#`Ia~}%3@Ka;Yz(O&RvL&%2N4<U44EL|EKUYChHMa#!^M!xkjKuD z&(2W5&QQqCP{hT+$B@FoPz<6=xEM+q%D5QH87e^BN-hRohANN&)gYn<WMnOfRR<#K zLEHuq(FiiRiG!gT#AyM^wStH?c7}F#h7Lvs(USb^)V$!5qRhPX_<+Qs#N5=9)FMU( zA)l<ovPAuy#JqHUh^#du1Dj1|US^3MBLlOBW*8#_i*tTTDkB5GPi9`KUukYqYEejH zQcfyJbAEDSPFP}5CWsFeWGTtWEM{ad_DM<AFDXqaN-a)F&C}1!OVckd(a$eP%}XrE z)K4rf(f7<tOD!r&O@X_{nvsDQWU-2KMrKY*QEDC|gQy0k`#?@&DllMVkPIr#E6L1F z4a+RfOv*`h%*)F!Ni50C&nsqU=wf8xcFxZ$E-5NaF3B%qWZ?14%S$bC&PgmTPAz6+ zuqWs|$KVjZ{1hZpRglcHW@KQ=OUzAWWZ;B5pOJy3q_QBDk%0{okc<p0*_nAMj0~(H zps;6T;La<}MR<)_L(`LyfiE|)(j&1fH7K>bD6=FL9OO}q418%hrNtSJB_&19iOCtM zj0_@R0q6XjoYZ8H7ooze$vOFXsf-M!8kz(>ge|;T^1xBc<yw)PS^zS)n2~`cIlrKi zk%2LlkwFb9^qoOA`Q?`cmlhP{7nP)@!1aLQEx05xIomg}0GbFm(n@o3oWbUBxug~p zr6wnqq^2-3h#?t>5VvMz5H2Z7O$BN2%MU3^%qvdIFUn<PU`+<41V#qJo`c4gH6sIK zCL;r*Cnz$CQd1cjIA8`dGH_%TtGE`HCgw0Q=x7iOE|`g$QH%^c#i=Do@yuG5m{Xd{ z$iS11A}peziR3*<BCuv>=w@f=VPvo*)<Q%wRsp9QYeojnB1q~8$!BEHCL*R`PG@A` zN>0p!CoNR>`6p$iCYOLr56(=_ODriZN@ZloB-WKS#45D5vqlOOa3TT~7S@amT*3LJ zMaijdnV_OX3?p^wfeI!b1~mqC9)?f`Jst*o5X%8XI5NaCG8mFvzVI+OGC1)t^fLJI zF!X_n-+YirJR^fvG||3cWKaRQ3sPW$eS<YiFf#BXl(`lafl458ga{;UIF)ARq<{)x zd9VsA1#o6o$jdKLD28P+g|z%41s;Zeh6(Hp6L}aWF-&G>n8L#_l_7$MVH$`~0|ku_ z$X~7?!iOQ2hhaLy3?7D=46}F`f<WA0h7cYG6$VvC1_mC67?4O1NU0}-6C;B<p-_aT zB}N8eg!94v2E`&f!)!(dTOy4>O4vvxDI<db!eB_aFfy2vZX`IbFfy<eBo?LSl`t}J zfQt@rCBl|iP>>2Lh;^~mCP=9hVm&lktWjJB$t{cw9O<bg;7Wv%K^P^wg9WWo;vFo+ z$iSYSTH*(;D>zE>AyzOla1^JOfa?NA23_LIB2Q4=2X+FaT-4F<B&BF1m}Q`mjfg1* zMFutoB?d+YWd=qD7EmH$U|<kuU<74L21W)A1_lOW21W)(1_lOJt?dkq8yOfFm>4t} z7#O%1m>3uslo(hTlo_-bKq(Kbh(Vh{hk=2CkwKS19cq9!n9qQ$nGI~B4w6PjxJESw zJq9MQ&29`#U`x0_Hfw2bV_-s9&&R;bz`$V2z`|h0z{y|^Hc1Sk8fp^AiTVtx42%p0 z3=9l%42%pW49pCs(F}~m3}y`GVA_Jg5=>h$urOFN*gzeu1NAWz^BTB!AuhH7+rtBP zJrmR(Mh063JAyi$vFfyk2NH59Gb6kS31v?P76vaQ16bi!J76_{1>FFD1{Q_@tOhtT zI6*_(iGdLkep=fZSPw9;`Dkx|`yS$qPzDZ$Ft918A<e<S#Nf;T3N;r71_l-eMg~v_ zxiWxE1f`%o3@l)iowc?xu={8;Ze`%m+QPtjj6qNvL~mo@I>5lam4Q=xgU@aT-pJhy ze39E3_=N<vF$ijHV-VWLAiRx1a2tcjb_UV?;GkDvP-Ng?U<Ri{IR<tH28LJ$R)#nR zE{1ppL52hdd4?ngMTTThiyiD-1qNmYRt6cUBb68w8Qd7$!6rFFL(+qRfkBjk=?{ZE zI|JK)Q2etqurV;QgMH%3;KaZTPLcW`8E{_M#vq0W9!TOS1ltAjIs*eNhP)U+0F(eh zYP`WY!3Q2N8yJ`wSU|~GYa4^O4=5~-F=#Q{%79q=7BR?!Xc;3v-D3=Vy4x5e{Iqpt zwlPSyFflIwe-9ixkRVWF;ACK6sAgbgsA1q?sAUjmsAG_0sAo`OXkbuhXk^f3sAVu_ zXaze@i-Cnfj)9-Sm%)#LnSqZ%mBF7O0317}(4b&tFklD-$0jIHco~@gGVrl8urbR0 zVqj%pWC()0em&InCP=Q=M7Ul~OJ*B`6wL9`$d12{;rIy*tPB$wK=q$E!(;|ohA9k+ z3{x4@7^X4kFic`FVweSYyeyLARp5>{fjeFwtK(%sj%Q&AW(a}i)M#kgBBQ0fok3<M zgQ(UP23hR`3~XB%WS23pvn*#|0q1^52!kSzfnfpI5n|xbl7U*t08UnZ42%q*&|+m^ zl5zkQm!S-LP>bxK7O`n*Z)K20&zLJ1SQ%C#8OsJYmW?3{TzD}ugfm1yv#19&`3Zs? zdyIh#L@j4v6_NubMP!$50UHTPih@uhLGEK`VB&LRXNUwBiQEi~4ABgX45py+kP*~y zfI1nG%C|GfgN%lh_>e%@fn+o+l`}HL5m5y0LDC5=JOvy<Ef@@Iw=pQ7TPusC8EUP7 zBZCh^EEdfeITO2PPli}%xFS5fjX{wJo58^c3Jz}u1_4I~SFElOC&C~BM+Qf%u3#rZ zGXuP|1sfBO#WSQC!@$gt050+q8Ir(sGJ`P#1A`C)6N4c`Cxek1CqooNCxew5Cjg26 Ba2Nmp literal 0 HcmV?d00001 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InfoObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InfoObject.class index 90dce2ae27eb846b6f0f8bcd828a9eba31cfcd16..ab345eeb5ba9b346c512f37e56e17483874588af 100644 GIT binary patch delta 773 zcmdl{w4-RlB_&^F1`Y;Q1|bGD25AO$22}<P20aE%1`7r)21f>M25$x(h7bl_hG+&o zh71OMhI|GCh8hM#hGqsMhHeI9hE)tE4Eq>N84fd8Fq~nq+$^sg&*<vFz`@|ez|Y{! zAkN^zAjja!pvK_Fpv&OSV9MaZV8h_a;KJa=;LYI85YFJk5Xa!lkj3D~P{`oVFohw2 zVLd}I!w!a!$%j=YutqVkFhoy|P)!j`Vc=j$We{OVV^Cm7XV78Dn0!_>O|g)Hg`tRn zlcAV_kD-J?n4y$GilK}_k)fPHouPt3kD+pNh#EU1W8LH!bxX$9$<x$rSi2cm7<wjO zSGQrE$iTudX|jZdBkObq4u%<%6ZM2A7iu(1&Szj{Sir!=u#iEJVG)Bo!x9EXhNTQj z49h0-YGyNTo?NL}r?{7am0=$P55s;2afSm7atsF<lo$>%s52a9&}G=qV9aoQvV_(g z#Y+sV43`;r7_KmgGhAhmWw^$m$Z(xOjo}7^4#O1&BZfPZuWGGhd^EX5JB0NW11rPp z$rE(sC;!nlX8bnUKqs2@9|J4H|H%_{f*83b8|dgy7Sh#W6=Gmz6b7qH(lut31B)Nk z)n!#@U}Myn{6b%QvXY(^t3CrKqrv1vy+B6u$;XW4CtuRjXSAQpr0>A!F}crBa&nBm z17jeVwM}1_HHv|aF?#X~{Z!T@22RH0$%%TBld}yh7_-274;$z+7ES(a;J{ctxzA8~ zvcI7nW6R_|Ls!-w23E#iuv@+x8Z*uSyCup<mvsRH8{@*sJx0llD<*$1vS-{l*}&MD zao6M$<3PqklaCokbDm-lW<1Rx!FXn}mPsk+1qN2eiws<hmnN?;$>hAnz{+@=ft&Hp zWGT}k)+Y>{j87*|G%aO(H@VMHVzRuMG2_?C!DeoZe<$BJlbyWXOr4Q!@_jQGMy|;! p=9Y|nljF>77-c8V29r0yq^N}lqwM533$VC_8%WkdX7WD^D*zSp%9a2C delta 773 zcmdl{w4-RlB_&@41`Y-#1|bGz25ANr22}=C20aEf1`7st21f=B25$yUh7blVhG+(D zh71NBhI|HHh8hMvhGqtRhHeG}hE)uP4Eq?27!EU-GMr&B+bpjf&**B)z`<b8z|Y{o zAkN^(AjjaupvK_Lpv&OGV9MaiV8h_X;KJa};LYH{5YFJq5Xa!fkj3E5P{`oJFonUF zVLd|t!w!bP$%j=Yu!b|RFhop_P)!j`WZ+;(Vh~|SW>8>AVbEbnoqSd`O)-ywg(07T zlc9itkD-u3n4yS4ilLZ6k)eb^ouQOLkD+XHh#EU1WA)@1bxX#k$<x$rSUVV47&<3k zSGQs9V_;$EpDdx_$U23AgJJ6AL_Oijg&NJ0a~N0|<}z?G%wrH_n9m^3u#iEKVG)B8 z!{W)jn%RsSCRb|KDehumW!TNY!?1@zoMA769K${aC5HVB>I?@MbQ$(A7&9E1ETJ_= z@jL@7!vzK&hKmg143`*W87?y@GF)L$W4Owo!*G$oh~ehst6J+A?@w;g4q<)Hz{>Dq z@&q0E$$zws89z@p(1~XK&A`g=XYvG{AV&7d20Hqag>-dT`59Ol1;FZ(bd4FM!Qw}C zby-yy*ceqOztGp7tfXhfs>8s^s5?1PFObn>@-bui$(Qu>8Eqyr={qpGPVO_5oE)R? zz~~2NZPV9f4QF6ujF|jFKb19}fs-*|a-yE(<ZJ^A#&odW!v^|{`IA2zI51XB?lY90 z>~Cnt*f_b*(3Q25ft9ff?3V9_#*9<JZizC|Wu42w#yD?sk5Mw?(#ao;>>1ZhHZXQ( z+&;O)IFNDw<YUIsoW~i28BZ`sFrJ*OWm3v{mVuS=90M2Q`N=CxGC8j^url6Y;AXrz zS<1AC^&tZ%<D<zFO-mVHPwq36m@IE*%=l??u$dd<ugUk#WG8PoQ)gtJeBaE4k$tj? pxg{g_<T!I1MybiO!Q>4vDQe-tC^b3G0xWLf29mXqnf%Yf3IIX3$lw3~ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ItemsSchema.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ItemsSchema.class index 5d1c5f7cfb5953e196759dc691f207c44652a7f7..7dcada96027841873d257ea4fc432ccedc0a5ee7 100644 GIT binary patch delta 287 zcmbQFJV|*&6DO+@0}F%l<aSO6RviWo2HnYl{GyW|a_VxLF|aV0GjK6jOcv)#XSAJM z&t=KzGP#~hbn-babyhD176$Lhzqo8z0~lBs0w-H@JF<o`a4>{VZseXO8OOlN5YNEH zkia0wkjNm<kj$XSkiwwEkUH6bC!4Wo@*JKz#To`yhFS(5hB^juhI$4$h6V;DhDHW; zh9(AGhB^jghPKJpymJ&MGO#jCV&Gwz%plG%g+Z2KDuW`!GzK+>=?ppylNpQ{W>5aX zo5#3tayp*}>q-VThE<cd@Od$AnjFY4JXwg}j&b+oKz<v>{geCnEg26_KEZFpC_9-| f07N>0$$9|~M%l?Hz-%8unaPTRT8y%jeFWVA1Pnov delta 287 zcmbQFJV|*&6DO-Y0}F$~<aSO6R!s&D2Cd0~{GyW|a_Vv#Gq5n2FmN%LP8R1%XSAAJ z&t=KzIJurnbn-babyjx<76y;Wzqo8zeHmC7{3cs-JF*5da4>{SZseXO8O^}T5W~R5 z5X&IQ5XT_TkiekGkjS9KkTltVCz~;U@*JKz#YzTNhAIXghH3_Jh8hMrhFS(ChB^jy zhI$5FhH3_5hUUrEymJ)$7+4wl8F&~bFo-iuWRPW;#GuG9nL&+V3WE;A1O_998IynT z<}uEjoX+RLx{QI1Vfo}Od|r&}CkOHiPZr|0W85)0kl%)J&*VOSOU46}Pw?9?N=;@J f0Fh2$vR=T0QEKuDFxy8^X0oE77NgW;A3-+&r_Vs} diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/JastAddList.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/JastAddList.class index a750bbf87a493052886d3e9631cf6ff6f767f1d1..352b1e42061aef82b6ea0e7f78b6fac0a15da313 100644 GIT binary patch delta 394 zcmeyO^F?RFMJ`rF1{MaT$%dk;lYeumGHOp&<jxn>XJBD4VBlpiWRPGmVvuJrWKd-= znY@&{pVg9qmBDJVB~K@>1A`QUBZEAH6N3_i^W^h96L~!u*ciMR^cff!6d0H%JMxH5 zZsK)g^=DvZ2$(!ySaI?@UN6>A23Cf!$@7K9Cx`GkGDd^#-OZ=Tm;`2V@#`^WPPXLt zW6ft^VJHBLZRFQvEoER~C<F6Y1oT*|88{efCYuXvkZfjPWoTjGVrXR$WN2fMXXs#1 zWawm2V(6MA*vdE^tYNiavEo7oR)$3kJPeBJ<_$T2KsP-0ldpw6(IL6>1MgE7PE z$@W6q6t^+3GHhqyVc5YS&ajg~mSGozBExP5HHJM5It)7)j2I3~78CAZJT`g0a0KHi zu-URAYK-S5Tk@++&JfXJl$mTOsxo;yoW&*z5sQM#Y=H7rCy5z@g;XbraZXMW69NEJ CPFiUI delta 394 zcmeyO^F?RFMJ`r31{MbS$%dk;lYeumGHOg#<jxn>VPIj<W#DDdV~}9bXOL&mV^C!< zoV=8~pVf?kmBD<nB~K@>ErS$;9fLfBJ%bX1!{qZk6M5Yj*cjXy^cff!6d0H%JMxH5 zZsK)g^<iLT@SQwgSaI?@UN6=l23CgP$@7K9Cx`GkGDd*y-OZ=T7!PJ~@#`_BO}6Cs zW6fb;VaNrGZRFQvEn;9{C<gOb1oT)d7&sUzCz}gwkZfRJWoTsJVrXIzWN2oPXJ}<m zWN2ehVrZWv*vdEstYNiavEn=iR)+ZuJPZpM#2FSc$T2KpP-0ljpw6&_L6>0xgE7O3 z$@W6q6gM-lGHhYsVc5zb&ajO^mSH=CBEt>_HHMuGIt*JGj2QM#78CAZJUn^6a0KIV zu-URAYK*5RTk@++&JfXJl$>lRsxo;yoW&*z5sQM#Y=H7rCy5z@g;XbraZXMW69NFZ ChFPWn diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LicenseObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LicenseObject.class index c696b5c333bf53955b311f953aec4e7062af1e6f..ac3b35a65fcd283f8aca3cf4999f9cdc01aba213 100644 GIT binary patch delta 528 zcmaFu{n~qjrkJiW0|$dDgAjungEWIWgDQgtgC2t>gDHa+gDrzLLkxosLji*>Ln(s+ zLmh+R<}fjFMpX+24hAa*eg<m>aRwU(IR;w>H3mBdT?TuG00sw!YzAkB5(byalf-*i zy%<;+yeHpR7M*M%Va^%Cz`+p8Ai@wfxkAE6FrI;hA%TIDA(4TPA&EhRA$jsuiRFwL zlWQd{8S^J^m$YFmWnf__1MB9MQfIAZU}2~M^ZcZASQ{BQ7@8*6OHGsPWMF0JV&G!v zW)NiPVUTC&V^C!1XHa68Fj-GJn{n>sS<-ci%NbZ1Rxt1|tYi>pSj8a6u$n=MVGV;i z!&(MihLsG)3>zm~%FI#R!@$b0mw|_2AA>l<eg;{F0}P4`2N~2D4l(F3>|-!uI5zp4 z%p}G$lRIUDSg$a!GF+YfKsJc+!Q^Lh`jeC7bXZ?7urj=y{6JQI@+LWB#xIkf$;Gh# zVPIqUJK0@6nUQ7kYI%D`-pQ}!of*X@>nj8@%1v%mh~`vd5N1?okYLo9{8XWoQ-^_- zQI~;>QEzgxVkV~<11qCB12?0^<g1EBtPTvEjE<9ilu8-BCLdDrW(=IHuOL5JS6Q7g za`G%?*~vx9>WoQ~XDPcdrcJ)DY{{54SyIJ@QFd||n4AnIFQ|Ah%1)M41&Pm9m6=?m Ms>LWfd9JD-0QW6_#sB~S delta 528 zcmaFu{n~qjrkJh*0|$c=gAju<gEWH*gDQh6gC2t#gDHbLgDrywLkxo^Lji*pLn(tU zLmh+O<}fjFMpaV=4hC}ueg+E$aRy5UIR+~RH3n-2T?QM500vuzYz7C05(dY~lf-*i z-5FRIJSN{)7M*M%Va^%Iz`+p2Ai@wlxkAE6FouDJA(nxYA&!BMA)Y~mAz|`WiRFx` zlWQd{8FMCYm$YFmVqjq?2J7aPQfIATU}2~P^ZcZASnC)#80sh2OHGq(V_;=yXW(M! zU=U>JWRPd*W>944VNhb|ovbIF%{XiFEa^JMB@C<#OBr|=mNAGkEN75oSizvgu#!QY zVHJZe!!ibAhINxIW#%aEWMF03#lXX`n?amm4}&bjUIs;meGF<0`x$f?b~6|;9G?75 zW)kDc$(^!6tQQ$r87@tJAREMZck(ki{mDskI;>9_SQ(y8ejqD9d6S$m<HyO*<YHKV zGO#iHn(Qv0%*Z%-wY)te*W}mo&Wys7^%Vjcr6)HkL~|-L2s5fMNHD5SeyUK)smZ{~ zsKvm=s69DZF_Y7nftAsOft%5E@>RtmR$B&6M!U&AN~MhMlMg9*Gx|-|SCF5qtE|o# zHhGq^?BpV4b;kI~vy@#JlPBL-wq#77EU99{C^b0@Oil)q7gRhLr6x<Ng2d;l%1ka& M)nb&IJXh5Z0I0TplmGw# diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkOb.class index b69e91c9dafabddda209659e5313eb9ba609b24e..f9d219f5722722e56d0fdab9868f692899deebf4 100644 GIT binary patch delta 2235 zcmca)(5_d1>ff$?3=9k=3^&*rD!3RJ87jFLsu-%-8EUu~SRkBQ5UUO(Tn|#v0Ae+Q zSWO^SGdDvELn}8!8$&xcgCj!+i0EWz=wfH+21)mDF$gjAf>if`xcwm31Q2T?7sDim z$>AXW6cB$ZJHs@PQPa5?WEf_EglB@dv$z<vLC(--m<?jh0TFZA8RmiL`CJUD3=2TS zLJ+YCL@Z`!Si;V*bmLn)Cc$Nl3|y`i$*Bb;nfZCe><r5{+c0lnWL&ZNElV{c<EqJ- zY$=SZC!b^UVq7y>l6?=msihesgPz9Zhs+v+S*gh-){G3CL8)n}MX7nosgoPn-38%1 zy{w|dbSqQi&FLH>jC^hk?(7U}c^K9)_%Sl*PCme^GI<pzxAl644Ll4R88-1SYzDEm zfLL2WtZg9Hc7`473_E!kb}{T`XV}BTu$N&U55s;2KOTky3?-9wxV#JxG92PzaAP>k z!*GP*C=bIikk;cMttS{xvNN3GVK~ijhKJ!S!#N&?^9(x}88jy!;8oCfttd&&E6&W% z<6*eKa1ms{B_4*$3|Dv<t}<NXVen^g=V1r{5rGUvj0|d%5AdqV@GulI6!9=bF$D22 zM1qJ=5D~}_#K@oyGITOOGyCLt?q-(jj11N=fl2J#lO=fS8I>mfQ<^-L$9wZ@-p|bS zstno;j0`#q3=AR+oD8}QdJN1A`V0(=&luPk*cccXe(h#pjNHz^<fpZbfq5o_#BK(b z$n6ZQRxFY%TH6@dwlT0vvTV@W#=vomfm;_uZ)4!p+Qz^I<#KIf;MUs4z;lej9z^YA z;ALdk$-u|R05V`F1Ajdu!%PNMNtT@q0*nj?7zC|Yb$2reMM|=2NwRKZ5Z=xpvW-D> z`Ty%$+Ze>4Mv84?5ZBtqAaRU=A7r6~&JG62Z46Rc+Zd#eF}Q#z3|l~!XrWmm1F~dW zJ%h9)>rMt)CWh?{a@!c>m;b+{qouo(L4lbeTz3Nl0|N_#0Rsa=7=tJS1A{UH2ZJgD zKZ6>B1cN$*B7+8l3WFAdHiI^UF@p|+6@xB=6N4UuCxbpiK7#>6D}xb34}&qo6b2K9 z*$k!(%NfiV)-jkfTw$<ac+X(N@PomY!LXizfx&};ok4<uhrx)!n1O{MpFx<xgu#@7 zmEj751eC?V@QcBW!JGjEelb`uSTZnzqK3hW!J2`IfrH@_gAIc%12cmi0|NsOT+W_> ziNS$^fkBRe^ACdxI|Cyh-ya4sb_T~^4BC7`5N7=^1_K5sus<0YoEcmg7#NrsTp1V{ z+!)*$7(pq4!I*&&Y$U7Jb_T_bU<IHc;bLH7U|?`&U}11!FofI7%HYA^$-uzC$lwJx zKpV_wU|>XOW&@k(3-Le1#f(s$EDYWZK2WQ5pjI<6uYubO(HewgClgdBBZDu4A3>dw zC_3w5&h>{o7uml`2q#1Q8_&SPkbq<Y!oLAn4NyimAeDiIAq`<bJp;moK!zX&CUB5D zF))HdmrH9qgUSI0RUd6oQe*-rMTk4H88{enz{ZF{R6@gmgMo=5n8A~Q5gw@_EQ}1H zV3Wf@$%i4Ffq?-Oh7k-5EQ}2Gkqkj#Mii8eW{6>6f~JF5uwrQjCWb@?MuwzRhE#?$ zhD-(~hOA<SY=)d-hFlg#1{;Pv21Yyz^Fay=7#KlC7Bq77q0!2!wY{D}4dFGAvltj= zgS`bw6o|knCL(I*Bk6=D3IRukD25^od$%#DL#(X_C1r@cvPin2_6j&ML}Jyg0ntrJ zb0|X*G)56#-o~Jbq`4lP5wKVd4pET9A{ZD192o+!nxutf5>A6)xjO`GObM!kQW;pa zwlR=q4g)hZeUvhkfwN^fLjnT>gA@ZZLmb0OhIlnjhGd473@Hwh4CxFj88Xy30YJ`8 ARsaA1 delta 2458 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkObject.class index 79acfbe8a85c46666368dcb697fcb0ffa7af7a19..c53dd30ad3f0414bff7ca963dc9966d79b43ca45 100644 GIT binary patch delta 1107 zcmbQ)%Q(N6af6LCld0uoJ85NJ&Y;w^)S}e9<Wxq6(8<}-?tBoQURF_Jx|ON%=DpHy zxjB^>SePa;a55-Q-mG3As>8s+pvxe_pvR!VpwFPgV8CF(U^v-ABS+N=s?M5$kHLmP zn8B7olEIEafx(_ZjlqFIm%)+2gu!X^New|pM)%3LH7yzaCW~s>u!b<OFoaG%Xe>NA zQ%jRIih+e88q8azrN^4Uz`>9>`L5P9$qWWohD-)7hAaj_hHM6ThFk_khCBu(hWyDr z+S!aXU>)2#*@|rptPJf8JPaKS;tZV(atvJzN(|i$>I^*$x(po*#taiCPuH2FIGcf$ zVGaWi!(0Y&hItIK4D%Tj85S_8F)U=zVVKKc#ISU7i0%T$)sw&K2C;5tU}e}c`M;k0 z<ZL}-#{H8WE%hg#)6-!+&cMoWV)B2zAjZpJu||De*4qqh40k36nrKhHr*Fadc(S;G zJ>#3n;Reo(UnkEt2xR;_InGL9GOwXECo6+6BO8MRBm3k)!%|Le23AHM1};Y4$>$9- zIYk**8O0d58O0|%8Wpk1GjK90Ox|Hs%BVS6&)A#MVDfAO`N=bl)fp`&A2fDhbew$9 zSa!0qi6*Nj0~@2)<Uo^T#=yy2P3#$?CVw??W=saFk1#c2%m&-O+SHn}m_eAagh7I_ zbaJ4f<YW%B7|u!tR>mp@F2?G~=M5z%x0wZSHZ!m?wlHurwoZ05lAQd*ERwaCfs?Us z@(v^I$&Kb-jMFFU8B0!nYHq|h4{U?Eg*xN1$p?)kCs$Z#Gp+}-_FCw$Zf9U++yM?h zUQ1)f!;>8?V_45HurZ#U9B3jwd8efx>lFr0#;cQgtO6PDOpdeiV|+4st(61g+sW^& zA{oC;erF{;IoVp9^&bNp<9~42?z6UFWSjim+Mbbrvbl{jqr~KDn?Oc|$#GWlli%3b zaB46JGifqNFlkLTv@PY-V_;>{XW(Kon7rOLlhcBMmC2HUo5^ajqFoWI69Xrc^W+(J zrHnq4`Ru(JgC|$p$WN}cS7(f#ywKi-F=g^Xd)dv*4iSv?1q_@_g$#mBMGTTm#SA)3 zB@C8Kr3}tY<qUpIl?>rbRSdCAH4GU{wG72fbqsY(^$eX%4Ga^R8X0CWH8JdBYGydk z)WUF`sg2<gQ#-?3rVfU$Or4A@Ox=teOnr>POx=uPOnr>XO#KWc3=9lG3>*x*7=#!l z7|t_rFwA1G-F(ZDn^AN&13S|k20^BI3}Q_486=n%Fvv13ocznFfN?1}2h=&MF|M4v z)Y*nncCx&S=;ZIt>R=X#56WTrE~bpKV3q$}c_trmfyjzZW^{$H#3wtrszO!dyYNkJ X2aB(Fh3WtAY7CYA@5(vZ-^~jEdO#}u delta 1116 zcmbQ=%Q&-_af6LClbOL}J85MuwxHBB_tX+bhM>uL((c^usU><@MTzNFrskUuOTXpj zlxJXJ>Sy3&P?)?^y+BlxfrCMdL4-k@L4iSsL5D$?!Gb|=vYkebsyS4h1p^<0C4(@7 z6@w&$HG=|!4TBnkErTwD9fJvj{pRx;f{ctVlOJkYGI~#bs3|(xKueu9kb#9EXmX*m z$m9Yo4c2f57KR8gZ=;qjYb*l?L)_%YTGJ#`8CV(87`PbH83Y+J7~~nU7!(<@8I%}u zCQs7NW~`iC=qx;0P$yflnSqs|g@K2ml|h`LjX{o~ok5AAgF&64lR=lEmBE;yck*1F zIf^qFSQ%zA@G#6`5NDXpAj>d^L6KoDgBrs;1|5c33`Pu#CP(QmU|cczw{8&Y1_oA! zjgwjR<tG>F88hyg9HFm2`HG$n>k$T4hNF{N^@A8MOpefxVZFh?#&C1;PW@!Y2a{zD z>=|E9jx}&*{4{x?K_KI=$rDW#CJP%{b22dqGcq$sFtSVzH!S7kU|?nBWZ+`tntatT zlT(O+l~I_1n^9!4yHOFV3<D>l?Bsn$rHpEm{j4P?`x+ZD>P}v0AU}D&u{xtE*vIlF zT$7&|t25d`dB&`63~Y?<lXvQCPi``?VDy{3+r*wReDZG-XT}7u-Z)bu#*E1mO`|yr z7=#%M86+5sCVw?8<t$@hWh`glVyu{4Y?jH{z`)Ab$iU6mH2JAn5o;F%Cu8^IeMZ`o z+s(Zgr+{7a+T4h7HrPa43w6fDQ2W^?*I8&Yu7UFoTj;QEVPIw43JyPEOJl|Z;P5N6 z)MY)%z{YrL@(RmT){6|BjF%=0Sp_oQ1cy_Ll^)~6$(yYl7++2HvzDIBZ*9l;d9t6i z8|!ZdHpV}bXIdvSGEe?%ZO_Ov+1AFHQFL;nO(3J}<cX&8lRw$maH=v0GpR91FsV;A zw=Lz=W?*H~Vc=rYoxIgHlhc%emC1~Oo5_5#x?K^gJp(6`!{m8(rHr1F{j4P>>)0DJ z225_Wk)K>|ug(Zchr*Np+jC7mVz17a2=dkD|Mp3Y^|=h3OnD4~O!*9wOa%-&Ooa@V zOhpXNOeG9{Ol1t=Oyvx*OqC27OjQiUOw|l^Of?LhOtlOXnd%s3G1W8dVrpPG&(z3p zovE4O5mO7pTc%cquS{)>EKD7Y98BGe!b}~EVocqP%1k{BB@7G<K@1!WyBLHRB^b^# za4^hbu-*K?k(*I;1_L|OOa?)w*$iS#a~LF;<}%1K&70(0z_@5~p|d69vdOERZ5X8{ z>${3h{_Cs`W{FR>aZzQI0(oR|y({13W*3k+DC_KVF$Sv;oy_hE64Q4D=>^HuyP85} YPJv}WV*6ZpCJVZO)IoThlSAFS0Gjb82><{9 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.class index 84d7580f6ebdf9778c4f803fadbfa78990700521..c889fb3cfd71458fc9298ec9d562b407579608b0 100644 GIT binary patch delta 321 zcmX@AdQ^48M^08H1{Mb8$p-~QCv$TtGwMv%=W^pUWnf`2W8h>kXW(P7nB2rw#b`VE zFP9~w%VcwI8&)p{76xyyj$Uqc)&K?;hCndy9JdZ@7y}1G_~ifG(<I{<SQ+9OxEK-` z1Q`+;<Qb9~6d6(&lo(Pcuj9#PESh{!KzOn)Z?<9$11m!<0}n$TgE&JygB(KxgAzj{ zgE~VKgDyiIgE2$f<ej{86elvUGE8FNVVKMy&M<{RmSHM`BEvKWHHPU7It-H;j2LE5 zF5{cTxNtHje-P_R23CeulN0!Z7`IMN6VRXhh+l_wF9R#XzR3yv@{^4Oj2TZ(P7{b? zJUjWIfF<L_$-f0`7-c702!hB`FbQ(oQ9)Bi*~!1*d~YFRMp>|{y@fa@&lb`G09d0? AR{#J2 delta 321 zcmX@AdQ^48M^09G1{MZ|$p-~QCv$TtGipxO=W^pUVqjq~X5eHnVc=sho!rD##b`D8 zFP9~w<79Jg8&-D)76uQnj$UqcR$m4d20t+G9JdZ@Farle$mIXr(<GxASQ%m%xENv? z1R3HO<QWne6d4j3lo*mGuj9#P%%6NvKzOn)Z?<A311m!n0}n$rgE&JCgB(LGgAzj> zgE~V!gDyiggE2$%<ej{86#E!h8TuJ`7$z`?GfZTVWthaE$S|2fjbRFd4#NZnBZe81 z%lIZS&YR51AH=$hft6wT<OKd8#!Zvc1oS6A;@4r_#lXt2dvXH5{A42mW5#2X(*&Xz zPfb23V99uH@^1kfMybgbf*`UKOoH5YRM3=BYVvP5-&@F-Q3~v8Zz0afvxT$(>Htr# diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkReference.class index 2cf90f3739af39b56069e055b18ff107e8279c91..7c71664319f4ca9348209e962b271c5e25ad8f22 100644 GIT binary patch literal 7843 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 QVWxv5!yJZh40F{u0ZcMtY5)KL literal 7587 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkTuple.class index ef21dee3c3fd21e1c2bda02f5bd8ae1c4dd2f18e..70d003f73a3bc7192ce06808ee8e9711d3f20f36 100644 GIT binary patch literal 6497 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 delta 2471 zcmaE8bU?lS)W2Q(7#J8#7}jwyFfkOdGZb?&a59u|F>o@Jf`~GZa5;#m01=h!3{@cE zYLKcLE{0l$I(CM7c7_IahDLUVCN2g6h9VAzW)R)N#n8&o#>LRi&;jChaxw5Tbb<7C zgNPoGX}w$q44e#oAZ9;^m;f?$A_v1Hc819yMN>e6Q$eh0AYwW@!;FnLY#145Z5Cyk z$;3XJona0mgXLsFc8$sXtlX1duvD|mMF<o!iD*n#<P+uM49-l?ODriZN}Zg**~6^C zpgH+Hr;hwQhI$@`XoeUbhWQK&co<w6G<g`@K!iI(HY0=P<Uk&U$<~~lVmu7)3?4iT z3mHP#K|0(Sav2%4q9+ToYffIoRqnQkVKF<y5*~)749nOVmh&*IV2I~oSP3FDKxPMl z^m>DcAckxnhE)u!c^D!<tVo6^9tJfAbw&mTMg}#oZS~w7dTT%mvOo$VK$`p+JQx{- zvl7b^^>Y&Q()FEl^7B#?lX6no8P+l~*iH`QG1_dvbDWXUaB?7zVLgK)11AF$10#bf z10w?q$an?@1}O$c1`P&H21W)g1_lOW21W)(1_lOJt?dkq8yOfFm>9Gf7#Ki7&A=ef zz`~%wpu@nxzyndlpv$1g0CJ%|+yHa11q=+FS}c1Rn6@%7BMec8n4-zR!Jvg?3MbqY z4F&@SCI+p^b^MC;AX|kPSinwVVK8CfWH4pmXD|cnQ($0bU|<k{>I1P18Pvfp5@0Z5 zFlJz4FkxT-i&!u)GgwA5FcmXc6*E{f*npX~Af_FdX<y9Xz`(-b$lwI^zYf&@^-L^l z;J#-An{5rY8{%^&sNIYV&I~SSTA7&9bvj|y=?V`s<UnVGgcsQVknr+gU}5k?GJzFt zw;NUy*dZo>0uW+=9|H@6KUM?W89YD%&cFcnKNBdTwYD>G9AMy_EF;Kak1!&HfrB9w zY=jsCSQ*p}91Khho(y^nj0|233=Av`j0}7Xj11lk9-uIpoGcjQ4KhQHft`VYA%=mK zA(nxQA&x<iA)Y~=A(26mA&EhWAsK8gC{9@!WT2)gF(@+lF!+MQ-5F|^-()T!nJ|9_ z4+ds%Qq_k>6|2@Z28j)5kyQXT6cSmm01IFM0Z`HaMQ9*6;RZpSS|j8J4staHP6h^s zDh5`DY6c#L8U}HOS_V0WItC?%dIoid1_oV*8U|yA7O?4B3@i+C4Ezki3?U56415f# z4518R;NUTZI+>NhfFT?lJbnxe47?1?e;N4L88{i`elf5zFfv3yEN5U~SkJ)BFxgSq z4#^Gu46F<j7<d>aGKe!wVvuE+%%I3Hg+YyBDuWKgL<S><nQ%AABDp~Y?gkUM8}zZd zK^Ei&7KTWMC{SE6Ffc?jFfmO2C#+@ziZW0LF)+*r+X0Dk8K`*-;7AH#U}OOKiIss# z$^lelL^H&I%$b}ZB5n#Y0Fv~UGq5tOKr)04ZU`GgEI5ZUGQ=^&gA(E7H6lu2??bHK z4AupSKtZT3kcI3FOni>)3<=;Y&dtEcki@{qU|Gyy#lXmr%#Z?d0|NttJp(g1BG|RG znYS^pqUVU+3~UU0z!pIK#tyYWn1O+v!4p~trZS{~-IX9Jh2*XyU~Le0!AdSrk^(s; z1L72G21bTVhBT;CK*bTLMCH_C-o~JKfI$I0sh-7RA|pc<LpIa^eFnyQa7F-?$x7(D zFCyuNC3HrH93o1kt4KPb<(YsZsP;kF3$=DzJ%cj3y;4ZJq4o+mG6W&J8m1dFcVgG< z&yWoYa0Uhj<gBf-fq}scS`9&x1{U4m)ButVWMB|*WblSKV{)E^7*f<>(I?=@;EvT+ zE+YJkDD%L^<YI9=*M>N>f(eTw5auv2GvtBQ=Q9+5=|To`a23tWV9GF)!Ay;lA(3Gw QgS{FjLpsAu1_w1x09alB6aWAK diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MappingTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MappingTuple.class index d2d11d70e8a6c81d2ded337e8ac6c85437021e56..42c7a5e4e5808faf75a8d47a7206227e88875fb4 100644 GIT binary patch delta 321 zcmX@Aa#UqQAt$R60}F%lWJdwf$=#gFj5?FobGq@GGO#e1F>o@NGw?B3OlIP$VzixH z%Vo*vGI=|f4XYOe3xhXU2QRleYXAcaLm-&v$F0K}#=yZ4KDnNInq(XUD?>a37efMr zAVVU9JVP>rB0~y;5<}`_J)UgFqREZ|!jsqXWGmJ%urky#@G#Udh%?kP$T2i9C^0lL zs53M%=rYtX7&Ej@w&b0oIFW&sVG;um!(;|=hA9lP3{x2t8KyC)F-&LBVVKNd#4vmE zH{MB%3nzE-1+lJVU}ab}`2k-L<JQT~`1L0z@$0beWng94H~9gd{Nzpi#*8N?KjV*L zJUiJ@z>@Le<Z1yMM%l?bz~omj338jOpedv5<Z3~X9Eg8f(3nvc?CR5koRg)6v;b^^ BO-29! delta 321 zcmX@Aa#UqQAt$Rm0}F$~WJdwf$=#gFjGB|zbGq>wF|aTgGjKAPFz_*$PG;h&VzioE z%Vo*vIC(pl4XZl?3xfw(2QRlet1kl!gCCgZ$F0K}%)r4AGP$06nq)KsD?<ze7eg$A zAVVC3JVOG5B10mB5<}8tJ)UgF{K<|2!jsqXWGhxOurgFJ@Gw*}h%?kM$T8G1C^6JA zs58_v=rU9@7&A0aw&b0o*vG)i(9gibFo8jwVIqSp!z2bphRF<S3{x0%7$z_nG0d3! zjdv2`yvdz>L9ELdSQ(a2e!v&RxM}h;e*MWw{5q_=7+4v0Pkz8BKY0_sG2^kx&-kMl zPfd0duw*<pxmv)6QEKuIF!>csg52gRXv!!xxmpk;2jZU=G-i|nyZW>s=VWOiEdc%B BOr8J$ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MediaTypeObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MediaTypeObject.class index 174cc473eb6e6e00702fa23cc9246f9c607b9784..5da3ac74575b7c79f896492ac279b739f6621911 100644 GIT binary patch delta 915 zcmdng$GEAFaYL}SqcQ^rgBk-rgF1r<g9d{<gC>I-gBF86gEoU1gARi|gDyiHgC0XU zgFZtYgCRpJgAqd?gE7Ne1`~#345kcc87wwW(SE^bYtO*J;K;zw;KU%q;LM=R;KHEI z;L2dc;KmTa;LcFY;K@+M;Ki_j!JA<>gD=A&20w-u4E~JF3_*-M48fCk>K<c_WME;4 zn%tsSAezj;!H~ir!jQ_Kz>vnE!;sEk!H_YTQ$Jd=kb#Avh=Gftn1P?6gh7;{ltG4} zj6s>9d~&V+YsQ+%nFf}O&65`!*syjourPE@eqvz5+RwnkFk!N)p(E>51`dX4ld}z{ zNzP?pWthjn#W0^ikYNFXJi{UeMTW%;N(@UTOBrP|Zk*g^RHwL`ft6to0}sPq262Xc z3~~(n8I%|fFsL&eWYA^U%V5lKbh4`P9K{O^tPB?!co;4*h%;PfkY%{SpvZ8QL5<-W zgAT(b1|x=BlOGwkFg}=^ZW7G;l7Wrk)#UvqsjMFvI2k@o)-(-d{5ko6qx|Gqrg}__ zjFV59IxuogW^|F5tZe4UC=6!Rn(4AiGq5tsOkQv1#;87--%Wfnuek-QJ_8%0!Q}lW z;*<Ydi%c#xw_r4%yw2R7(P8pCb7w}+$%5AMlLIY`7z4o;EVi)WjARgIjAD>rjGp|$ zqLee9ft4|Vfr~M5a++l(XC?zHV-^E9WA@}5mPM?^44jN5ll`qq8Ee6AxNBw1*fLqr z+KsVi@?2}#$)(onj8iAiwRU5j%fQAs59$gZ#-)>eZ0s4=P42OAX52nm&{}TtI~!xh z{gV$kDol2=wdOp|Ak27zL4xt*<Tl$<&a(`xjOQ4*7|%~;vCHJV&cMoegMpjz=HxQF zBG!itoQ#hq`&(&Gmaz9?d_9@bMRIbDy%FOlu&HP5H5h+Qo@*^Jna@Fokr~VicF<$x zW?*CDfx1Ry@<s;>M&Ze?9PAloCTlr5Gpd61_Ba|d>P|l37|m(QAk1XOAi-olS;eW8 z)0%;m$%cW8$#(K0r%X;)2396F25u(z$s*20to{s~OaWlmY;*QvjGWBq;?0-<HZ9vl zgE0ea{~8w^#zHXbql*q>>0~)qOUBB{5w13jvXiHR$xC38-_3(jc5;LpNc@hQ%;b%3 MT8y%j@3@5l0F-O<9RL6T delta 915 zcmdng$GEAFaYL}SqXGj5gE9j@g9?KPgDQhOgBpVxgF1sgg9d{cgC>JLgBC*^gEm7s zgAPL-gC0XGgFZtag8{=@21ABp3`PuR8B8}%(SE^bYs0|7V8_7EV9y}K;J~2F;K-oO z;KX3W;LH%g;KESM;KoqJ;Lfms!GmEpgBQag25*KJ3_gs^4E~Hf3;~mO>K<baV_;zj zpWLEXAez9y!H~!x!jQzEz>v(K!;r#Y!H_zcQ$JcVkAa0DpMi^^fPtT(kU^B8h(U&- zm_eDLWOA+kYsSjSnFf}O4U-oe*s!)SurRbweqvz5+QY!Y&^uYx(2;c#0|&$8$=Qa} zBxf<OGR$V+Vwl4q$S{{do?$+NBEtd(C5DBQrHrx}*G+CSs#Dy-z{;?bfrnuigE+%( z204a33`z`p8Ppl}G3YYvVlZYnG+EVnj^bGcR)%v7JPhX<#2GFy$TD1HP-M8opvG{S zL5JZygAv2^$&ZX%81GI_Hwk8a#=yq#eDZ#iRMvM4oDA<LYnlc!ew%#2QGW6)Q#~ez zf0Iv{Ixw<NW^|F5tZe4UC;(>Fn(4AiFt9R8PF`>3#;7ux-%Wfnuek-Q4g(vb?&SR@ z;*<Ydi%c#xw_r4xyw2R7(RT7Xb7w}k$%5AMlLIY`82!K&EVi)W3}X;x3}=vFjF|kw zqLed+ft4|qfr~M2a++l(XBq=5V>$yjW5(ngmPM=u44jOGll`qq8LPl<xNBw1*f?3x z+KsVu@?2}#$)(onjFTqMwRU5j#lXfm8|n%l#zm8TZ0s3VPwugCX52Da&{}TtI~!xh zJ(CYODol2=wdOp+Ak27_L4xtv<Tl$<&QlDmjHem67|%>*vCHJV!obRSm4Tb_+T=33 zBG!8hoQ(G;`&(&Gmaz9?d@-5PMRIbDy%FPku&HP5H5k87o@*^Jna@FokpavKcF<$x zU|?h7gt|s#@<s;>MuEw%9PAk-Cu=!6Gb(}g_Ba|dYE3@i7|m(KAk1XUAi-oZS;eW8 z(}IDO$&!JK$!hW<r%X;K2396#25u&o$s*20tUe5!Ouk^(Y;*Qv44cg8;>{QfHZ9vl zgE19s{~8w^#yl|Vql*q>(PTMSOUAOv5w13jQj@2G$xC38-_3(jYI1}dNc@hQ%;b%3 MT8vVY@3@5l0K^0GEdT%j diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/NotSchema.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/NotSchema.class index 1f4621b30600402ff5532014f2db277d14ec6f89..b31dda6e7986efb5b43ab2bc1d6e949b2f284485 100644 GIT binary patch delta 299 zcmeBD?o!@R#mTC~z`~$Bxt`O3RfmCtL3i>IPA5(?1{MZ$1}+AR$^2aDjJA_Ea*0mv z;Zk9AnY@w9hSiIKg~5ArJ*Vhoc5Zdn00tI@KrqjPTZc7_frBA@awYdP$v6g9hIj@p zh6DydhC~K=hGYgsh7<-RhSbR#JlTvzlc(_1Db_HsGSo8gFw`-KGt@K4F*GnJF*Gu$ zGc+;iGSo2`Gqg=M=AENBk%5(A5(5vzWCn4DDGag<QyCN)rZK27OlQzxn9N|rFnjU` z-aN*IljHe3SXVNzF|3-rhR=&})8y}bfsDH+d-B^b?gzVXHopqv;mHU1Z5U-I9}p0o gEF_=~W%+|y<pLgHK1lwrfE%Oi<i7$klM@8B0OBu44FCWD delta 299 zcmeBD?o!@R#mOqqz`~#~xt`O3Rg-~(L2L36PA5)d1{MYr1}+BE$^2aDj8>C3a*0mv z;Zk9AoV=0ChSi;cg~4NTJ*Vhoc5Zc6Uj`NiKQPaOTZc86frBArawYdP$!G>vh8PAe zhFAtchByX!h6DyhhC~J>hNQ_FJlTx-lc(_1DONJDGE_0}FjO;$Gt@B1G1M|BG1M`r zGt@KaGE_4dGc->&=AEP1$H2<a&%nblfkB*MB7-c$BnCx>$qZ@?Qy6p@CNLN=%$WRv zH;-}N<aj<0)@2NA49h34;qzi#KlwXfAmfh7p8Ph9d%*6S&9B0EVDbTe8%C+g2LwbX g3kj%0S^i*Fxqt_l50d{Y;KnF5`LBS?<OD%20Dx6SYXATM diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.class index c8b5524193698a08b08f772a98c56759053c08f6..c902633e8f07a907e47dbddf10a045386699b906 100644 GIT binary patch delta 775 zcmX?;b|!5@kBqJ|0|$c&g8+jXgE)gag93vFgF1sIg8_pUgFk~dLo$O7LnebBLji+6 zLnVXZ=AAOJjHVV091K<r{0!C%;tVznatyW%Y7BM^o(%R3@eB?OX$+1Gc??brr3}st zGZ<VLHZ!<0>|yYj>@Bx|)sKON!GE%$k?>?@c~{;D1`dWu1`&oR1_g%b$)WP`vMCHK z45<v93~3B}4CxHQ3>gek44DiH3|S274B3+}%D-YPn7l{9lCga9Hw7EkS_T$|I<RS8 zikhs=3@i*SU|zSP9&0B92SeB7eTvg0Co-@yOk&_-n9Lx^Foi*$VH$%X!*m8Eh8dG{ zm9iO^f_1!6%2r&@z{;?JfrnuugE+$`204b!3`z`J7}OcIGUzgFWH4sfIk`f4j^Ysp zR)(VtJPgMe#2Jn=$TFN@P-HmCpvG{DL5JZOgAv2I$)+mn7_Urzq7uS-hk=#h?&J@u z@{?m!jTv7|o}e1d`hkI!;p5~FszHo@CQne+pIoG-!^*<I%E$^<cSy~cQ2;Eis;<i_ z!NA5SIeCSS_T(mY3r2;>yVdO(H7Ea8cV;x2JV94}a-4<{qt)bz8qu6i48n}g3=)hk zlfP<|a(XbZGI}y_F?vld*39G#Vqj$qX5eNFnfz3<h&6_RlQDMkT7B)w?OI-pX_GH$ zc{ApMO|#WjXDkJW2A?6@<T`C_Mo8F#c!#xhSlbv_8Qa0G6xK0joCJ1dnT{^&ECx2l z*^^i3Br`6W%%f}1xO%dWt~2A7$rE$~8TU+{sG%^KNza<|2!k-=Q3eUdW0T$VN;yw4 zuri)z;9@*8`G{U7=M@H4#;Xk6jMpZc=@+ryW8h@GKY6WwDdUUD$_Czy@4>F?Gf-#z z4s{*Z<jV$XOiT<=t|21}m=$cO#>g?b%Fu>UcJg*G`2|cG8hJ3vPOdTniGz~fDI;S> KS+EX4V`~7d8_692 delta 775 zcmX?;b|!5@kBqJY0|$d5g8+jvgE)f<g93vpgF1s6g8_p&gFk}?Lo$OVLnebZLji*h zLnVXW=AAOJjHadx91P|R{0tTh;tZAyatu}sY7Ev4o(wh&@eH;MX$*D@c?|Xpr3?-X zGZ-8hHZ!;|>|t=7>@Bx|)tiBZ!Dq6ek?>?@c~{<01`dWW1`&pE1_g$Q$)WP`vWW~V z3`q=}49N_93@Hr445<uK3~3As4CxH&3>lLz%D-aFoxDfElCfm+Hw7EkDh3vYYOrZu zikhqq3@i+dU|zSP9%~x|2SfYheTvg0`xsam`Wd(wCNKyxOk|K}n9QKaFoi*hVd~^u zrEJDUU>$FivK7}burjP=;9*$DAkMI!L5^VqgA&6=26cu_47v>K7>pUVO|DR$qj->k zmEjNr55r*wafTxdvJ6KV6d8^&s4*O8&|x^tV8n2GvZ=~C#*34msD!ZIWME~uHTi?8 z{Nxx_W5%bGC#XiVzGYx#csKcjY7pbk$rDudCl{&dure~RGBSbH9a1x9<OPeXs_U|f zGO#g<O<tj+J-JEUf>CzzZgqP`waLHLof-8fPtcX09H(K#Xg+zOMl`2AgD|55g9M}F z<gXf~oURP4jBX5EjP8?*H8VN=8CV$u7`Pb&CqLCJVvS_rWQ>};R$qH^yOtMY^5jce z-i%pb(`>cX8H>Q7!Dq-exlUV~5fZi_-eGMW)@BA)#ul(Eg>{S>`@ya()6r#}&cMbv zWAX}}WXAcEd35a=S4{TNb!OZ+d4g^r<Ic$wH54W@=~;6gWDsUN#2~?Vc(R*bDd%wp zR>l(yT#P3tAJNO?yvV@Hc!`0V@$zId{UX-e44jO2Ca={mWqdkW*}$9e4cK*k2I`Do zpswSZeAz&aiSaL#Yskn5W(6CnF|tmsGPGfon!FuMegTt)Mjnh(ldFtC;-I8=%E*{e K3amrW*ct#tg2;gY diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.class index 02411e9a3e5537dcb304fa780068306b9169d83f..bb07990b595fa17cb1e4f284f130054ec69b3650 100644 GIT binary patch delta 798 zcmexb{<VC=W))Rs1`Y;Q27U%L26+Z`1~mo^1~Udt23rO#244nkh7blFh7<<9%{Nq{ z7(-1NI2g<r1Q^U2BpECilo%`-v>B`!j2LVf>=<kroEhvHycir9!WkSHVi}wnQW#tq z3K?7(${E}l>KHs2x*0qfCNg+4%wX_g*vH_@aFZc`;SodN<aV_)tl<nS3=xwf)N3RY z88{e{7(^J7859^&7<3p?87vsm7+e_AC%;vXkt|?fVJKwaVklw|U?^q~V<=&eWhiA( zVJMrNr16!pdUAxOC1ca%Nt!mS9SkfCos%zX+OYO9urTyb7SVEKox;GuFm-a2)-=gE z46F=u8MqkcF$gluXOL%D$e_ruh(U>A@nlZzY{m_fOSS71cQLRs>}KF$*ux;su$MuO zVIPAM!+r*Jh64<`40{-i8IDXA(V3%oo`IF&0s{}jMFw$(OAN9Mml+fpt}v)ETxHN< zxX56{aC7oSojk_-lO1$DSYI%(F}$1{XevIr+*oAt4qYqO4-A|PA18m;4P^W=S;j<R za;Bax6C=aq8F~(koRim>NKXEw=fEfgX8GvrvPv_sG0MOVSgCKts?5O2s51G5ejuYZ z*nlVlJx1fnodyn!Heg+k4ICI<!7N)tT~<E^Hb#HA{#k}rtYHkCjNy}S8U`}Pf%SVE z=`p5Ft}=39%m?ebV&uSB0cPnL>#{a7urW44_4~1QGH^0>O+IBD$T)GbjENuP%*oj% z4vdQ?uQ7>aTs?V>iS%SeQ*GAG3~Y>BCI^}(Gwz<e)zqHx$mFl4&WvX#TbczjUIp8^ z+RU2sE`u=RJq8KJ`;*_Bm2y62U}b#5z{U7<a;|wM=UWC=#&-<djPEDkH!ouS&cMm| zV{({92@@0J<TDoDj2x3K&EzJVS!yr}Opdp7VU(O4Zz((Zprtya?Bti0mW+y%m91<T lWhW;<NzuuhtUz+NtUSP?qLVGGLHq=3HxS=iX7XWcBLF;i)-(VB delta 798 zcmexb{<VC=W))Qh1`Y-#27U%*26+Y*1~mp%1~UdV23rPo244mZh7bl#h7<<v%{Nq{ z7(<O1I2eo>1Q<*hBpFN@lo-qyv>7ZIj2J8#>=>*VoEdBwycld5!WrxsVi_D5QWzW= z3K^Uj${Ac3>KI%Zx*6OUCNg+1%wX_j*vH_-aFfB8;Sq!1<aV_)tRW06455=F)N3T; z7&sW>8AKQo7!(*18FUzu7%Ui)8C)1rCcjmWk<4XaVaQ|PV#sF@U?^Y^V<=>hWhi1$ zVJM!Qr16!pVseD0C1d^MNt!mStqd#-ZIdr++OT#rurTyY7SVEKoyfq!Fllm>)-=hP z46F>Z7`PZ_GYB%wVUTB-$DqhCpFxRX!DLSDY{s>dOSS71w==LZ>|o$w*vTNyu!}*C zVK;*k!yX28hP@2B3_BT&84gYs(V3%ohJlsgECUb2IR<ft^9-^K7Z?;7E;6VwTw>5+ zILBbbaBcEMojk@nlO1$DSf4VmF+7_bXevIr+*oAt4qYqOw+x&N?<RlO4P^W}S;j<R za;Bax6T{!hGxQu7*(R?sk(~TV&w-I2%<|FKWtCuHW0Zs&uu|WORe^z%QE~DM{Xj+y zumMp9dW;5>I}IEdEy21T8#pjJfmybOx~$#|Y>Yl|{j&_MSc4fj8AB%DGz?^n2J81W z(ql}XTxI0Im;=^z#mIrN6wJ~y)@7|@U}LO@>i1)9W8h?LpM1(Vkg;#FjENuPw8_~f z4vh0BuQ7>aTrqi#iS%SeQ*G7_3~Y=WCkL7)GwztY)zqHx;N-8S&WxufTbczjUIN>> z+RU2s7K1S3Z3YR(JCom=m2y5{U}b#Bz{U7za;|wM=PL$Q#@7tojBh62H!ouS!obP+ zb#j<R2@~VL$!9FQ8CfS=n#oNzv(#YZog8oJ!YDR5-cok*K}&T;smU)bEg9t|D_hwx lN=;6HlA@D0S%KtkS$Tj(MJHQWgZK&7ZXmw3%;dw?MgT7t)`9>4 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OneOfSchema.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OneOfSchema.class index 98e28811d1f50bfd0e8d1e560564df1ad4da5211..07b0d267a6e795038450b5b58163fe93e26a1879 100644 GIT binary patch delta 287 zcmbQFJV|*&6DO+@0}F%l<aSO6RviWo2HnYl{GyW|a_VxLF|aV0GjK6jOcv)#XSAJM z&t=KzGP#~hbn-babyhD176$Lhzqo8z0~lBs0w-H@JF<o`a4>{VZseXO8OOlN5YNEH zkia0wkjNm<kj$XSkiwwEkUH6bC!4Wo@*JKz#To`yhFS(5hB^juhI$4$h6V;DhDHW; zh9(AGhB^jghPKJpymJ&MGO#jCV&Gwz%plG%g+Z2KDuW`!GzK+>=?ppylNpQ{W>5aX zo5#3tayp*}>q-VThE<cd@Od$AnjFY4JXwg}j&b+oKz<v>{geCnEg26_KEZFpC_9-| f07N>0$$9|~M%l?Hz-%8unaPTRT8y%jeFWVA1Pnov delta 287 zcmbQFJV|*&6DO-Y0}F$~<aSO6R!s&D2Cd0~{GyW|a_Vv#Gq5n2FmN%LP8R1%XSAAJ z&t=KzIJurnbn-babyjx<76y;Wzqo8zeHmC7{3cs-JF*5da4>{SZseXO8O^}T5W~R5 z5X&IQ5XT_TkiekGkjS9KkTltVCz~;U@*JKz#YzTNhAIXghH3_Jh8hMrhFS(ChB^jy zhI$5FhH3_5hUUrEymJ)$7+4wl8F&~bFo-iuWRPW;#GuG9nL&+V3WE;A1O_998IynT z<}uEjoX+RLx{QI1Vfo}Od|r&}CkOHiPZr|0W85)0kl%)J&*VOSOU46}Pw?9?N=;@J f0Fh2$vR=T0QEKuDFxy8^X0oE77NgW;A3-+&r_Vs} diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class index 571e0e1a103569df6736cdbfb429b22df713dfdd..ab3e442c9b675a670af875a2d3629afe3867e1fb 100644 GIT binary patch literal 49861 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 Irip5t07n%)$N&HU literal 35824 zcmX^0Z`VEs1_l%6Hg+a`E(S&>19m1uE(T^M11<(jCL=BeS0-bSunCB33L?z77$!2A zgTyRATuXK)D=r3Jh<a--h5{xVZboJ%TM%K#&ScNUAk5^z&B(;$2-4yN(&7vvT-cdh zxfmpw+(3jo7n28*CpRM_lNU&pH%NgGi16iNn8)M?67vUf13*L|J5vxBgDO)nNH_!} z5(*;1*qOq)7_^uoK*EtAkth%m&Bd^UDF!4K3*yFsSn(iM0*FXtXG-E?Fl9;x5h)<K zRCcB`kc<I{69;0&gIMVxRtAWb3G#myh?@=K=73zC%gu0-$%dUN4<wQg@=O89TZJH1 zMIf<aPzcztGnIgXqZA}u1`;j@d9MP*tpsta*qN$9KC1zV)Ph9n*qQ1<o@xMzG=fB$ zK>le4aa%y#R*>~=AlJ8p#5&lSI=L7UL9rpp)Wylv&C~-@(96Zt$JEcokj-Sk$zaJe z0Ypp$5tG=NCWGiH>`YU+7;-`SESaXUGff9Yqyb373=lCBq-GX~H5+8h91wRd7t=hZ z`Rq&!*qIixGc96gTFk{z!(_n0v;;&i<ziaKw494+1=C6pcNG^yHPdR4-Zda%Ey$>K zAl7;iYXgYb2r_gNh}g`*v;`!$73896AYvPcSkKP19VEO1MC=4Pa2trV3&h$DBG!Y5 zJs@HlhybhG3sSNVMC@m0Isl>%f`~&P;xLFf0wRvGGaUob$3esicBYeD49g*5aS9}I z8sxsyplCe<;+_Q&=Rh%eo{Nc<=>mwj$i;Mt=`x780!j;xAhD|;;u;szb&$k$rYj&* zZh(~B1c}`Qac_Z$+aUAqa59NA-Q{8uXS&DEbf1Ii0T;tTNQgZI2|fZT1Y7(V6roSp znVy0~o`JMJ2N5sWnO-t72$$q%r{)Eh6lLb6$NLwg<~as<GBODHWF?j*>gOcprRziF ztQi@^!AkudJ)QION>VFI;-NGngQ`z{QM!J9L26!NL8eKTesX?Ms(x;MN@|WiLb){~ zgJyDmUP)1AQfWzkk#AxF%s&65tkmR^_~PV@)ZE07(t@1SVnzmjh!aXnGIR8O6AP>v z890M8)AJHbN{dn%8A?!PZG2Kv^-D@qic*VHQuFjP^V0N-OJEMtPb@CccMJ~k%TGzQ zM$#9YT0*=&J8L^@Mg}El2w`z?d|763W=U!aBLia;BZD#?g~|E31*IjaDeO$I7#Ucd zE0c3l85wvy^YT)QoO2S3i$T6OAjU(%C5a`eDqsVw85tDtSXq{sQ<{nzropKt){G2x zq=rW@B9g!%!UytAesL<)az=(o4T4UGs)YoiwI*8PDM&0TPA!5apE6^8u<C+LV{1kR z7U%pFus1UEQvFJElTwR95|cooC*+f#oR|}qSd<CkLj@U&85#5lIwm-^s4TSz>J~-@ z_F^!<n2|vMDQJ8$i$S5qSis1jOVGrC#FC6+xPhz%ATA?=H9>vBsmY~9nI)A$sfDGP zMX9-|c_naDM2aybiy0XhOBfln2^t)dm<~6Hr6e&Oq%oBkjjk0Xsd>ej`FYli3_PhY zj&EWCBLh1$w=**66SN;3g8`lhHzXEh8Z$Cz5Fhc(xga~mP-D5WAQc+Z7HCmrL%?K6 zoP*P^JCau4!~z=#7rEdgU=}F0!6vyvw1NvPP<kQk2#n|kn`26%IU$MZ82WJd1W~9% z;{sHs`5@VcrVpx$U<AVoSCDbM!6k{w*}jPd;J9IDdd<%ChMnmxBLfdOV?)ydxST+( zG{Dl>^1UWO`=N$Hoy*9;oSj<9$e>0b=Afy7k-?atLd=+AWKbrc3luMm49tlInT!lv zt`*6t1tppJdByBZ@7S5%von2QXZpy<AdsG#ms*rqk_yW7sl_G5j0}Prny4`XD)>q= zGK(1*SW1g>iWwO=i&BdV^7FtIg))*_aD|45V`#+<ij-g^Rp2-#R9yx^ZGZ+TL_2b> zu(M`o`ozc(itbp#H7XHCGcvH*Waed-*fBCNYiNcsGVp?UD$W_1IVnY{d5nx*8kjC3 zB9)X7E`+@ji%T3+Qa~A)%8LC92Htwq9EZJ`Mlc+ag9sEkOa%sv3`_-vpmrdkbOj0o zkYXcZDpF*NK$?s}gb9c+1rcT-!W=|cfCx)QhG2qj_b(u#&F7hymJdz%pv)6X&{QOc z5>Ee+Vh73m80wl2s*qsK50LXC2^vpSpg8B}7Ubup=9M6uokh@W5`zY#phXI&DC$~< zXcd7%iLl{Bg%YU6RFs#P<C33DJC}njfi%nPtQncb$t(*Ar&N@DK;6Jc%LLRl95n|J zG@Gc1#ghC98cemcPhFdk6Fxzci3%K0f<#aCXssj4>l(u8732(9z5rEBl0l_;C7HRY zVVT95Nja&Gd3pIIiO@#a7e)qd=ls0llA_Y&lKdh@277`*0d3_Xj8Q={0Mtm!OUzAW zWMGH3Mj08n5E+P(fd@IsGcs@^B~nHP0rcd>$RLTcJIKhu36DZX20@UoQ39WlfgL_F z!wHfFhY2GCOG#xxDkB3Mq+Q6!zz>RBgcI!;86=TYEV6s;7#Spx<&Ye2$H*WGG6>xV zc8m;a$XalE$BvOf3|S%EZy*Vf$sjMFc+ifKfeSINgr*&&8th>^Mh2Gb%)Asv2G$VJ z7#AZ0vwuMeBLfSlZO6#KomZL*Z%~4onVyUce7T909*JeCL8;|MnI);<)@KwW17BKB zX>o>QNlB4&Vsb_*BZCN7z&SrBCp8(Ao}j|4$vOFXsf-MU8l-nwSn|L_8!XBB1>mj= zq8aZDGSn}>B)GJoAit<2H3i<6ux4c7NGr|BaR%$*a!D;HN=;4#k3oqcwT}_v)}Zme zqSRE72EY7}qQt!7wEUu6Mh4boP}7=`fv~%wnZTNnfiaVjfzcC`tcp@o85uZApawHC zaAX#%xE7Ws<}fno5FQPJnW!1X$iP*cS_02LqF5?6P_|};j%IPCBPkYvbwrRmDeO#N z85u0e$k^ZnW6j7QP@GzV$RXh5qe0k5phhmpq0IT9^cF^x2EwHq!X4Ij)*$0~Q5?s} zpikH$Br`xJ=nxDVBn^xVycvnb2mwY0-gM;9VPw!FBHbhOgMt^u0C4cC6JZ7@d?8&= zBDxzS1}r<%H%0~y|AG>5*}%v^SUWWRB2^18-PVi@(&#=!$#%lUsU^t8ETm*IARLcK z<s~>Nu;gSGmoPFUkff8a*O1)?O>{!(sU?1;xyUk%46>MlDE{P6NA)MDi1Z{})*xGA z&B(x?kywl@#K^#(n394jVn{dykTrk<PYTTxRHvgw5hH^UiB@=ma+)w&2tZ<5pNPbc z9My~r@ucY>If~htzB4j#f?Nkp|F#5+2+Z^k*KW<oAcw`{C;=>mrT|4!08O$OlB1BL zuoy*yP;qJrQsV^V5>TKK^aN5U6Am*Z3!u3|5Rw6qBp4ZFFvL(?%9oDfQbq;?4I;7x zk`303415`h#YiHI419?xDJTL&lqE>&!P!9))eKZeqXsW19}^5(Wb?s!0aSz_2}0s1 zj@k(u$p-N7IH-(55(C+a;x$Rs_&|{Zm0w7Diy0X}sTNrTMY&jUY6*IC7+kr<5H31E z4PJslif%YG6@sc0bSXv#Q^J;_YXYYOBhsD0$RM1NSd4BOBLk@P!xS|kBFfQqSu-+- zrQ-<QXd=ubH+UHt6tP>267dS)$^yq27AVCrGUO7D4U)<toZTvDnvjQ-LO7K%GH4M{ zf#O3@p@zpSJ7UT(ocgU98Dzk9JdO}#WRL+@)i|Z?2nQ~1%R$w&IzIDJ0|H-EGcwpy z;u3HvsQ|9}aCjAxmU4(l@Kj4oj11a@T!a!p>iATns05YFIHRSQkwF8WNvPF7sJ{ju zKY#>MEa8|SDU9I8Lo*ntZtyG3g$qOK24oQw&+??FmLRFsBPPSZ)q|$tGZKs8d`1SI z#FP{yt{!2}!c~I{d2wX@s17YgaVQa;ON7bb1Pp4s!G$1k5ku_+3pXEJ#e+Iqa1oG= zC>|0=4tW$AP(K!~ub7cR0$C+$0uwJzEdh-%p^Qg?>vkg28BvuFhUw6BCW6goMg}v& zF^*{>sHih0SiNKFV`LD?NG!$>XJimb#}X`{rU&6p9)@Y4m1fwC1BWs(DTwS~W@J#p zVKGW_0S!{Y2Us=GSFvCp=mv#2XuJxp4>Zm}%xo-V3<?xT;6Y7Ls%B&$BCU~BrooMe zrZs4p1{a2xX>bvg00EV0a2e1r5D^_2xO!-r2IoV{G$bw&Wg1*Hyi9|OpgI(qhrmHe z)PNb>9BX))1{Z?F1u-d-?8tz0cTsFa@ers?gUh1GfXXzu475x`@KKa17MB*4rB>oy zjmhnjnwFWD8ef#3U&6@HOt{d2jtUT7LjhArxTJs%3`6Ht85y|alM{1tQj0+AIvE+b z;=yCsP!5>wnU|7U!N|auoS28={7_mrKZ=ooA8JcxURr8VXi*L$LlF&Zf{g5gmzjaq za3U`j0`VCc2(KLl^;|tmQgh)!$pTuW$j<bGkzp3iU5sUkot-tBFR-d%WDr8cBqEGc zXzpTb(9}c)&8@-eX^_=I&~yb`D@Ko`1zK{A94R0^Bf~G+1_HH~rlC2U@Q5B!Ytlp! zsShP4Xq*5+ArDFgD~3qeM}Ze8f+tWz@);SliD>h~>HtOtuH?i#`0OhW>W%=^g^`f5 zj<p!H2A+{Yi(qTkF*pRgUf!CW=_ezD18lkwR*n)*Bd9Ci*_nPZGH`<CghAUGQW+V@ z87PNqw`OPh&B(yw4W6#HAjU7CdJbvI38WLW1i{(g$A_Ki4``M@zqBYhm65@U4AX+a zdaW55*b<8iQj<#<88|)j(jWoA$iS77nw*nZl$zpL!pIQnY88_NnibE<FVZc^NG;AR zjtS084@oU9K^ND}N-Qo(Oi76;E=rEcP0Y-TfeFA3*UKtOOt&&LV`LCPj{A7fCWBJY zggiIW4iZKN7D#i14<?@y2HEF;IvEVF<uZv43c`s2mSXLo8%n^l&fuAP&;|r+Mg}fO z7`kPGw<n-9UGzY6`-}`~sLg*|%b$4|B^jj{83aL^^uejsBe6KcH?e?+F^e&qhv_e4 zFb~r|rvE&QrHsKmjAe}FJj@Ktj6BRt%*;HD&5VJJ48jP#jzvX@m7s<z593tEJ|1Qk zW>y|%HpXBcW_BiRMg|>16ROBFFFec~%$z*TT+G}&%skAzJd86L19=#iGxjkuXcICA z)B=GnB;;Y{W6b7Z=4TdQXBOmP7Gf6WVHRN)<zW_M7UyAH2lCW<#tl5o63mi3%u>wK zJdE2w_8bA(V@b#!oa0J7%reZfJj`++cb@>6cMW8oCL#0S!vs9c^2`c6%!(lWcR_Bv z$9SKIS&3PhhgpSLm51>u<1-${$Ba*S7+-=+|4x+Y@CG^$vl=K&)S0w-m^GL+85wj5 zISeI*@i1#KX7eznGiLBGYcuQcFzYhw@h}!K7V|LcGYaxB8!(A5G6;ZE1vueCRs``d z8!{X5FdH+Q@Gwd;oANNuW1P>!Y{qQP$e@BhtwK@-53>ccB@bf<V<!)@6|*%DvkkK? z594aaH9X9AAVUlZ8G<p`$-`{V?7+jgn{f{hvm?j|Mf^sDB&PE)J25-+FrH;R$HVNx z?8?LJ#_Z0+c#H8i594=`*FBg$LB8|iVSLB<9wS=?r<U+Ado%m6GyC!|`!W0TFb6OO zvNH$rFb6RQ^DtauxXi<Fjo~^E!wrTzj1208A_ZDX@GyrkEns9&CZycIpoE7xlsSxu z{Dah^<Y5e9l;U9wWt8G!xXW;lhcS#vkcTmhF`S1voH2o&X#q$?n~^~)n%Lscnvp>T zkvPDm8rJnkj12q;Wv)d<pk;L82oXrCaw^TtNl7hYWRM4|uu=dol2XXaFHtClt!Pq6 z%P&&kVUA#qWM_`zVUA{wVP}rzVU7dkfp}0#mSoJ}VT@x8=V6Ql5phg{Jj@Bqi9C!c zAit(ErtvVGV>r*laDm|>BLf2uV+CU+4|5Wz?9(C?=!gX=Jj}@;BYPS9co-*x3da=2 zKpy5)<}@D0#UQbzAYvn9B_o3YAw$upt#}v@fHWTh5tl&36%g?NWR@Wzvp|Ic%5WnO z<7bfWub?7D5**y%YQZxlHLoPIq!Ly=FsCzT@GxgGXYnv+Gw1Ly=YoQ&m9dS7IS&-B z`Jh6-fVq&Jxrm3kn7M?9xs<t#hq)XiT)|w)&RoUA#K^?N!(7c=!^6bI#LdGbz$D1S zB+6XN!(7L3hljbIxq*>E3hV%IDFR(>316PZ$YAH3S(IFwlUSsX0vbNZ1g(`*$WK#9 zEP?C-O-0?asE1tVYiR26FsU<%@Gv)mir1fvQasE}%-oC&ykHx_UIu5^X66<i#uQMp zh-M6jRd!$pfm1H1K4xUlBNWQ8<{@M|C5kQJ{cd~+TS3()BZCk^z_SFjg$I=SAvJAg zzP_hFQZN{xmRjHu!c^FXApM}!;{2RaP|zT0F~p*!EHNiD1-yP$KMc-9(xZb#55gLk z)a3k>R3zmPw}Jx-F3Qf_%E(|#L|CCUKam!~GBTKxt{=SKj*-ENbe*uZR*VeRq-zGn zBy^n%!2|+ou^`4w7#TE(unyeeAj@U&o&h6+84(ttMF*%iz{p@hx<*K&m63rxv)DDa zprjJ9A``rg%?8_wOtgjGxZ1JSj11hMW_*5eDyYb1WJo03p9Lv|w%(COy}%t}0=9y5 zT7!4<g4b^{GWem7)1$i+tb>HT$Q+sQTrY;wnS_-FAnP*{i~Uk7K#Pv^z!Wbu1RxD2 zMut?vVE|D|UMN8HT7z~Wrlc@3pe(3`ng|+M-~!KOgSJ5zGcs5~;}~4Pf-(px8?@Qd zQ%izU(;!Pj5jh4lCqQ_77opyok%3^njZlq9SRgT?5*A1yBr`+%Z(!dNldwQKK>=D& zTEfU+0Szl~AqovpNJ2#xfsRHY3o$Zqz*bT*GFU=QA=(Y#wmxJ>ydX3|AsQS+EipkT zM{zaLE<otFW@G@ZLq-TNGK3JyY6!)oq%A3^SFv>I7#Zq`$w(Oe3-UaV#Q~r>OK>K_ zu%Z|=rUlwMSDYG>m`>DMM0g*Q)U*lNam)^xxG!d85Qc^rQVX(}k)eQaP$6j`FNlx~ zC<d+Eh0eP{o3X`=3}J-Q2#N_L6w9Cz$Q!i#n<G871Uei9N}wR~z|(%kj0{2;87_>G z0W>=c%2?ovjvcyen~_0HgOKImii44X6I`KyIN%ZpwJipgL)zO8Qid73gz9UME@*r( zGJyOCDvXL58Q8K@D}z%@7#Tp$28p4SOpuNk!Mq022|8v4>{t+ok)e%HG=Y>^qt(UW z_ASQgFOYH(se~cqTaeMvGMbUW5gKLSLKNyBg56mp6JYc2kQx!32B5_<*hS!aj*)>I z>~)A5aOI3Y79k2rk4K0;cuaz(Y7s>uXwM9xB!^H9%3NSaBZL?kCJ~A?gkl=S9l`>* zFF{k)SV~UN)HK)wSmeOPI-w}QC~?V&4-7-#&IV<v5b%*H9AIa{3UU0-0+qxhCwN4; z&&U8;fdMMA5GAG_!GZ``y)`3)AlSXgg5a_rzr&H0lOB*ry5RxHoDM3P)R6NpR1TT} z!C4wA#K@qItPqybv*3qOLDhk>GdId4oB~uII6Ffca$sF>KI(vHWpPPrE+YeTKByTd z3W=)BeEoo;%)FA|lA_eaT+nPvab{I2Y(xQ7mXU$I0Hii2kCA~z1H3kb1H9${bUX#P zaR=>J>JqMPp`(P56((#2iAAY-C7`L7f`U}g?nPaw&%ogX4H4v^g9t%~*+84B!2SlS zhJ+TRt^gk`#mFEG>#KkjfCWKi2tp572vU{!f%mg=l;lIKfSLo@DX2rt!bO<R7#X-B zi;SUx0$vXeG6!WH3TR=sA9PbDiUdbuN(xjbDf<b-7#Z}FA$v6Ak*1A`@h)_6BphF$ zR)Qn^I3q~ffhRLi$^>Oz@Y)mqG%}nG+J_2SjsdCrKqsSt_8gJYeFEtLRpj6u4baq- zo>~H4Ho%sVSnLkUk)VbWm;qXeMyM`!PX!%+MQ{KcY#wNPhkpTRL@YBu50(OriI@dO z(*)Yz0$$}2l$e*2p9^+<IF`IXuo-}EE@tL|cGUy&L7V76B|e0uL4>10DnaArghCLc zj*&qSR%RjjDUBL_LQjPdJ~)p<GOsnHT|vm1uwhV8^6~Tci+7H6_HhO64~CplXGBDZ zz>I*5q=NP+XXb&%fk6|Y;OX1M%)DZ76I~siD^o-A@#adD7CUI>AC%1qj+{e_AH*~{ zgCc_^LpB2=!&wG41{Tni0RsaA3ux8=OkZNS%)rQSg@J*AiQy^(3uvYXEPjLG4w$~n za1SnjpP_<*li>lwLk32MM+^+i>lj!W*cccXuk2=EjNHz^<g=TBIdVG#i?7x;2G(s1 zY_k}6v>{CPaII|&95WdNKzvS}9SmIC7`Q=VJTn;_b~ErsZfD^0)7r+szl}k_ibaxT zCxaj(!%PNw5KD-W;Q)iM6|1f!tIiGvk(~^pObp@6|KHWt-NqmWGDCbOgD=!(kQoxF zX6V4pkOZ5tjX_G1bsK{;n9$kAAhVM}mKkK=1(1PqAOq#04pq?E!JxQ}K?x+LjOtJo zR7(&JRRvq3vx7km#i8mTGc-`m(8Ohi7R(H76f<-{X6QoQrl+%mL4O;A0Z7d77z4Mq z);0#iZ45?Q+Zc>zGB_iJhY6}R%JA?o1zWR?!3-1>=CEM62?_=a?G51Af6TzZFpEKr zfq_ARfrCMjL4ZM-L5e|zL7737L5o3+!JI*z!Hz+L!Hq$aA(cUkp_D<Jp_)OLp@~6{ zp^HJEVI_kB!!ZU!hBFMt43`;97#=W~GCXH6V|dSC&dA4L!6?UI$*96$&8W>_!)VN4 z%NWF9$C$)m&zQmB$e7RI#8|`N%-GD}!r0B=$~cL^jd2!(JL66U55}_$o{X0md>EcE zFfg<*@G_(_@G?AQc*elW;0Ctg1p_m~N(L#0mkh5MSQ)w)oETm+TxMWq<O8dF!@$b$ zp23viEyD{2X2u`}UWRuJ?-^JbjTuZCK7hq`G6*t!Wcb9u$~cR`g5fhrFDRWed|~*? zz`(%4c!uE{!*>Qo1_8z+3_lnyGcYmyWME*hV_<{Y|BHbcYU^(XW~g0%7?`0p{AFN< zn){D|8EVFV1|~)Z1_p*G29duE%Ipk`?2L@Ue;LHt8JXA_nSU{;{$gMSa~Z*0qhAcH zSfvrFh53-wYyM(jVc=wBVPs`s0_9z%vkdGEtPBi{Gj}ssMs8=YLe9I^(DY=zjlo81 z8-p#BYrBoXPHP*3{V@i9P-?T+*}>qjjlofC8-vp^1{V;ulfjvhVJCwNBZHqVGz;tK z?qmSxU{@;^?cEHLk&-N0k}TU8+_bhaSnKRyaNo}0v5moV`TvVr+Zeo#G3bG)oebVc zMo7bq@UddimSoY{!Qi`%!EgEhM_St${EsmRgB;@zH7;NqL!j0+h9HPRK{yNwh8YyH zjUg0bP#8o<7!DobFdY%w7$PA$qM+drrL%(}dK*KG);5ONW8mP3#S#vhFi$|j!4wn@ z+ZbX&nK6!uVLL<oHim@d|F7t1X+tt1QU)wzkY!+C2xj152w@Ol2xAau2xpLIh+t4- zh-A=Xh+;5hh-PqPh+*(xh-JuTh-2tvNMM-2kjSu(A&Fr(LkhzohE#@23~3BE8PXZP zGh{HbFk~@uGh{PrGUPCtG2}7YGUPLQG88ZdFcdNtGZZoQF_bb+XD9<_t{?^uhHM6D zMmC1?3@i-m7`PaoGO{zUFnkBII2c$MH5s@V-Z64AurL-gNI=ywFwSJ;V)zcuDigt( z29#Agk+KR8IP-u+U<u!bf&VXqJUfFWJ0l~X&>sd-a5^{q!yo`=D2TyXa0XnJ9wRpc z0|OTW3nLFBFC!l#KLaD90HYuSGbpKpvnMM91B1(MhQ!G23`xjI9aLGs)2ak4jwC^K zkj^%S<nZPHpKfAE(b>t6%E+*dAx#HSEJ}f@K89Kb4u(1g0fq(!9fn2*GlpgcCx!#y zkkevdVbEb<2NyvsAln&*AcY5m4Wlr)QWan@VH5$o4pexEF)%T3faDlOL16=uV-$lH z3W5ww{}?3L8BVe@LbAUs*uyLgjEv%tx|>mgff2N53Q{vO_%SdsfQl0lt?dlyT8vv6 zGPIbtGGu~SSsTH1J*Z?C1C;;_#~4^xJQz4x)-v$1++q-BI1Y9`D1sOmM4*mlWRzx< zf||XHff;Oej+Ow&UWV+g3^`i68FC}HGvqOEW60Oq%}@}zouQBgiOmXOgVnG>*kCp6 zNNf%W8>~hES&;xp6~fJ03|tHh3>O$U87?x2GF)O%WVp<r%W#FklHn?YE5kL0K!)oK zaSS&YvKek7`6CDJ4@pKDNU~roWng9iC7W<8VWg!ED(iH>9?}JSMUn;V3rSY6+a%dQ zuF{fZ2RmDm1L9&yPEdg<$pv>ZGXp4??HKqO7#JR*1@mJD35F*Oatu!yR2ZHyXfr%# zFk*PYV9D^3!GYlwg9pQF20w;33}Fm!!QLo<I2Gy*28M7(S%&lAXb5MNW0YrLVgQLL zFe)-IgIP+9iVUDs7tW~6C=ZV2a7GnIMR1x8XH;cWWMBuYQ)858-~hAK87?w#f>|1j ziVR%f3JsL|LFURaYQk;Mg4>`Cw?PMPgD%_#J-7|}P#ZKD4H&qf$<>h2h=GA2pMjCl zl!2MiESiC<n9;nL(W02qvY64Tn9;hJ(WaQuwwTebn9;tN(Sgwsti-99(Yct>rI^vR zn9;46(Y=__qnOdNn9-}4(VNi+ti-pN(XW`%AB>P0zQv6G3@nTRjDgT}tjoX%4nSrB zjy3Qs!3Gxk1P*gZ7GQ>kIU{2bV=z>!4pb`>GrG>7NIIF|Iz!-@#~7-URckv#5h7J{ zfrIxy0}CSqk^!u6147{jghO+-q}FzZVnn6}<?Ip=k%2H2TtYFjGO#eRF>o@nGw?BT zFbFepGDt9TAz2~`w<L@aWcVWn1_mbvMzDjpw6-&p9$>Ka0oO)M;M5FuDkDDw2crPk z6i~Uvz`zAHg@b{KF@oVM10$?}VyI$Z1TA2KhTI+o7O=_ATH6@Pe6$(2GL&m=VaPeg zAgB$Zw=q;4V5r>6kfXi9XE#H2<ZgzV$n6ZZLUr31>b15pG;CvN+{RG9jiG5fL-T%c zR4FhhGE^}@GMXGH$uWvEurf+8a4||U2r^1B$TP|?C^E`2C^5=`ovXmW%)rVZ192pS z5`!YcN5&|yNzM>2fQn59Q3j?z;L7MfD8ASkEEyQt!9Iy*42KjS4Ei7$1_lOJt!)e~ zplSgUJm3Vxs13FYl7OJG$QT1^-hq=n8v`R_ECT}rBWQUSG+;I`FoUy`sn#}zRv%DU z9AnU8wv_>~_AO$N2hlP{e!9mP_;j~1wE1c4%4}oEZ((9w{{J30b|68Z2Fk;XrVOl% zW(+)x<_zMD77TKXmJCXaRt)Nl)(pCg<_yM+_F(6MYA87de#Usl1O{dXJ_c3BM8+g= z?3hA=f`OI6fH4^yn;^IIGBE#T;A3a7WR&~Gz{<b~T7U#~{d%bDO^{r#iEzD~mdrMW zc9`QkkR5*?!|`4Wtc>0aJd8dJ;*7owvW$KVij4jYYK#F4I*dLHMvNhF$IBu)UIp%W z6S(8`u{vHB<aidwRK_%@<1-nUz`oYf(%#O{Ig>$IYYRh{_5lXVEeu`D7(}(UFmywB z-OCu*S(Y=ffO9=0ydlvY1$Gi7Cul*fXJF7`j9^S)U<4;9Rt6>w2Sx@)#&pIEsI_)b zYuU84w=#4gvMnToB{8rvCL<Zk1~-<CF%w+$GlJGaLt66;9?--n2y*%{1}+e_oPkxS z2b3_8U780r5|S_lAx47T$IigS=g7|B3QnKg42+Dq42+Cs#f;_*jEs4V`A};D8JNK# z#jd3dsv1FVh8PZUb2$SWV+Gg(NKmjtEMQ<@U}r2~lxJWBS1J(8K_Z&4kp;#=21d|Q zU1-QSL9OA^+Q!fevZ)Vb6C{5@Y^rDAWNbjP30C}o3Ze+c5>RM>mWD&ka|Q7k7#IXV z=51r>pNS(H+rcJ6+$R8WJ2-Gy8JPIMkypl84mHvYS`71mjAY)%FyR2hL{L~m90^Gk z{Yb{~K#XHx1TE8qmLSGZGdQ)Fw=uLIV8}%`U<Q%_oKOS6BQ=aw@OY|)#FGUBBV!$7 zB{ZH;OrC_r<b}9RW?*EjXKa8PgcRYRRuCu}kRyC00~_Niuu+&1-pHtk7U7MITJQ*O zVqgTV(}#wp5j280w6-x!-o`KmtyX2+2(|+fF&xl<U}S88SLMk1r*31IhOU1XR{gDv zZBY9ipji<Vo0FxtF-$+eAdDUvhrwn*{0WOq(6U=lnF-3+?eNwCa&iOt23K-B4K@+t zE3C<_gRv9pz&ZvdaI;HNYYRj9aRyMvn7W*S9TZ%?I@;S9W`JUb1zbP#ffO=cW)Nn) z!XUwT6>JBn(qmwN)$|}%1j921Mh0O9Hbzi9L543tE`f+>LHiw`Qo)&>p@4yru?y~& zWT;!XwYD)#Mc58W7ZBTTGO#k<V&G!DjbuAFG~O5(xEUd~vtrl|5zzwW3&w879;oN@ zpp^?acKmd;WwtTQ1o;=)#>Wh-j87Q28J~h}1l4SyxPkPzKrD!jAQmXTm>5_Y*ug$$ zh8IZ?5m4)vk+GMt51L0qp(%q~iv^rV3m{D)h}Dp?=q&>$<2$gmki-G=C?^9G*a}3c z2N6MJf_``|o&?FomJE!bRoKwXhseb&+ZZMtU?@OOlHb9$f})Lq0kwSSXJBNUf;D+h zmEOiM3rq6;2Q~}h18m8ADq|niS;!5a$!JbuVgnlkaT2uQ18wnxoHPxqAyd%};m2#p zbZn&)sB?x$6X1wp5@%pz0`;*N7$Dw4u8u&d9uYC13aXJ&8(uoiU|<Ao?182~<kDp} zX6eKvkK|lL=`;&#=`;tkbYjxLs(&`)9H{-srPFLk=_H9BWQJffApXP_eRHvvP9Wdl zD4m!r!6rgt5^L!+k8wWKfmlkXIgrw6Hlln$DxH`d8HAaf7$lgS!FFIPonGN7owPAa zrv-4gAeT;a5Vk`yEVy)Ha%W&=@?hX%@<g&7mT4iS6UcT*S)>RZ+69FJL_`~0IxS>e z1ob>}=`<UA>BJPsz{(WFz|9m4wh>$D1hSEE>7)%BdI4?Bz$l$qag<I>(F~kSF<@&U zi38?QNLhqjMMFdonP3Te>14&g$hZ`qgAt_@E7sD9DHUuhDB#dbrzH%GjLWbl?>Ugt z2_t#ufX#yV09*224tExE=`<TXmz02wfj9}ZbOJeP1y)1mpc_()*N~Oi8q1(DBlOa# zje(5`(%^)63%PW{)>sCOIY1hJs~8wTJItWz54o{C7h7YQsgHq^3DOpY*o4|xUJGh_ zfwmk%%|mXz%*EYUW}1c+3|PyD^^6;!Mj|(s=Rz9G^Uy<e9+Gje7-nSL$XE$Y>WJjV z22Seejb*0gNCu!*hMV9C8QNI3W?*F8jHR*622RKrCU3xPG6N&y7HriKXmk)g!gnyR zG3^8!1&Ida2**|(fySpG5x$jy5w!mk8k)$}(R?h`5oGuolE@L&(RQrW(E=>h(Mhly z(e>|O+zGWGxjLE;sg6|9WAhT&42VBru?Z{QK#k>HSgRwDZ*Wydx4<SsT!l5c?PlBq zbs(1NXaS@;nvbXukgKCd48ly086=pVfbGCm9lgO*9qD3LM|<IJL9UJ#AZ$mjj$SaZ zGQDKrVtR#SJFJw3R7W7&A(anib)*Zfj`lHvM#DfucgWSzd>qx$Ck9rg&kWp5U%)nE ztByc6!r}{eV_6qm9UZ{ZSY`+3QOw3N(;o&-roUioA&CR#QAp*3SsfuV!9jQ~hBlUM z7#JB3!HaA}`M?g&#psP?X5^MBYWZ-Gfsyer*5thaQXQcuZ)RR3A7D$~N8rvvu8!uT z<q~F5urZJ{janUnoOBecAq&tAfedTnGUOPx(g`$afmS*(t1+-KtApJGi5NnqlODXW ze4K%i@dVb=Wg%wi#H<Il1L9mn>2wmS{zaIj6SFy1{ihgDLo+{e>9i11I%%N?nFH7i zh(EDK-x;i>6Ua9>N+)Iyu!#^~VJ)4`GM<Av5KHN_2vRyNM3fImr4w@igD`U-g9LLB z*bZ!^(|bInlOAU2bRO;&<kD#o!gi$6i8+jcl{uV&i#Y<xc37r`lujVqag|Pb;L_;= z<3*_FkxQqA*h?qo1O`^-L<Vl=B(ROxN+*zwgi9wqaOrdjOX<XcqjX}<V&G)X23reB z959dKDxDCS;4*sYWXr(Fcm<w=5v3Cc_R<NtWr|ulU1nfpyoxn>FM^a#7|FXD$p_ey z_cge)kV~h9=((gBYz!n#qn1t}Ctb&C$Rcz@dhi-@1KwB;f)4p|XlaAzQqha2sSNDQ zkQOH-W?)4JXfY0YYng+wfDz;~NaN`y10(1t1ZV<8ZY?jy)>>ws%fQJDX^cW_LTxSI z0k@X#Vl5yR<8Cc8FGUImtOdk9#`{nwBDa<oLt4vA(1Ud?l5wyoW@LN-Z!MdE@*QYN zgcc|?v5YM<Z$mNx=0!+=J%lG^Xmi<)fsyeMyt#~OG?u|-=KZ*hW?%%J4+8Zl$^=L^ zD8?b9=it#B=Hm>k%qPGmLE-^*0t8f`FoF&o!5Ea<!qAN#T9?7bprmBDAEEOc_6&@S z&*60?a%#lVlxM!pz|MRJY$(KS$f*&%DbK;!$Y=nsEMG7%f(}Q4h5&L?ekqp9@-f&B zh{IuaFfzWvT3If`Qdz#is{b`3sCfr!EFxEyOCgn|DSF_21)Bl!CoHMK3SUrD{w>zL z0P+p4$`aE4gZK(-UU<g{D&av6#8O!<gH)DF5!Dq^Wy!+IAk4zXAi=^8b~U!j@)MrQ z(g3rv`~Y_ga%H&;VLMV~$->RR%EH6I#R6#`LTrcCA&|-vWIL|P(g2ic89y?D)POvX zTv;x~URkn;GO)6UF>tepgZ+!GvILn1i!a<wc>@M!21d{s8_@1{7<Am5M+>x=rTqW{ zW?P;`o`H)+0c<a7>fpi{_=boea={mP_Jg+N9T*rHzrt%2q#}kLYjw$@3APrJgiuSb zFAR)~->@d|WsvF;J%O_rfXzbn0xZBl3H&?UU7$(@G$9C@@?VOUPgpF##z35eT3v#i z^aHCQ%g_yR#A65x<4^c1kZ4eJF)%QImIq`UXAsxg&9FRjJHralLN6_?Eesjk7*>J` zR7m0!0<A1y@nK+R@nsNV@neu?2|%((1~M@N@)*ceX$D5dUyQ$@B~%Cl6G$@y2WUmq zDm$dM2Dp@F31?tqfiw*vX%ALPf$HTypxJNm8o<Ad2@FgOYz$0{{}_`%vpJ0anHZop zI504RW~>;PSk|Df!eL1OI}(zMU~6d@7?>Dg<}xut%w+_f*#fBt7-Jb&K#M>aR)ZFW z&RNDVTU%!v!)h}YodXP#+Zd#`F|4ry#opQj43^B>7}jlLSZ~D!TK>FYCWDzSh_Mm6 z<V2Ef8$&%rmlR~l30QU;!=`Nvn|Cs70j)u2um*{3oylMf*18R^)@|Duwr^wD0nw_v zL2DbsS}o90>z$x904c)2Yui}T88}!n8TeVU8KhZq7_?dP7>rr+8PZq^81h&O8RoGR zGb~^!2M3J@13QB>Lo35eCeWG|ZH7`N7KZZ-Yz+Ji6Tzz?KnuWDLt>YKfnhZ~;8sHe z4kQLziins51B)<<GBATvg8&2bKZZ0$b|zMK23PYRuu6=Hje&)Uorwby<P0$kjNl{! zi9kq-15bdnKxXJ62?JjQf+7{&9ZZbEAa_6}kC-?a7(vJJKx}06g+}shXe4)Ii)8fZ zHI!uC#y~iBb+<9>3SSOc6TfvPgC0m1;fU4U#;`jaDN^^KM`}9*2TLadKT9`*G)oVI zDoY=OE=xZ{G|NPWWR^(`eJoQMCa}yziqukQq^dGx!y~m39;vh8kvbb5sk7mcIvc#I z6gg67Gm0>ZAxCO7G*XQak;=os!o<tO2MJ<4k-7-%O5!3Fw7M199ZV2+KqHl(ff01P z60{sZ6t3GD_JV>B(inuKq-9`BQ43c_CLws!12i}eO0pOW@>n3t6CgTaX^@dgm`Ma$ z(cOl2JTkSmG3*1ayUN<cuzx87Xdz7&NN5|wfn^LFT3Z-OHfU{O$ehW*yPM%)q|l-5 z42Sn?v4GapYHepYvX!9(qWI`c20<+d^T1YytmO<`TALX5Z)M1WEY$-U!@vMtu4cr* z!@$6@je(VAJA*9C4hAKbT@0EmyBUmG_A*$o>|=0X+0Wp`a)2R%<uF4$%Q1!&7Rb_E zNL7^yO#`e9DNLeFV$gL)JPfRV7-ZR*#90JX*r4Go0j_PO8JL(rWxG!*lN^&glM(|H zlX5YW3X^IvlNtjP=+r4l)H4c!i)sdj3@sn+V+=yt2N^79F>q^dV>srs{Qn2gN+@5Q zZ4Aeui>du|wlHL9?PNH?#4wY=49baPVmQEX61))rw2~US6+i;C*d4qVAlr&nl2vyb z!>Q%}pXh?(8dCo0ffl*4oMvERIm5uqa+X1q<vfEF%LN8GmWvE(ESDIJSuQigvRq+E zX1U6c#&R8;CQKMu8DbgOm^2s@z>82bpuxh#kOo<P#URDt$E3;dm4S&tjlqdYi{Tyv zB1u9-?nASN1Ov+-1}1ifY@vS)hM<+`pas{=zZm3T0V&`JI(!Wy!ER$X4e|t1f@P2b zI}VcUpsfJ`N5(iNK`fflR}bRQ9L*#Mi6NAwhi8be865x6MTY{8jFDJf(Mp6t0*;`A z_OQ63j0nw$6`^2bK=Y`eRxTpnZ(|_M7zSo&yy!6Lf|?FYdJMP0i&r@qZZe58++yHi zG-mqDXrji+n8Wm$(N~R=v6|^KV~rXo;{>M9j1$#3nIxG$GfAm&GRZJ~W|DP~WKv-I J%%rHs2>`H>Hs}BV diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationOb.class deleted file mode 100644 index 0354176d216a6f682343d291ca9c3d1235c2adee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3155 zcmX^0Z`VEs1_l#`a4rUJ23HW_1|r-+ga<o=Cy4gqVqj(P1`$3W!WTsNu`~FyGXyX) zu-RnhWtP}6GB9gshA}d*IOnINGBWV{Wag#%mF6a;7KJ1x<)kt)2>IkEC+37D7G;9? zP(hZGjLc$223?<&RQ;0Dl%mw)l+--^%)B)H;u8J*g4Ddkf=vCy;u3xTg4CkKlFa-( z|0HWh240YrD$W_1IVnY{d5jF)d8N4s9<zp~CnE!2ZepcJVp(cXYI#v+Nh;WVQH%_H zX*s3E8IC0-Mb3%I8L5m6B47dM{G6QBWRL|=Vb<iF{Jc~~27L`p5*^2q2Mz%)*NWuS z0+5Nt><od73>;~tIXTYx1(l2pTrQ~vMXAY&C8;Tl43a^mc_o>-sbQJLnMpaRj(K_c zC19TxGct(zWF?j*>gOcprRyW~STiyRmlUO@f(-M^4=GB_D^ANV%4KBWfQd3P@MY$u zr4|Jx=B4E4h8E>8GK6a&nH5}8l$n=qO^U~|Qj<%pH8IU#X9#9w-~@$dW>P6An0Y+& z@=}YOa}tY-Q;QiHYzbQ87#!l4pMvCZ6}V~Ej0`N<nRzMf3?YmREZ&)UDU1vjWEcq2 zY0b#M931J#&JfDTz!sceT9lm1$Y4c=VGzC6j0|jv#RaL!C5#N5o_T4($r-7+iHr<f zDXGahiAAX?jwOr?p{`ajNuXqwlV7A;l95`RSsW9bnI4i_T!JpHo0V8xl9-YbQ(TlB zlbe{C7XuT38?KjCl$dU1Y|O|Yn4X#k$`7eX5u8Si2!_OOX-Q^|zHedyw)kdb;0(@8 z&r2*RElOo%SVetHZ3sq5P-<~OeqM2^e-b!RLfj0_BhYkhhuz^~kkATBEi6qfE^&th zVSW)KLlQNj3A^EtII}coWZ*1<6htBUj11aD6e`ecVa>?Em7JIdFU3SOkTW4P2pAbM z35FWfJi@^XRcLKzjTExZpwbXjaD&_f$pLPepkiGBsbtmzl~z0qybOFi43Z#13PeaV z*fTO{lTg6(FxWBJ^Dw9~$nY?zfCvQ;A<ZDe$e>Qh7^veJ8H7P@fs~wZw=*)Rpo#kB zmjss<6yz6`q^7{jYj%b(Mh0slZ9<gSh+>P8!Hjg>pfZY)!Gd&+kl0{kFeF(kiy{Ln z12+RB0}lfOgD?XlDCQU#8Tc6(7>pSh85kKD7+AHoGcaysU|?Wk5MW?n;9_86U|^7E zU|~>T5M*Fr;DIP&5MmH!U|?Wm5Mkhh8lVm4Gazeb11r`<(#Qza$ig7XAO_W_1GSln zc@5lJh)z8uolH=jj11xo5(IUcV$~@LcPz4Rnb3V}&A`H7gJb|J+-fPT1~8)=;K;zj z;DprxX$BbvCUAH=F))IImP>0p1IqyhRv+yRaNk1$-JOAh!2@iH7(^x185|5u46@+Z zlVf0DU}0cnkY{0JPym~($N&OL3=9mQ5L9MhU}0oXVUPjSs!&>uL7jn-0i;Hnfr&wz zfssKcl|i4ufWer7iNU0p!IZ(Qn8BQdk->t&l7WfA3hXRvJQ{338f+ODLAe+jGy2dt z1*Il7gvUURVqho-dkQ@zIS>)8)kr#_2|~b;L6yNC!`f{O?C91?A!&w2semJc3RcY= z#A#Mwu!lw`!o%AbIEl~<4o*;TC^Ik!I5J3MHHeECgW!n(Y>Xoo_mE}`12Z(rofw?K nQSZW_#lXNI#lXy<!4Sltsm95m%Miq%=OD>o$PmO}q{ayVnswW` diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationObject.class index 65701bdb3c6e361e6703386d5801c88a6f993c5f..de1146e7e4209d41934b9ee18432ce9695710500 100644 GIT binary patch literal 39513 zcmX^0Z`VEs1_l%6&+JV8Tnvm%0bC53Oo1RGh>KwzQ!qCpKT`;Z2xVsq<6_`o3J0l* z04a#%V#sHT0&$~3+!zom7Q~7J5%F9M*O(GOVu>Jb5{Q)yVx@qHRCcB`E(QsvbdYcc zNF)<PWN|UvV#)@I<$$=k>`ZxF3<?lO<+C#ta4{$|6@rK&E~a9p5^hETrc#jVGLY(W z5K+O-RLRAl4N|4eRK>+q%~S(YPz#c)1F`BstOj<bMlJ?prY4X`Gf1QbM6|LqwQ(_6 zFtvk(J3u0xAfk(%shf+z7G$O^Qx8b4my4;7sh^8!0@Flxrb%23&LAf`Gfn1TngR-x zsUTt+2h(&AJ%fu;k!dCu(=4Xh>`ZgmndWja_%Q{rGtJ{-2w<Ae!L$IxU&zJa%QO+h zTExYW&a@arEaG5V0y1DJh*$<9mV<~DASbP4XIjO<w3>?{j%f`S(^{r=APwu;nKp1S zBr|OUS+<FbX*1IncBZW$<=fbqwu9&ZkmGlNSUW+iUEEB&nS$Aw_JATb07UEs$?XHl zMS@uSL97@M>i~##5EQ3}K-|M1?hz2{D2R28o#{9zI!}N^PJ%>EfnxGBh<gUaJqwDe zbKFelnSw#w3tUVWnJ$4M@-j%t6_D6f5OIx*={nO5Pz2rtN!$X7-DYRH1B$G>Ad!0@ zk^AgS4?yws5G3*lB=Q(!{u59nJq3w91Et;PTud*RUV>P!*qL5)G0bCn1B$jqAmO*H z3=qJ@&Ge4xy$}Nf(^nw|My8)a3`|UaL1O<vVf~+r=>;<b7sDE+0Cr|ZPKHcoCU$0K zkddH#!py?X%*w^E5fu5E%xqi?Yna(V1P6%V<YLHV<^pNq=3?ey=4EH*V`t`PXBOaK z7UW{s!?Xq@F9aflLCQry&VB`AiGm0*kVbJ3Aps&JL4*{DkOt|H0THrX4C|QXK!iMq zU;&9KfLIC~%!(k65*NcpW)_h9o`Z;2?99p_VHFUe3L@0lnbkqG28hrE5n3QZ8${@U z2wf1N2O{)AgaL>!1Ub(L#4-jEChW|nj10mh`Pr#?!6ikRdFk=NrMbC@MU{*ULOxlE zWr_MZiFxVz5IJi`261GiE~&-IMVSR9nfZBWGX4drMTsDBPZvf8Ij|n5{QR8M#JqTy z)Pkba<iwKH6sQOzgD{d!P(f=(22m7kL8*nMnMJ87j0^(F`MCx8#i?*R7#XrPd{R>N zOG;CUQj1ek^Yk<G()5c<^z#c+^AZa(^%ILr^x>-gld@8iOROPQmX>7Z==&xXSZn&^ z7p22Am}Kb}Bo-B?7U}2ar=;fSml-3pTQf4SIOnINGBWV{Wag#%mF6a;7KJ1x<)nf_ zEI&ChCoHij6U2uKGL|qhs1kHuNMgD*BLiarBZDqMwE>AmiMgpIsYU)t){G4L1l0$n z78m5_6{m)j7UZN_Gcs@&K?Qsh3qalgM>9Mmh%wPQF()S}F*zG%B4;vGpqP<?v6zv; znxLD4Q<F=JGD|9<(VCl@R|1U~Mg~11bQhI@ybq2^Mh3=IMh0zynp`VNQuB&4^Yg43 z8F*4*97q`C!_q6n5sVCm1dT&aP>c-BxuEdmgqy|4KuW3-^Fc{Gl?AEL1mumHRBa$! z<ZMYG?ZV>U+RmDhfnw8OaSt}l6yg|I;=$%NaOwiP7815#eLlGLK~)h9f5+euzx<R` zuyMS>C5g$|zKI3kAY*4XV`nyJWZ(?WOwUU!DJ@E6WLQCI34!c2(w#_3Lf|hi$}CBB z$xH^7pWu?%p0MMClQU9t6aAB*<r+A=p@p_)7$XCFW?q_KVs0uinJb_Ol!8ktJxfw^ ztr;0u%Mx=+QyCdpN-{Ew85!7$!8S26Xc3GdxSJRmSU^P%BLf#iGsGoqxrqe@sYRd? zFF8L~KP|DiB(<m_H%C7!F*&<9KTkg;u_Q4mGcQFS65hUG<<^W093aC$aSzI11hje; z=jVZxTC+1-FfwqtRwSo_>#JgRW=lo}3ACUN&n(GsEGkN@1Qmh=OwP+sN!14{2Aj{w zz*<n0Ur@}*AcB;(Jxf6KV1AJ`BZEB_VH+O;mcX44%DQ~uN(o->FfvTgAdvInYOT=} zCg&HWLMu0aM^EScypq%kEOjEOl`10xb4g-4C|dB>rtlifnvsDyJGGLL!5GbfV6P(8 zzgX%EYeoh&g1SKUgf$}rdosj}psE<vY1l)8o!N?!;Veyqm(l`-^tcg8Pt5}*$JC(2 zyp;T0Nb$hP5UhceG9glg>u;~b;u6P{6rarE5^GI}e&jL-l;acgQb0{2aQP3eAfRS5 zGO*+)Wfg<+Jt03J+rr2YL9oO@Qg1_0v1?vwu76S%xB{u8Fbqhs4Qp@-qQ;G9UI`<E z1{OzodScbio|~DMnOmC6$iV2y$iSYPSOMX&*<|Krme?^eFl&IS0bUSK#W^E0C#5Jg zkCE{S;fe(*NU_u{m@!W<*!>G&1r2h7A*c<-9fZ;i*bYL9NHP&cF*r$sT@UN6P}lj? zv<wvOOa%sv3`_-vAi@Yl7=y||Lg51nM37<=5Mc@;%s_-Wh_C<=mW&L{1%?J-(hy7< zfk|UVh7eK$gmC5o^^QO_U=%@P{R>J68wctM6y+u6xa228nik+PAcmmfNby405_lcw zp9D5OjG*yExgFGDN-ZvN%1^0;8XQN^V3OPo>n%X~cA!wFvIVdX1j2$W>iPgnTLCGW zW2tQ!sEL7OKH)S<QgndQDx}wHXU)hwhol0Va3Y0dEG(rsqKJbu69~5mh)TU6-=OC_ zEVdIWnn(&k)Qm_l_KETbdM+erDoHLz&w|u79X<acg+Dpf8R0~RFF#V(Yr&}~nUUr` z10`oz<^)x=l0l_;C7HRYVVT95Nja&Gd3pII;9<~Wc4iw!25#s4yyB9g(&Uo-B1Q%t z&%C_UBIlgM;^Nd|Q2&rns)vqvAWT(3G7mH^nFsFSGlzh>VC?X5TyB(MT0xMTQL-Q- z12?>%2pX>CM#?aZ47?~w9n41>O=M)?MM+MK41!q3cO`MA07eEL<Tztw-~d?%8Rz8$ zxfC3_puvaAf>cHZ0px5Hl9+DC$iN0EpBNd$Kp7XL1;ulAj0_UUnvncv$H*WA(gU&) zUZdJEGDsn-N6Culk|<ucV`N~5<{w4|HDohz`reL_K@wFVBKg`eGKe9|fqVuI3_C^! zmh4PW---p)`(k8Z4FQebGcqvy7nCqEaOaig!W;OYX1^yR17B`prAJ~}YEUY8yaU`D zh+<^mOUo%O&TuR#DRNFs&PZis5CID~=jY_4f(M_V!mP<T`FW{~48|Io1hXqVB|&RM zMg|tpKnWuQOLBfeC8)=as9Bsr#`@)#1eX>R<QJ8srocyMK!ZGKr8zmyU_D%jB*n-e zhLouh;?|%^jH1+3kOsf}kfOxA;<WstTt)`gWKd@ZG$KJ{?gEX%XMz%3QEDn914jwe zP(}uh%wiSS!qUVXMg|?iwJ<cVT5CpuM!ix?LK4#<v1LG5FH*EygGv>aoXp}9Muu>b zbP_I>A$32<0?zc*62H=1aJeA@XQPB8TRPYepiZeL;Zy)JnvsDmBe584CR<`k3Yeim z*b5-7AU6p@^q@MT80rX3;>_^`8N>x~IVAM;iAci8!OzGLMw$*{gPon(mXU!I<S1}v zWn{1=n6;ou3aR*qYX{AiA-staW`YoL6ft&)STQ4m5R`=?%~hOQ0<S$pp@R_M?k=RP z1t&^Su)-CIXkZzYU}v^tWUwT|Tj27{nvsF8IJE?&?&3>F6A&*>EddpbC`CTF7$hR4 zf%><g1j3vTDmP;ZCn->6LC`xG&at)whnEO8r!q2_5w;f7M3AeE$#4lHgGfeVF@|}J z44_PpMc9;xw2z?;G)bI}D_YcvFcB0lj0`cvsU)1=Fdb-T&CYDk$iU%WPy)?-giXQB zd@$YCj0{RR{EL#SK&csCJA&F-pwx^aAXJ=Mg48|%<!(lXc)|$;slX!a5hM$sDHBve z_?6}&NiZ_VKxzRbF;u^#qqvlj!9atES^>#4Q0~r1EJhMxWZ+9oNkI`HqN+qv56)$h zsAix#8Z~$s84L*rEwcIG+5}W!A_+p`D2|A<N<kzsGRUHaH^^2LuSufHqsZ~2$`vy* zNTG?KC>JhHEkS7!gNxHh!a+q;>4;)7H2n#n+sMdZMA$l1lRzaRF$*CIOW`ejYeoiv zjKpFTa~K%}($TyRN+yIGJSe7s8l&jOfI~5Yh;%|$Ffua8VX+V;UP1K_N@oU?h!`0X z35PUEDHp{GXaoyG3KJA5h>QJ7b5TT5Tnvc{l+LCRF~tmuiSSrPF-IUVB?Uzpkx358 z5O8rLjcyLA2fzs%Ne`$CMX=gNahEl?&;eD?D8i7qOCTaSQ51QM4D#S)h2#a0%_yFf zMpuC%3#waCTwV;RTTsPNw15&SO2-;xCG`_3iWR5{6-5f3P*FrtTntL6D6*i`L_~dv zq6eB#QN$P-KnWF1h={TgMF%{gqKKk;pg6SzMV6?9ilPINP*H>-aYyxpied+Nb_JAB zQA9yDqj(aOP*GH%$bu3oiYzptqKctt0VPz#2n2lSM+~{c1Qi9x0Vo$^Q7?+pcY<kP zWKaP0!f>sU1Nn}TA(zU9H_m}7X#M~NvR`Q~PGyV?T9Be1rwWt+1T`{os$^uaBc`y& zso$EBK_(-y7^gfVgG^#d3La@Y!hwrZH#ol4@tKbr5cr~+k%5@yU$_zqBws3|r<UM! zEF>-EP`fh0X&*ShY7=r1N&u<jQ;nh$)KbQ2b1@@>20oLDQH%n$gpmiQA>oujI9ZTX z=OWtx&1RrJ1~{7`MuQ<;05m}q*Mge)$Yz1stwhv8$Xcu!8Ti3j2H9SIa4JR?A)?!a zVk)R@E`??as?)*AAK3~b>NpfDz^x=uGZR@95?}GuPuB>Sf|D|+>5XnLivK|UEo22K zlAy)|vScwM1E{7#5kk?x4Q^G!7Q=Icn_n;<s4E2;?*LB}K>Sa{xE4w26>dB<v4YZ_ zUuiB}7}C8&7C~`64|J#m>_SEcJz~muxY?kE+t2|lsD7TrloYr$$T)({Yq)A~87+>i zAJw7I@j9qQ`h>GR!enrA1Vt=d2oe{>jA@Y_8IW{?Vk3%&#F0ZDMTQqyrkIgI0)>yF zl(Psjg%py{$e>L`&Vmk`Su-+lB`4;==buo=i{Vp6nFM1GY98TXE~r9lJLE-c;0Y(t z)(nt)g7Zs@l2hF>K^r$j;Nx%*x9EW;sTdj5QJ0FMuStb#;$d`TbmC#0!`RHjxQ=l- z53>WaBM-9^V=E7{Gm|$XgEFDHr;x;S9>#f$n|T-)GQ03FZerZb!|ck~%EPz;#N7^( z*al+l2Z<eEJjlcB#_Z0+?7{5G!*~j$*b5|k7G(cz#^sC*+Jr1b8p7gX_Gb3sVfJPA z<6(RRGXF8-6CP%N<^Ue%K;|GG##fBZj0}RH0MQ4p;`B%?&hSkv;9>j$vPqYaO(;D* z9_C<>YeSer*_p$5n8TSPc$g!Zqj;F3nPYeu|1dW5FmVxODoV4QhdGuxj-5H4hdF^c zk%u{nIfjRckBOg$Ihi?yhe-ispd}$^;%qbUFsCx7@i3<|XYeqofE;K9GEaxFd5Btq zhdGlui-$RzIfsYI0%U|6$OuhBM!>T&4|6V)HxF|jb3QwB0S|K_a}hgpF%NSI<7P$% zZ2}9(A?X>ibe@N~l(~$Nfl-f#xtzIzhq;ouijjdIvPwTFH7&I$H7_}phq;=$hKIS9 zxsIK=o`<;s<Wz#bMcy*N$RG|*EJzbZPNkVSDWH}9`h@(9;h08{CmHp5n46fJd6-*3 zsizg}2_+upHs*F7<_-|i$=D3?P8SbzH**gogCQYnJoD00i;7Ya!_ABgjP{^hypf%` zmxsBJxu1u50?1}v0>KNK+eT~x;9;H!%J`F*C$lq8;bET2JdKe-oq!3j75+So!i*w} z3<N_6Ug$t#mWO#d6F(0V4-+pB<2vRU?94M683fS7pNDY?<3=9Fg^Y`M7&m}e+ZZ?U zFwbJ1&BHv0c`gs*9>%>q%;4hZBuHXD^9+JzAG`qJVP3$zkcaUS<7FP^Ma+wNn3pgw z<zc+f_<)Cb8S`=;<`v8<*_l`IFt27_!_K^xhj|_IdLBkc<_$cI?-@VvFmD8@*~Gk= zop}on^H%0<Ai3>4OpHuSJj^>l?l8n(24l&$Jj^?pckwWZGfD6;?*<v6LdXbER^?&d z!@QS=Ns~#7hsh1(s8;5EAjj<IVX|ei<6%C)*v!s+kcasY^I;z5Bg{t`8Po}-GUx(x z9_C}9?0cN~1UvId9_CZbrx_UpobvNaic5+T3w%>cGV)W3`PrDy2rzl`b1?V|FrVdN zZe>0vz<i#cmHC1I^F<!!OU#!An6L1&GG7&7z6Ro6=V89Ve3OUy7IPI3^C3_XP0%^e zDv^izHZva)RRmH)gopVK^IamUG5>-R9wrk|Qfvd&hwUJugUOSJv4gRbhxs1kBz9&# z9>xw(m8ca>Y+Y~7$e@Bq(BLW@>zWZp27ZJx*P<fO5-WKyZKVKSz@m_sU!qV9TWg|_ zmS3d6!#IJllZUYzL`(oVbSj9L#yFja;U&W>9){N-;thy+%kYke;XT7U9>!&i%Xt{r zfNJ^spi<`n^FtoyN1*h;z{7Zm@h}mk52#>AnX%?!ybdz-CWv?nGJ=R&6=^1ehw%$Y z=QqaXJWOmLf&)azfCxDdp$8%iK!g*BZ~+k>AdgN3`MZ~~laWCf5p>`X1~rlx8HB*1 z;94KHk%^Ik7a<7VJE=h^8$il*|0EP!;7ffN8FWyyCwN0nDr}#YzDsIyeo87_IXm-X zMh06#Rzj0H(ozYem2!*>)}-qPHQ=F>#pa~z2CryfWUwM#Cv27(wEhUXmyD4?3^rtl z5;dT0P8o^CeyJ5DpjB63$`*Mr61IASz@{m94FfVTv)DDaprn$KK^VI08Y%G>Gcptq z*DXRx?a&rE*zLq@y+*bXG(-XIm_f}f1}}_4O+x4mbrcgw*@}reXOFb^9A5n~GNcm@ z0=Q~_*#1nSJrCCk>iZ&3ZZk535Za!G&`XM+g`g3QG^I(@274s+q<a%dGiYf5bch2w zR|{H%MIg;0>nFvtpk-~|p#6uSJ}|7S0xGKXi0IrR)LSz$Xc5ZW2-S=X{O~Y_Osz38 zq!La=2m?sXK`@=5-IfKVC5#Lf$i)JrAqh1T+-ir4Ag}3y3NbS9fa3<@>|#a+E2v3C zCuro-1r+G8o*c1(j!;ibpd(Zx0v#qsRG`BYlb)nuIzbs1X@0Gkk%1Syt_^ky256!K zX-z9^0*I7UECo$YSQ^8O4E2Ol78ZTb_=Y%)=*Y!lkToNN7<lj(<Gcq(hB!hc7&h}r z2^d~@z<`?gL`69Az$-LQkl=lgHP(y_oM0b=IE)N|ggpsTNYV);9O<bgVUTV4pu_~K z-@xOPpcS1M88Qr|M+k{nMh1`(;JpWo48pMH1UU191wr*JxSfX(Vq^d<8-;A$=O{`| zObG$6kjCD^AhOd7I*cSIvAD!DFD13YKaG(A>uOU^Mh4E}(xhVW`7|Ik*!RG)rGi#x z7lRZ)k}cTn5dVVLVe>#vAApE})~pd;*8^+2LJt}tI1qxY9<rDSd1wT5d;)m9K8=xq z4Ro3TXcfOMG{V5Hg*VX<fe#Ua4xxY+#+T$ngcuo^(^E@8%gaj=i%N<?XBVLP9ik5G zcaGG&6sQumoYcJZk_=EY631?0mZJRp63_$^;Q;b4NX>H$@Pve^H6sJTo(qZwMh20@ zloTwZF+?nj#n1&F(B}jlWB|<?9H}{}po3+K85uxpEkWm56hk72k%5?n;7A&*iRdsR zDQ9E=&C5XS0#$4}M6@Pgs;wCrK=mSGr2r#?5G;d&OCnHL1k^|ZClR;^BLiqA22>It z8pfbT3<)h`Mg~D}%Nf;>0z%~%vU1E4lTfn=NjE$Zfnp2ZPVh{D1PHt}3yMy#JK-XX z3_XM#30F&_lQ7`sgU@6Fc>t+N%E+LrL8#h7QVv=Q1oj}37!ikkAgQL2Cy{IbdlNL7 z2WwjvGcpLGBvVk=j*)>aJGC+xR7#;r2B(&Q(m5gtgVlgC4a_`71{<seBmVRZ({0Vj zphqa>!PG*M9U}uTG|VAwTSkU1LTL(S0L?-h;u3IBJ7Nh8f+J`!2l^+0%SKRi!CIxo zkRl4kB`>sLx`_#Gm|E1(hKUjp+AyUw3T>G2<cBtr37{npp!rrT?N`wJDmbBGkpnl@ z@h5OBx=1f`u^0l07SOyXc!3P4MG8tHP?v(Z;MOxC$AJ`*;~tPcxD(Wn(>hcXYhP3y zSs}EsgQe*g21)CF(2bF><}kSGgq%sk$iSYLT2TT%b%jO4Q_~aLK8EZa)FEb(0(8g` z)c6NYpM%eqVPs&*%quBoWKht6x3s{v7MB#ICg$pU=9L74S=NjUQi!q;U6zr7H77GS zvxJdBUc(C-5ZI03Vt&H>l#xLiRuCh#DG?1wd6+ENjI`1`@Lo@S&@RlJ%v8`(RVYgs zp%LJz8OFun$NY?uK^8OAVTOYjKCmSwgAUnZWKhL!k$+N_XI=?tK(;g&Y#mB8LaoCV zjUfA<GcuUswjW6sBsstw2Fj3%*q!5)iR2XaWXR@MMuuXjEjR)RViT$)n#ZsyL9z@Q zk>DtTdYX}e9emgts3*h$-na@nrH6q7G<*O_in@e5^RR>niHm~7qEygXLSm4GncyL8 zlocHui76>yQPQ@xhA}dL)?0yfqL@c;?iK1j#MnGL^9vs4m&|W?nBOwL15Nb4XJk+U z=LT@tWagFSXQ%4>B<3ciB>JY7B&H>T_Rm)`GH~Z2c<js{85!7o^7FGx3m6&BKqC*? z0LVm}M`B(|PHM3VL?yJS0xN?g7-SKs%@B<tl?AEfNkXi|uNOHnK&=H;C&8H|paVPk zA$>*Av7-U`nV{&D0ToGzFoL)pme|3ow-J)g8Hq)~sfDGW*?lZ$b-{G8Gk;=aP(^5i zIs@W+h#z3V#>gOtUmb%YLngx-21bS#46F<+pt&>#1_l<;bQ+j`!|)1Bzh!s_rr(3< z9tKW^4-6j}m>51WFt9K(urjbQFfi%vW?+om&cNiWwT*#!CWDUFHU^e$46J^-I~mv* z8D=s_>+WP=XJk0Qz+uIrBgwLjfpZ%JSNQV(kF>TiaBpManZ>{Z(!;%tfj3-h8v`Fg zh;JJMKS)SmCW8P-iJ<ll2BB>X!XPmbgffwB45A<*v6&3|TH6@Jku8^lSuO##T#`k5 z8-wIF2C4An|L<#UW00Q7AObR3Mr#{`jP^DL*=-DRAfx1GGWhOhP>9^lpy;QyjX`M} z1FIE_Bn#9>Iv^I<OUhQPx{|Eh7*s%nDwxpT#-O&7L7kZ)eEI(iI=b5!G(ZMwq8g}$ z%Rp_YfjS_wz((t8Z)4CyF;E|5pusUnuo-M)Fa+_9jxp$JZDTM(_Ph+t^TuG$Ywut% z*~VZRzWo0~t!)fuGr=0nv1+h@X|UYJU<K7+J(Iy1DNJloy`T&a6I-Yk>_A?yhq?SF zC@36sHh`1UX9fm_Wel1O3=GN)91N-q{0wRg+6?Lp77UsUP7GQM-VE9dp$s|<aSXZ) zsSJ7yMGX23H4Fv}tqg_?Jq$(+D;SI!b}*PS>}N1zxWHh}aGk+|;XZ>U!#@TqMrj6X zMnwi&Mhyl#Mgs<WMt=qe#vBGm#v%r1#!3bk#wG?=#!dz|#-$AIjGGxe8Fw*wF<xWv zW_-fn%lMkXkMT2uKa&tc0FxR+Ad@yj2*Vc!28I>}UIuLjE{3lR-xydJRxt1~d}sK< zz{2p4L5krk!%qfQhWiXo48ItDGcYsygT?+ZureAjI5GSMi!Ei~X86bOpMiz(8i>Wn zz`(*J#30DX$jHRN%J`YVf{_`d4wRV~Ss1}bXEW(CvN8N-U}WH6Qe|Xk<X~W8<YZuA z&|+YL*u}`jzzng0k(+@TVg@4*12fnRHb!0sMn*mc28I|0@xKh>><o<TjQqbC6oiC? zh5j(`fjP=x8Absx$LJRWD@Y*{mmj835zatTq4|q}g;9`!fq{uph=CEbGzL;EFtaeQ zF>o<3FwWE7#^AV(!O3qogLC9|1{YBN(b>k}YQ?InE9AC~!JQ>x8-s_C=QakfnGBD# zw=sBcWAFi`DRxPAXg)g$VuACSuNB8`2EWMd4F1{&7y`C21VSmHAeceh7=k4^wlRck zV+h{H5NgFK$qMC$ZDR<xVv}SOirB^wIg>#a!it*7AS}toBFVOmA(|y+8$--;23AQn zD>kid46(Zz;v%88Npfyu2o{P58O{bVc{@YGHikrWWl)>3s9gTvcsauqtlq0b_8yho zi{cQZAV@-X{qp~H8yOfFm>EF%(2W5Ui_r`m3^5FX46zK73<(Un42cZ>3`q=i49N_= z3@Hp-8PXW;Fr+iGF=R0EFk~_6F=R8^GUPC(GUPGNV#sHl%TNT)Cj|`L40Q}0jG_#$ z7&saH8MZTgXB1=LVCZG2VH9V0#lXg>$B+XNW3**RfQW(83Zn!h)icgxlw_1*U<8Xv zGrVG8V&Gt$#wf$^ih-Fykg=ChmQjv@g+Y?Bl~JBifq@mA#wRgw{%5dc;9zISWM@=l zXUGR5XLg2k26je%28RC(<qTYyk|0%#{Ok<A><sw~436v!`TrS08Q3rtGB7axW#9&x z^`F6mffG{!+$4xGKNu_-mB8g3Bcn0{BclqV2qbSX++<(|RhbM<&^+O%3(64(7?MGm zV;e(?6{{pGH0>*DLDEd>Hik5iAUGSOZ(|7G#*nf6|7}qGv4G=G3T$Ep0|!GTgAhX% zgCs)@gEB)cgCj#dI8N-q@=mZ2W^jUqFoP2#G=v$fz~RcwAjDw6D9@-03SkCKMm0ut z23ByX!^6PHAPE-HfQC6g1JgeSNp=Qjc7|kjMt*f94|6hVGHNj}gW3qphZ)!z*clj@ z^mj94Ms8=w^3&SJkbR7S8&p+gZ)3>O+QyK3jKLN}?PSPfWB`Q&GypW<6-vGp>uv^) z$n6XTpnMFfRSI=M8MkQp|0`PC7>c3h6>noG(b~pP3gwn=V<^+w#!!BYfgfaBxy}xT zifs&)TH6?^pem}iF;r`9W2iaCU<9Jj9Uu#LKrOgN)7II+P`8bt9@27XIL06VGPeOF z+_;UQNoyNJ^Dzb&5Vez`g^^(=Lo14ZwBW|&Te0fyW>AilWYq$BrVV65`*wzoZ48~u z|6kJD#?S>Zr;8|av|;9SgUspK&d|G!p$}qC|1kzbt!)hb=suHyJ7ogcXF59=CT?Sx zwEX`At!)gGA(|%R)-(mCY3eqHX%J1*AugUyl#6XaF5bp49h9tRFfnXrn7NH%*7E<C zbhLCKtp!~~D`6gkIs*ekD+32ZI|DyM2ZK06CxaYA7lS=RH-iU54}(8LFGDCpA43Gg z1crEqi45rslNj<CCNq>VOkt>Hn99(}FpXgX!*qrj3^N$!Gt6W-z%Yy99K#%js|<4) z9x=>gc*!uIk)L4!qZY#=Mni_hjNuGR7>gK|F;+4xXPm{bf^j*+D#mpTs~OKTtYN&v zu#WLD!+Iu8h7C+A44avB8Mc6PSQP^gg9igIqc+1g1~vwJ1~G=O46hhi84fUTGkj;% zVPIwCXOLjj1&J|+!&$Q!xETI1>M^h~o(Hq^8CaP(VX~ks1FrQ!6|6p^0iz+POk~mr zw+WaSIGEJI?F7)384L`d+{plvW8`IE0+)zB3?hF(wSMLw20?K3uE)nG#0TRj3;$sd z0}C4<F(3++V2YIBQt+&81g-Cl85kK&7)_yN+Fk}0P^*K%LuVVq?3oObI@%z{HikLd z80H>en755#{x*gM8?*%y1**3(EEHi_w3A^8Gs7;1r3?(a7?y#E<qQlv8CI|`9ANO< z#t@2#dnE=A1_p-R4D1Yh7-SjtF(@(YXV73cz+l60kimuF5Q96zK5+OeK<tN?a2||i zjOL*5V(?(JV6=p`oWP+37O{ec5;Fs%EYwTZ42+C6jJ6Dnpi+xrDFZVD3j+g#l?>Ao z1`*kL3<BCRvI*N5=E$V%U|6{UB+9G3jbW8c0*EU+kAX*9b{oSS5C<d-qT$u69H{(b zILW}taEd{U;WUFZ!x;uuhO-Qs4Cfe(7|w$|0BY1RFj&DoU<LPp6{8)aJp&WSEsPF~ z_6*G6=w)SK7USb#U<7SyfI8Wjff4LuR;}#}t3j0m6S#8V0_(lXz`}41Y!f69SfMsC zGCDIlK@B*~zzjB^QcHkyFT<Lx3~RM^Gpvi;&aj?&8^Z>z-3%Kew=-;Ffv~~itPnO> zoDISTi?buKIgr=_$chAzRSAHUAsns8z|FwGaG!yb;Q@mv!$Sr|hDQv#438Ns8J;k> zGCXAnWO&99$MBpXo8bjR1;a}uk5$4w=E&#*se%}{F)%amGcYhDfkH-08|)h$P*tG| zsvsm;z+M8C!_``nY+yf0vV&bJ$pLnwBqzvqT9RC#>PnIu;tNS0hzBHjw=rzilH`N? z0Me#%Vh~_pVEDuUs-d|UzA*4Jd}R<}_{Jd3@SQ=C;Rk~T!%qf%hF=V348Iv{8U8Rh zGyG-nX86Yt%<!Kfl97QSk&zMXs~HfNLw&`-ki_W9XbFy{Bt|!I>j)&~4sIQRSRRa? z;DnpR=mjcmK)z=5X0!yi0FoGe7(Ky>F^SQa(Gr}uk{JCMEg3-liX=vVhIgQLJ3|s< z0HY;129g*987&!jz@`K-ykp=6vw|5d8Ti1hf*7bySH=*in>-jpq4s+-hQVzOhuazf zw>1)~H-Iq;ZdWwau3*L(20m!UjAe{tU|^Wcz{r@yz|5E&&A?a8m{QD`TFjVM%$Q!x zm{H7_S<IMK%$Qxwm{ZJ{Tg;eO%$Q%ySWwJZ$XEncUR=yr0!F1^vaFb~yqK|~n6a{$ zv8tG{x|p#B%&29o11qmDW^4eXMle}l%-C4WSPw=GU=pIBo`Hq2iLn`)dvu}Mk6D0o z4XDTlXFfJis4%jDV-k|_n4vMr$k@Wz3e~Cu)yl+-u9Fu@Clg#}8$8P*=lLy&>;um8 zjKT~oj3P(|Ao6@WRs*)88z9NR!YGB+fDXn^XxR@cJV1pLm)3TMZ3h@KeY8QPH&W5V zD9^ybr~o!a3|tg(LHz;h&vr4gGBCnw7lz#ojG$%S&`{aKzyen9thJ3{yN@>GR)!r~ zTNu_JV-VB^(c2hy9$?tDm0_*+2A|ywdtlu)p}pG}g0&$1PFRO$-+oXuFeor6GVF$S zdB9~dxN)n&z{RM^Ajqi2AkV17pvb7ppv0&Lb}pz=VP%kE1Ur&Ji9wN(k+BDCk~72$ z;F4IBf$0x}JUc_?e^4y4Gh{L_vV(on%h(Aie;D*ZG7Jn1tXkU`_9KD^k~plvc0m#c zG=>=aKo@6$lRX;)BV#`U0|O&y5j-?tHbCnpQ>|?b2Yf(bag0HW*;WR`+P8>79z@F+ z`RN{G;M3j4aL`X%S7sZ-h88Bq<^S)2V+T?~se$qzqbma|qZ<PcqdS8*qX&Z=qbGwB zqZflZqc?*tqdS8!qd(Yrpz2AEfuC_A<0J-V20jK=#>vo1$rKV446F<Wj8nj|2^w?Y zWnlixz{k#z$td@W0Tjhk89Sk_Uk`P?36kqI5w4fhlG(;^2<G_1$d12{;rJ*9R>o)s z9>y33amH8%S;ja9MaFmrHO2%69mW_2BgPcC<7JT?uL5_x3Ec7eSRF45ay$#;G{)&r z$4_No0;kCkE$!_LM`kkkYHeXSs(pYVa|^@KWeoOOTNsW(c*mA87;0@{I1b?*U&f%U zwT0mXgm+>YgQ(UPhLaH9$z=@eEXx^Kz<D1MGmwOl1$I0n&xAl7%D@o9*u^*rI<mvg z!1S9T$bpf8k#Pp&OlXD-WMBq6ksVUef$}uOR7jyv#K6W_jASx9++=pfS)iH)T&_cs zBS<8Kfe~5`&t_l*?Vf~&gb_4Nb7*a2IJJ#oHhRfb1-1iX4hPf@M#j1D;u2Z^>1_;W z(DgTC)jyAMKGc2(XiV^c?3V^NG&#_-Ru9+=NC@&k-N3-W1CD-Bpe=xxz^+i=2!Koj zH)65J$rP}O5MK#EOavDKtPD(i;CNWbxCrXNItC_iqf}CB3&W1%3|v~<7)~!|U<X;? ztE0V*;VdX-K&=A?20oBN#yJeajB^<z80UfQ02MwA43ZE#7(lEphHngv48ja-;CO<J z1%g}x5eb2|XxSN<_?+1p)-f<LE{3}$8R`~pkRuSbL(&Dr_C*Y=jEfn#7?&W~&JDMn zn-O9=D~9b5kq`zZ21dpuj7y=O&x2-iaP0W$YRhb6I0y1CvW;sPSQ*zca5Jt0+XyOQ zKyd>d1!CZV+6WSZlr^jjp!8_Tfavi+L_$E#R?v<gXlWY?O&Q!;%-a|a9bi}osgfX8 zLo&fO22RH9U~3_X1Ljdq1}1ReGQu+fL<EruR)9-oZU#oi)eMY`$;FH*42+<SM$pV> z3<?JZ1_n-$-RBQ5tV2(d2f((1qK$!p6B4}8?6rb{k#Q~7<b7It8^eVI3>eA#IM^(R z53nWgb&SiQ&O)w$PN6#q(gA@u3047t#sircK~7qa)sWNZhTH(V1(zWk7&k%_h8;9= z*tE2_G8_dZ3FM~20|r*chhUQ+zG8!f5Ca1P8+f1)lxa6HZif2G1Da_CL51)!1}+e_ zoPky7BFJ%&=!TS}Z@@-E9481d5}a#6dBu^PAs-&6TOo0p%D~9D4ZD+%p*#5t11sZK zu=%*1ydA5Pk3pP#44adg7{Epn@8mQFM#deCJE0+iR0n|iHXt`c!ULTAnK&8Pm_U6J z1_p?mk?Vk6jGhdL<j=ss&bW&)6kZ2_T4;M1_d+An30l>F%C<|OZq;RwO-K>SB*?(Y zBn0*f#3oqVkAZ=Uv5RpZC;}PxV=aX*ZDY7H6MN0bBndVV5;#~(;RB2Zp-wb|W=K#$ zbcuNz!_@-}*Febw;z)4vU{XXf4wjD?LE8kO1qvclvw#bfjpznwAsK+0sgJ;u)^SME zN@rkXJi&Mv8c!%DpFhBWVX`r9lNlHpPhwA_$I)ZKnt_$c25b@}7O-WjQ&`jJaY!0H zjx~+CgN=kl12NeugMpFpG`4mMsLKs<GjbaBXJBIr09ycYGjbZm)=mk7r_nPEjErZo zwll6{wo{nG!FE7AfoP|k!>a!VW;=x`0jvJ=j2EB@5V@Ul9nwybKu<rJU^5{8ge5>& zy$34tE@I6gAm8B1A%$QQA-=+zLoP91hB^>SJLLwXopK$~Qb1~_FjX=LGgUE2Fja%? zz}8Orfv24khS^TJ0(T2?JLLw#c1XGaw^Nwv8CaPb7`T`kk!*)m-wX_(b_&RLNUH>S z+z%oW1}Y91uQFbPdLFr*avgg+g{hN)m8pw?o2eUYBer%5$VOOvF)=_|C7A7$FmOBN zI^%L^v4Uu)u!4&f%ytUXWCl(qNRtziIA9)yv`Q?I3TlW5A`{$z7d+5*N+ts%<4t&7 zjwpCow=rO8r!dV0dlr&_P>Zx142+DouqN*tkah}2@`f}iAwIyCyl=yuh1^cLj-E@_ zAUO%OodR;w9ju1jKsRJ7UPJC;t3g2{f#{{vJ_a_X{a~XY-a;;&u+^a9@Y3lX10(3* z1!($1u0d~NtwE15a55n`^iXTihu|9Y5!UkICY~Df9N6uU=*3z-JZ5|Xbs};NdJ|HE z-a-#m<dJ1q3^Ou5WjqW`>WJjV22Sc2_1t|V_n;=XXYhm!twFOG7#W{qsX^Jm2^quW z7r0GkU}SuOtvUjY`JzYo2L?8#k6@!PBOF_G6akO$mkf-c<9VQ=iQMhIjioyJ0k#7Y zF^KBuHP-6r4rX=43>h>=*Z+p`E!2MG>gYD4I#Nc9O=je#AuKjw#T%$PdWSW+fqa9b zI%0-20U@r!n%v$qet<d<OLcSyQXSn!R0v4b5wjG7Ftap+1hWh{<gisoKk-yY5t!A{ zN4Q&%tD`#z+mWgxW(5XTW<>@rW+f!sVWl*rIs(}aseCZ2qX=+y^oj8^)bq&I(QWM2 z5wjKpE3-BOH?t1dMr_p)$VOOv;jWG%z}3+gEY%S^IFDjhN6aP+oXn<RYay8c=21xH zgIOIRGQn4PE{0Y|*$j+~-{3_yqI_Tn=VJ73GqWAoR!9OuEg!xzFfx9}n!N8osw0f# z?Fu#v;sb2S`v=@v$kowp^jzW#HU{D()anT2q@P#~xr1&<7+ynuVJn?LQ&DK86LTB` z8*@C^D2TU^t0QcsQzX1}`pv)yI?@Z8{*X(jyO^aDa~jwVh@TOq(_gHm(>*MuQ$AMx z{}@3-=bsoD7?4Y+yO7ceJm!nkTVt*On*s4Bmgr+*z*;(ie1ofWY5<!E@fEhx33SjA zG=Q*_PWK?C(_KXQfLuCtFbFeuGDt9Yf$hLnI{m>@Iz?iXPE5>9Oi;HVmrnN(wj-BL zeGIJ3{R~{p6Oe3&Wm-t-1hO4h=@bbnotRjdSfLgomri$aluk1kSea)sa5K*W+lZ}n z0@+BobczI(PN0Kwpe+bQW0?b2>9mM}lX)@NT1eu6c@$Ua1kVIa?C7Oa4g(_-2RsKO zN+%BNr4w??6s2@xVrO7v;>4P~??Fl@jO4u;$p_eyHy7Ml$feU=^nztK*ceEfMk$@Z zPU6OD$USsJj^H(fhlv-OFi-~dPJjw0NQMQEHZh-JU}ZiFHVG0hsG|?>KrL9%Nr2EH z5rnU{Fq}Yl5Vlc9(Bv>^JQg~3m&?G&BmgfrgP<c+99r7oS$mM%AQ=SWwg(LC%*X?d zutJT2fdg$I7$On{D>#`185o&_uoisxu@s!htx%X9j7-8<^*_K;a6+1%kmy9{7hw{G z#sG4`c^^`68lwl^FQhoYma@dK7Mvj8;3zm*n7}4NT!ppZ6laovIuJ|2`2bRI-bWN& zNChVg7lSYhH-iKV57-WD1t+M|fXsa$H>@BcQJ4j%B-|~?1?K~V?T~Z<9%Wz=U|?kt zWZ+_fG+ZIJ!^#s#!3nY*SHT$tE;yx_q@kWiE;#RFFF0AG7+6`P8Ms*>%~)&&C&)&^ z1!okv;FN(k>p&wOp!s<oEl>u)Ivv8I!obC%3JzyT4uz!-E{y3AhzKGV$fB2=c?^t9 za`4i{1QZYq3=CXg%dw0zus~+oAxQ|@wS~-wFv&77GRb32;13{0Cwc;BL2jDDyZ{R@ zMg~UEA)^?D%r=JmX!(T2790`~C!rRdASWrpJ%=c%wlO?FH^dFEAxc;aC@lR>7C#1d z7RVGlBx+!pA5t74H@P7q(eMIFnSl{>7AiCeBDd@wVir&=$PH1L9gIw>SPQ5}m<1FI zr1c32G=zRNCUvO&$OY6xNC9Pm9%dQfFoXCLTl{HYEucWY!Bs#NfK7zB3TpwS$)p8! zAeI8^5u|{6h$teE3#bYPVU|h;2^PpiH>8L_nXUz`V8=OK8;w~&X~W%uTtGcS*p6I4 z)iJQL)H86gK-#Vl+ffQAu<f`CsAy2WWYS^Mg?b*jfO?3dfa+jiW$9$#W`VS1u@q2X z8)5kkcfT_lTtMkzE1+<7JXt0&aIs7V$0cg&fD}i_xd0-9$OZc71ynu*Ba;C<4<i*& z*n6HVbHLU@k`QVErO&{~WQa9^KY|oc7zrG?b&4&48^PU$T(&$!&nK&qoP=6Hft+NF z)sRQ%hCtRWL;Qtlhza(#-APdU38`(zvWJ0{WiQw{kch$7wliho$0&BUFq}kp&<U_H zs18DF+Z8Y{GMQm5I<a($SuQZJvs?rl3UM2(Sb`Lk$cY9b5(6(f%^4U$XFx+U2XfK* z7)#NK+$e?F!N_EZwdj0;rRapTKOr7R=(l3BhT4x@bUua@own$K_X^3M*ix1a)}j;S z8(c-_C$NbSS79wWZJF$#4#ZM)K7kaSj}e6za?$yVL73$?g9OVTupN-X3$^G3^>HCB zIn1_Q3}(@34|fZ4(fI^nJ5tff%D}+N%E-XQ3TeGUY)36RLAK*6I%B{^rvsBC)bq$i z=VR<eCo2~ND=RkxH!Gwqi>>Gc*+{tPi~$#&PS}c0T)kpe5e6<+QE)gzase!LKnhCa zTmTV4<N{~(qO*{Jk;w&Kx*!#u*t^B7a$svANeH#*bY@^=a>bg!pFoOE^aRd|t$7Ly zFi_jh4el=FqVq9YK4H~GauRB(2Xc}-Rzsek8)Amn5Dz9#XwpEqWIMxCbVIB#4Pjtp z@`C46oNIzvk;g)zYk~zF8K+{gb{oSpG;0}TF|8GFWSoFiGx}0h9GZKXJTc1mZ4A$e zuo;}dpetMj92vW@y5ay41_?Mac3^eIb|N$*mLG$S@y6mA(u{%aie>U)@&&B~XYylA z1n=8rWsGOGW=v4yWL(K?&A3X9lW_~PHDiMsC*x6OYsO=0oXoG7KQO;$kYxJ6z`&ru fz|8cKftl$O(`TkHVAeOL?@T|ytY1vOnf?F(5UoxZ literal 40192 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Opt.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Opt.class index af24371584571e17008b878d857def0297aaf35c..0c13653b9ca16c58823513d7b4bac492343ee698 100644 GIT binary patch delta 283 zcmca0e?fjj13RlC0}F%F<O%$$lUK2;GHOr0z#hV>&%nZ9z`(^|I9Zn?ozZ;q0$!EL zJ2|viZ5db??7(VyIW<|G8CV!xz`O)bJyuT!4hFBulQ}m?1~RZR1Tk<i1TzRSgfPf6 zgfS>Ggfl2HL`;t1YGq6X>tN?DR?KH$Whh|aVJKt}XDDKjV<=`&VkluyXDDURWhi7Y zW~iJzn|qsL3j-@dD+3Qh8-qAQJA*7k2ZJI*CxaS87lRH%8-o!;-{c~m4#p{yfAd5z x&H$TT$*aaVXYvAGKSr6!6Zlmo3-f6~SxHcq>f}v)rcf~+eu%8z<Wwlj0RYKrK|BBe delta 283 zcmca0e?fjj13Rl60}F%v<O%$$lUK2;GHOh|z#hV>!@$Cz%fQ8;H(8e>ozZ0S0$!EL zJ2|vitr%Dstift|IW<`w7+4q_!Mp@cJytgc4hHwhlQ}m?`Z2IF_%m=Z1TY9P1Tx4o z1T!cygfJ*Egiem(YGq6U>tN?DR?J~wWyodVVaQ_;XUJ!eV<=!yVkl%#XDDLOWyoVN zW+<CHn|qsLBLgc#69W%JGlMuo3xg~}D}y3K8-p4{JA)2GGlLOB_v9j;4#tU-fAd5z xP6eA?$*aaVbMgXSKSs&P6Zlmo3-f6~SxHcq>f}v)rcf~+eu%8z<Wwlj0RVRVK&$`& diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Options.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Options.class index 12e8b784823ef3119be920dec98a205820fb54ed..cc879dd8ad268337faedaf45bf9e704e74c2532a 100644 GIT binary patch literal 4538 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 BrD6a8 literal 7330 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterOb.class index 2a1803378c6f1bfbbd61b371c5e6e69ed280c880..652cc5832aae47021d63cc1e376d592ba8069184 100644 GIT binary patch delta 2640 zcmca=(_mG9>ff$?3=9k=j8g0j-CPWe3_V;7y$pTq4E<aTED+8F5NjexcoIm#WDsi# zh&2_&ng(J`2eD>=STjMaSs>PI5Ni&IH5bI12V%_!u@-PKEM!;&;x6W@XXs^E0%9%& z$t>e$SkAD5n_(rxDsF}lhSeZq4LieHc7}Bz>GfO;8yGfnF(@)@0%_R{65GPguoXma z<6_v(u!D<1ona?PZWl;wH;A<d#M;Zwun%PRel7-mh65nsgCOo9E>i|OkSFaJ4s$Ws zF&qIAN7)&Uf#~C03>FM0K*UK9aSBA7W@k9V&Tw|K7h@We;5kMHF4v0W)Pj=C{Jdgz zhVz>bG9O`Nys){AbqXWnrODFlDU6pVH?Vs#UYUHFeJ{JY5hH`KhUR1k7RAXMID~jP zgHqE{i&FEFQyCdTCZFMOXM^xIi*c$l@<lR4u`^udVYtSS$jD$c*^xzIvICP)JrBcm zh8sK#HyLj6Fx&>Q?toZ#L9BZq)_oA`0f_aG;SmqRV}>U@3{OE~&p=|&L1HgJVlP3g zS0L7FhBxdCZ+RHrF}&wt_`vXyhv5@LI}gKWhA%t}Um3o!GkoV^_`&d#o#7V`!*3pj zKRgV784`II{xP&qcHwrGWBA1IpPi9`hmnzyiH9MQk(q~)g^`tqk&WRSBZCgu-7`da zG<g`=89CS)Ie8el7`Z{}cz76j8Toh^`57MZFbXg{;b9a6>Cgo0ND$*x<6#tH6b7jj z;b9bI6ysqOXO!S!NMeZMVMqoMDGaTQ4BBAj1+3gMJPa)itvn3545>T}IUphfM5HjJ zGBT)7c4SeXyq%|+MUs)h8qE36&ONz+x1Ldba-e|R<PXf8li%`sZ}#P%&R%c9V8_77 zV9&t7Ai}`O;K1O>z|7#pz`*pFft`Vkfq`++ZU)B4?F>wQTH6?yXEI3aW?+fj&cJHL zBFUn)je%_&1G^;42CZ!j9LE^AbwTtt22QPQ3|vqy*ER-jt!)fEP%h6l241ag417>7 z-?n-Neywc`0#LrdHU>ehZ45$CuFy6HVXbWpB2cc#HU?3xZ46?^7z98ziD~QXU=ZKN zAfdI5K@zG&avOt`);0#|V+<}JYA1sXBg0MxSw;qsdv`L(F*3|#(2``?$so_jaDYL< zinU&MH-loNB&(Jr>ox`@kcrCM8C140s4oA1NoyN}8pI$q!UpN?W>ANjqX9BUb3239 zHU@2oIXY1H>1<;FIb9E8tlmzBdO{A=-OZp6GItw;o+Rr|1_LIB?F@$77>t(xzoet3 zyOY6~nIT+v0|NsC3xhKQ1H&W+6$S<dWd;rgRR(?rH3kU=bp}NS4F(kkEe34{Z3bfo z9R@1~T?QuxJqAw(eTMo#1_Oo&21AAf1|x=a24jYN1`~!d22+MQ1~Z0M26Kj91`CEM z43-QF8LSvqFjzBeV6b7>&S1-Mm%)zV2ZIB{e+EZJRR$+U2L=~LcLrBRe+D<kFa~$V z8U_!>=?p%M3mAMETo@P_f*3d$Bp7%YTp8RLSQzdyNHDlFcrdWmGpfRvj5RP8DA_T1 zGI%jCfLY!QJ`9XtmM?=J0}}%W<17Y$h5!a;hCl`e1|GOv5CaoKFaraFE`#771{HP& zMm`7-=KI4S#?BD(i@^ZSfC<$z7%+r_LywUmj3JzXfq{u3f`O4Ck|BzL5tI=aj2Rd~ zHZZViZD%mq2vz_JXf6gO1_p*;1{Q`8u>Zi$U|?m4W{3f~njsc$fHs)Vz`%&m%my|w zmcfNV66yg4MyO5}hB$_JkkykXN(rljY=S6GLb8Pks+N%<fgus5wjQB26RX-JxQmdz zWQuSV#7p@MEDQxm1|YnYjMV@$r~&m13=9wxN*P!f%CMS{!jQ_q1P)av21alIa%pX6 zFh9Ux;iC;o!%W~b3^ApefrFt2Y>F5}CDhX#3``7Z3^5Fh@OVpSVPwc)s0SIH2}&{y zSquyepis+ZU|?Yc6^~##mmw8Q=P~3nFhQfb0IXJ;fr+7nfsvs!m7#*6lA(ryiJ`Wb zp^l-xn4y7%k-?v#k%1A9!X}WyW_JcgP?-#h4h9AWeWX-liSQc8RSXQP!QMhoF>P4m zay^n-XuJzJGUPI}Vpz0|!3y0XStQNScocAC$ib@F8cB0KIDKN*ox#uwjYEVVw=vit z>BglQ9E6|{$Yx*=aAZiqYLG3+pn6C`0I6kQz~T%<)Pv1w$KoKcIYb-7zzj_g9SohI p@{@_7i=mi-fkBFanW2#3B14fHCqo&-MTT+*NrozhiwxCjoB)XI!8!l{ delta 2888 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class index 846fd0a4863b1ee61eba7d99967934c62adf2953..feb29ef925440c7f631e4a5e85d8f5294fa81006 100644 GIT binary patch delta 1457 zcmeykhVlCv#tnz%8O<jjk=Nzr3`$K)ElSNxPGw{WnOq?6f)Lp3s&I~<Q;C6v*`9%u zL3y%_L4l|a0|$dHg9w8jg93v-gARiMg9U@(<b?*)9Ic@0tQq(iY#4+YY#AgN>=@)2 z>={%T92m4192pE4oEXd)oEdBwTo{}gTp2tW+!z8F+!?|dJQ(5_JU3SuPGe;Bo6K)) z$rw7B-&k~VoUuA<Gy@Am%;bqK!jtD3YqBOXurMTndH0O<SkoCe7&0acnoN_-XJBP0 zVBlgXWDsO1VvuJjVNhf!Wl&-$n|#0|o3R<J!`?Jov6q3Bp^t%wp`SsVVFH63!$bxp zhDi+S43imj8TuKF8KzG@Z8}GB5d$m3Vg??DB@E&WOBrMtmN6(YEN4(-Sizvfu!O;g zVa?_aGbTpHO_RILLs)k)urlnPY-lYxd4mP(WF`v}#$%J^Z1g9mS?I8yV_;=C50$fI zyag7QwA5jJ#K6k%7%I*-In&aZ@f}$1jHM3iHwIRQ?~@I!<tNKnsWCA!f!+Sso_}(h zl@2Qx11lppSaO?{I-?j&Zj!YQs~iI>qx@t;Yd1zMnDFFT);g?446KaCaJybv8#CHX zma~awbz@*<bO#$X*G8Q&2(IV3jSg!R11n=RSkBy5oiPnA*J!KDn$N(-STNbnL45Kl zTR+xv22RF`$$}=rlMU?b80#nJ+xaoJPu^$ez&K&@f4fM=nUnw9Nlz}Z*J54Bz{<D? z?2bM5x{Pa~X4<fBWng36HrdW0nQ`xA2UpR_+a0tRkAYd=9rPH_Pj>W`pX};r#CUyj zzMaD48IIPR_Zfs4A23KTKAe2Vv6S;E11sY*1}?_ulcSt6Io~s|GJas-X8bt$j8hTo zPX<oLUy~oYYfsK|_F`n7{NGM;@+D^@MlP_aDlY1bLX#)D$WG35QD>B%JkiCCRhfZ} zNoBH~gZ5;0R|`h%$qugej3$#CT%8$h!FnFM8Zo+pU1H{D&FRY^%;d))!Q?;rj-%w{ z$!;;6!3?ZSAq-qhp_6~OWpc(curkFla5KeEKI0@gx!FCEHJyQzDP!_O_fp0}uxkoD zj2J7xCLi)pXKa`}(M57Hv!^y=Cz$2osmnT%fsJVr*hNb{Ef{BlL*}!m7ULo?%h*eg zaWz<fqn8omX0Xeycv*AqW)NoD!yv)57wj@a?-<U546ICt7`T`YPoCzT$$6TAmFWxv zH`7_L%M^VgS+6p1GF=0Q)hZt^#`|E`@%b7tKAY_5>&EyF?4E_b+Kk^ptj*7Sdzk8( z8913)7zCMF86=t67<8D~87!GO7@V2882p%d7{Zx(8Dg3F88Vm!7>bz%8S0pY7&@7S z874A|Fw9{VWmwKE#;}Q5oM9KU1jA8gNrnr|QVh45r5PSG%P_oSmSy<HEXT;mEYHZv ztiUMCtjMU!ti))*tjuV^titHXtjd_^#jM6y#jMWQ#H`8K#jM3RnOU20GqVok8D?F^ zE6n<gcbE+rpEDaWzGpUK{K0I@B*ARLq|0o|WWsF0WWj9B<jicr<i>2x6wGY1**dU^ zQPhKho!OH?klC9-jM;}lg4vfrmf3IerJw?6_6Q4BV+@;I8*IZUJDD+5bn^LNbudeO zGGB-)qbxW{yN8%USrbBx!Lp*0Z-zkBf%Jh&GWQU^$?>5OG119$z$}pXgb<#|kCAws Ilhwn#0PEL?-v9sr delta 1432 zcmeyqhVkPX#tnz%87(Fsk=Ny73rbCMPc30&2%KCX?*ip*_EtE@&neHq!feC9$)GS< z$)G?~lYxUli$R1zn?Zp=he3xym%)NTZ}M`3X^!SlbruYK43-SS3|0&h4Au;C3^oiZ z47Lnf40a3#4E79W3=Rx742}%W3{DK549*Mz3@!}e46Y1u3~rn245u+NdQbK@7M-kR ztil*H+27cPHG+YKA#(CXW6{Y=jn!G>7+4tMCtoynWKCh<U`U-TZZb_Whk=zLmw}5R zk3o<jpFy6XkU^25h(U>=c=9omY{rJk7mbA{yP9Szb}_IrbTjZU^e~7s^fJgX^f4$g z^fRb4OkmJu=wUEsm@@gI=^VxR46F<b7<d>KGKe!QVvuE6%%I4ygh7pADT5BfLIxv- zm7Dv_m>3z?Po8KV!n&P-m0`!^i`H_JIV?;V4^RGJp+7mtLWlJ<11rOs$rr8VC-1Q^ zX1qT6gGDs!eFj#B2Vk*$OJl~@V6~Slbyz<$urhp^e9>BRa)344WF;##CWilDH{Y}2 zpPXZ*!^+OU%E$p%u*XWBQ5Y`IX05|2&A`ei1C`fhRENtgu-0MKXJBPCn0(PXh|wBs zVX%!3t1|;DqYG3$+vLSI>WuzSJ=Uz@46KY1a5-CBb;e|<9RK8YTV2*11~$gr$qk<3 zlP}o%v6e7!GL}wOwhLsenOx_nFnOw-9%IYoBX$mqy_4hZr6()c+c8d?9B=Q+I*);s zasK3s){>JC+3PZ{f}1Jipv$_6fsJwV<OWae$@vZzjJqbUaIj}QJo$x#Gvk@bI*x&i zS0>jvMswa_5N5o~Ai;QVa)X=X<ll}loR1h-86PunF+Q1`;FQVvhJlswEdw{>yU7La zl9OLMMY4Wl;AH$h+0(g{kzw+FXKzOK$vTemleJvb8TrBXuX5p<obRH}C;{aevnnvK zF)4yw!s}|ms4>~i)t=FCa+|9&qZL^1OIIUCC$LX#+^jjh7=)R;86=o|CO5d1at1K4 zG6gblF$GOdaFU!X?jFDy#lXrG&A`nRGr7RMh&6?QlPPtwr?d8CArCLcyvgzQl9S6k zj2KJ7CZF(7XRHOggW1!Nu?@`f@HA%aV_;+IpWNV?%s6fG6Hj}_`IA+=oEcYu^|X5# zF>V06=9ZT==MDy8rkxBDOuNA0W9}WpxsQRBX+HxO(*dxHwt5F}o?u{QI?2GzbP60s z>OPUIml!yiE`wdQ!N-g74%k&9zDA6X!8WA%sx!U@yJexTA>$ViYx6VTNlf(&44ll2 z41&x|43f;u3_8p#43^BS49?8#41Ua<4B^aN46)2S3>nP448_cR40X)>44upZ3=^3J z8RjqxF)U{mX4u3m!mx{3l;J3|7{di-afaK>5)6--B^ll^OEG+7mS$vRmSN;%mSvP> zmSa?9mS;3zR$#PXR%CQ!R$@%_Vpe9XVpd^nVpe19VpeCI%&ft<nOT$Z46_#F6=ogA zJIuO_&zbcY-!tno{$Ms>l3+Gu(q%ScGGR7lvS7Aga%MJVa$~k&3TC$4>=@X@DC)|< z&g{k@$n3!&#_Y);!R*B#%j`Y*Mo<AbYluva4OV3gp4=R4!zeZR0F)G+EEJ;7C<O|X z$-W_`j8c;Y!(=AU577dv5uf}pL>0^uoh%cIP{%hp70f#jEIN4+m<7`HEEJ?mFf0uK DN>qfU diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterReference.class index 58443c42c1ace478ae15ef98106c6930734b6e23..9e204acbca6d0d9dc4776ca0144ed65b19ca9869 100644 GIT binary patch literal 7997 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 literal 7756 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 CmOk(R diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterTuple.class index bf0737db712657b384c0184ab6405e3e0f9ef2d7..f7a39a5eae83be2602a1ad38a4a86303529c4bd9 100644 GIT binary patch literal 6582 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 B@eu$3 delta 2420 zcmdmH+^A81>ff$?3=9k=4C}ZUm>7!K8Hza>I2lT~7&sY9K|~oyxEw@OfQU+VhANP7 zHAqzr7eg&W9XmrkJ3|9ILnAvw6BmO3LlFl<Gl*{CVrXS(<6>xM=m2p$xfu8vx<Gon zK|~M8v|cU)22O@P5VIddOaPfWk%M6pJHup<qA4K3sUX%g5HX#dVaCQA-i(a1Hmfi# zW@4Gm&M;^4L{_uOjI8~Pb0<$^T{w9nr#LTXaAta5Vo7OHDkDSY<UkgU$rm}(*fbb4 z85z_k7jmd8@-WO}sOMpbW{BZon9s0)hryLWlZU|#M7T3#GcxE+F62;{e4d+gaseZ& z7!QLxg9i`8LWU4_kS=$ITt)`1=*fXBnv*|qmAfrsSj^6_goj}%!!mY;<va{47~**t zR)Po(koiF%z1|=qh#{MYVHLw_9)<`IE0Q6Khe3@&osofokwF`3Bd_)vkb*3bf(Vc% ze+Cam2H~v4vPAuy#JqHU=bZe!)WoEmRCb27n*(_MFftl~yfpbN57%T}e$EJ021W)J zkg*I53{nh?3>plY42%p~3=9m$42%qn3=9mcTH6^IH!?6VFfnK|Fff2Zn1Ml_frUYV zL5G2Xfd`_9L6<>~0pv1$hyj!P_@%TF>NOcS7_^YobHdeYFc>f}F=$P`%&%AvQZK~7 z0=Arm!GwX6!IXiY!3?ZVfq|KUfk6PO55zKLPzT#Bz+l8+%)rE8!oUC)v0z|ku#9G4 zDrT@MX0T?k0W)nuOgk{szL>#*frY`5!3pY99jH(1nON4q{mBM4+Zt>)#E(o+yBQgr z8C=k`GBKm;bi%6B6%smNA0mR64HCRLApb+c*MotD!4t^@R=C}6SWRGun1C?AkAa23 zAFBcG3?ASBj}w%(N2m{B;9v*^s~2Nn0!K3>LOB?i7(5yD7#JD67#J8>7#JD&7#JD6 z89YD%FnNbyj5o*(IR<tH28I|0R)$yxE`~S;L56q+d4@y=MTR5>C5B|Mxu6JSWsrfI zro^Dg;KSex4rFJj=lmwe3(17}Gk7pCgHxbBG+tP>wlPR-K#Q3Iu%VEcfrU;00|<c9 z0VwtY!Ravw>eP!uZs7E##=yzIz);1&%23U~!%)K@&QQxB$56+h#8A(m&d|W1%TU8$ z%+LZhU5kN*L5_i+A($bAfti7iL6sqtAq*TmrcfudG8iy~gM-J9fq{XSf%z{3A3Fml zquehBRt83f2#Dnj3=HcTm>DKd6Sj*51sB8({S2%O6Bu|HCNhXKOk$8_n9QKaFoi*l zVJd?T!$bxnhM90T$RfEx1?~nDxEu6gZkTK+BElZY5Cx7L9}!)!k3nI<z%U<d8YFUM zpgI}A(GkMH$N+LZD+80111M2OGsJ)lU|?XdV_*V%mrYB1D}x+*8e7i5%CG{-ST?w^ zYz(pBtjNj85XTS?PHv2%N=UBR4AusTJwd28kQ>+;nD`vo84|#mnVW%;A&G&J!Lpda zih+?KnIQ%0EPDoKu(Q~;w3)Xtu%f$bHv=2P9<T)v@3KQJsAphcXYhm;Y^e-sAa{Xt zA`>_na%wSeV~{?;pn#s#j)2XAI2KlLff5<WeHjq<Su-#)WHO{d-3Ka-Kt(6mL`ArX zNd7;I#YjemEQV~T35cY>ok0oRJr|KQ!;(HDLk_`0sh)x1Dw0-cc_!cps$Ved-NvAd zZm$%QW~jXajtoIq9E~NvN-^lvqgNLKjtu?`+0bY}czGLx3K3R=lL#nn2Qn}SI5K!+ zb%rFeL5iR_!R`rnh%+WhiW!13D9Bh)eTZ4X!An5_M+SF>T#(x*Ns2`hsfmG^ArD-R o<ueq3=|To`aK+2aV9GF)!Ay;lA(3GwgS{FjLpsAu1_w1x01kWpd;kCd diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Password.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Password.class index a27cd5673b420207f9a09a1001469b9efdfe919a..d7191bbb32bb2b0fe855790cb292f6da44fe5487 100644 GIT binary patch delta 307 zcmdm|yia+<I!;z41{Mb8$%cZ$laF!gvg$B!Fz8PH!Rf?l#=yd0&cMZBG1-|bozZsk zYA#Dgm&s4LY*@V*SQxy)IxM+0SpyhY7y`k(DsDa2Fa{2W@X2err%A>!urkCma4{q> z2r?ux$TK7}C^DolC^4i?j^W8>ECTDe&6BNI!@$Z=%fQ1>#~{v7&mhOpz@Ws?$e_;9 z#GuPi$6(CRHaVSlj^acHR)$FoJPeZ=#2KbA$TCc2P-K|KpvEwrL5E>7gAv2*$trw# zj0-1E=JQ}($-u_2YVrd<FUC!iwfO@XcTcY6w_)55w(%^#8sp)~U-)epWhWa7KuFQa h%>wEmzM$~reFCN+mVoGFPC<y68;CC`GkJ=j7634JM<D<J delta 307 zcmdm|yia+<I!;!31{MZ|$%cZ$laF!gvT8DLFlbHw!Rf?l%)r86!obB~I@y^kozZIY zYA#Dg$H`B*Y*^hHSQtFOIxM+0S$!E;82rGzDsDa2U<M9`kjZPgr%6ULurkCja52O( z2r|Sm$TK7`C^956C@~~Wj^W8>%m?eZ&6BNI$-v4`#lXW*%^=QD!yv~{%b>(i$Dqzo z&!Edt&0x&XJUN|rj$$7JD?>j655oioafXQuvJ8_L6d5Kns4+}o&|#RsV8k$EvI<`w z<Gjg}`8-&cF|aW#pZtK&i*fyAZT>*U9g}PMZ5a1}Z9L1b#&}@z7k(Q?smX={5K?q< hvw%8?FDN{DpMWWdB_KMPQxGEN2I33KOr9dB1pv!BMt=YR diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Patch.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Patch.class index b6566150b3f9f4122597a541cbbfc43447f63f37..d7ea2cd2e21b6e34a48ccab81eb32fc843e1802d 100644 GIT binary patch literal 4530 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 IV6Mgq0BQ80Y5)KL literal 7322 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 DU7Ff$ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemOb.class deleted file mode 100644 index 00ad30ab035b611fc02b029c8fc576c8233430c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8818 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 CNw^XK diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemObject.class index fea5bcc13eafe58d346557055c7e577b0a9d95fd..7e95bf930c55cd801d5848f4d806dcc81e2d2c81 100644 GIT binary patch literal 27909 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 literal 27088 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 Icu<WK01E;*`Tzg` diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemReference.class deleted file mode 100644 index 8fe7179384f04d76727c72702c6be2ffc188f72f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7689 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 D3sfKn diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathsObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathsObject.class index b8d3036127d5729fc7a39ee97ae6fcfc7be49291..dbc353ee213a3367309c43cbedb351e31a75073b 100644 GIT binary patch delta 644 zcmca;^WSE}Uq(jP$^RJbM6yzoORP1+7#Wxf3_ye-BZI+YK_+b$ki_J2rapeYfW(pv z&yv(!|0IyuW&!35CQ-rS)Dl#2Mh4@_f<j7@-?4HjfYgBv6->ueW~8ABvVa?`h@IgM zBZK8+K_<n?3T#qBG8pPNd$6%H$@6*UrKJ`HBo-y+rk11@F*0zaq$cMi7Nw>*mM}6z zO^)Jn5kpm?msOOQZe?V;c^^kK3!~oTgDeUlr-8k-*@gEoE2|O%3xo1x9$^Po9R>~t z-N}K%?!0CUEDYuhoD3EW{0x?pmkL)g+D%pvv1D|etRNyfIbTGb)tiBZ!DsSp5gXP( z1{Q{($#+B?S;HAP7$PPsiB6M@XJBPWVBlg%WDsOXVvuJ@VNhg9Wl&;Bn|x6;o3VJZ ztyrC6Edwh<9Rm+TJ%czy1A`nxBZCq{6N5TKGlMQeJ%cer`{X-fa}*~rurf?$;9;1; zAkHwAL6%_}gCfIp1~rBm3_1)`7>pR^Or9y;!nkO%oJ0`oDh5`D)ssslf*7|=J|Pjq zx{ra4VgF=JNiW9ZlLLi?C$~%5F<zJ)C@ebpwq&8~Ee0lr+YF)%cNmly?lR~w+-ERn zc);Mq@Q}fm;nCzeY4OPoQV(U{F)%T_XAouhz@WtNkwJ&yGlMz97X~MWuMEBn-zL{d zuVef(Sy#q_iIHJ)x{M8@?Bs_sqLX*ZsDoJ`zMQNFm@PWFMiwOcT2^NA0a-0Z*~zbE F(*R3SvAX~O delta 580 zcmexwbJ1qQUq(j9$^RJb1gtf~7#Wxf3_ye-BZJOlK_>0V^-O)-TmgwC8J;Dnx&BF; zWtcOVgm{ZnOAum=4Eh=%wPIicc+*kk^d>K4R-e3|m5tq+o#756gXQEz9*xN|{M?iM z*f{tkP*iWuU}I;J;`Gc*3r@~R%}r!v;7UnN&PgmvO>rz?WC)$y$KlQgk<!a5N=&yh zGT8irBbtR#YjPly*5)GK!>p|G3@i)^ldXguSTz|q7_=tW3%m0gGq5n2FmN)MGVn8) zO};E##b`a*PsEbZX>x~%4XXzO3xnt6lOi^(ehe%O{*$>x9a%#dI2b}F2Z&CSjA3A9 zh-Khnh+`0Bh-Z*zNMulCNMcZ8NS^#(G@G$ta<*8VVif}`Lp1{rLk)vCLoI_GLmh(> zLp_5!Lj!{@Lk)v5L(60?@i~h946F<j7<d>aGKe!wVvuE+%%I3Hg+YyBDuWKgL<S>< znUjx;w=mA1>?0Axx}1TPVa4Rd5<!fcCx4TOVcpHZ#;|8{xTF{3k;#iB0~yawt``=a z%qdkUd!2!a;Rb^!!%YSyhFc6e40jmJ8SXMTG2CPDWw<|iy3`NZ*9=SyZx}=w-ZCgL zykpQ|_`qP!@R7lZ;S+-|!{^Csq}MV2oE$A<!Nl-)@>CfcMybjCvZ9lp%cz4{Aij^R a2be87d6g_kR8mf6@;g~AMybh?a%ljIh?oul diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class index 73bafd4599843bd81823d2b41379565eaf0aab8b..efc5f92796aa3bd82c273568dbae83ce4504b72f 100644 GIT binary patch literal 14240 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 literal 12157 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 Hs&N7UXk@P$ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PropertyItem.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PropertyItem.class index d981c163e11b8a2c1cd2752ba1c325a664cf173a..648f16bda5a29e3f5b0afb03da4d3970e576570f 100644 GIT binary patch delta 307 zcmcbienWl31uj-41{Mb8$yd1?SaldU7<4E13yMzG=QiRsV_;!0XW(S8VBlx4oSes9 z#b`JACATG`>ttmf8&+=y76zZmDLgi;feb7RL6evAII@N_a4<wne$6vYGM<5zA%TI5 zA(26lA&EhrA%#JaA(cUiA#L(3-fYI=$!vUeinR=^40Q}V4D}4+3=Ir&42=v*3{4E` z49yI>4D}4g4DFMb^3744#K6ihnSqC43WGSqR0dgwX$*=C(;3tlW-#b5Okpr$m@_$v zzlCwp<mdcBtg9GU8CFlW69{75HhH2z4C_7yHirF^KM8m-9-nM07|3{Ga=)Mr<CV#0 z1T7hFOlA|ZVU(TRAS60DLP#CV0`d0>d4SoXlcj}0qFur=ljDW87-c7S3Ht#6r-Mp3 delta 307 zcmcbienWl31uj;31{MZ|$yd1?STz|q7_=t$3yMzG=QiRsW?*43Vc=viW#DHpo1Dj8 z#b`bGCATG`(`02H8&(en76#ABDLgi;ehe%O{*#yTII@N?a4>{Ue$6vYGKPVbA(nxQ zA&x<iA)Y~=A(26mA&EhWA$jsF-fYH#$!vUeid77(4Al%g3^fem47Ch$40Q}j4D}4^ z3=Isr3^feK3@wwF^374~XJBQRz`(;WkwKhc5`!$mWClfsDGX{1QyFv^CNdZ?%$%IW z-@-V5@^k(m*5wSW3@awv2?Q~2o;*<?hIKas8^fN-p9H)Zk4&}|3}iezxnIzR@#5q& yf|iU|C$kCJFiK5s5E7jnA*2pwf%tocJiu(x$<o3g(Jo<`$??Kkj8c=kg#7?InMsNO diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Put.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Put.class index a1bead1590236f3dbf6add4b73ccaec962e26dc0..e63fe8a4bee5e9cc18925979913b707bcc5498e0 100644 GIT binary patch literal 4522 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 Hb2Ux?QqrD= literal 7314 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 CTi1yI diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyOb.class index b5290f2d7067d68350bf4b222b27d6a24faef39d..22d651ee456fe08746c1d5136b21e6a6dadc7796 100644 GIT binary patch delta 2129 zcmbPkxKFSC)W2Q(7#J8#7|yUWlyEUHGL&*LlrfaEGgNRfus}GKAXXJfxSE@xhM|_5 zp^l-Ro57Z$0Yo&iGc>U?G=rpDxENX)+PE0_7}`N5b%4Y=L98wis~g1X0kL}78Tvpb z^>Z;eOE63TiBAOaCvh>TgRE3%m<(b~0TEN#8K!~g>0Ato3^PE)Ob{^(M9gMqn8VI6 zcjL`6Cc$}(3|y`i$*Bb;nfZCe><sfaCorF3WL&UWmvtT^<D$uD*isl5Pc~%tVq7x0 zhJ7!qu>m84>Es6-%99^(3JO>=GH?c^rll68<|U^xGK5a9=WyqP@bt2Z64R}Wj5lB8 zP-5hBVsK_>Sjxk&jKPbM!DMnEqxR$njGUT049gi-@Gz`oSjEGznqdt)!&)AObqwp- z88+}RY-HHP!?2mbi-%zgL&4;ETrPTB8Md)AZ0BLv!LXBu!HHoP55sPTJv<D1K}PHY z8L^+?01v}KhC@6IhZ)vP7U0%XJi>4kr1TgM!*PZaJPaopPVq2!GdS}w_<#sshP=t~ z+(uHl40${ZVGMpe451(*5JdPg_%Sl5PYz^MnEZi<eexylW|q^84AxKqp~<rBoRg>U zludT#(wfY{>%BRL?-_HwB7-^uBZCG51A_<yCxa$~76UVbHUk6Wb_R9^HU<WUySo_} zBeyd!`DtxqV4le!v73P<aytX76^kT`);0#VZ4B&^EE}}8F>oAXZ~;*}88{gkb~11= zGJurqWZ-6Gn8~0e$+DAyhmqj`1FsdU?rsLYNJ&;LN!D!){Po&8I~WAEGYD>D5L*8K zlGZi`;bRQkx*&QRgNW8P22m(ibQ^=1);0!lh&AFwSt9|mW*dXJB<oHFNhXHv3{u+| zq?iA{q@$&~lR<`=AzXJuJp%&+3xf^=1A`lbAOiz~G6M&LDg!@*8iNFbI)fsE27?NN z7K1i}HbWqT4nq!u9z!vMK0`Hw0YejmAww5~5yM0VV}|VvCJdJtEEsMxSTg7`Ffe#9 zuro+7@G$5x=rgb|1Tsi47%&(zurh3ivltleG8i!!Gl1-8xXWO|V9LM<3T*~626F}` z1`dX+3>FNQ49pBx3=9lBa5-xRCI%Y@1_l`h_CE|N><o;57{u5aY=1Er@bST!40d2o zF*4XQI503UFflkXFfuqXI5RMUVwS;}fe~yTtJZb~+4_xO6`%m%VqjumV6bOkVQ>I@ z0%9vGgA0Qz0|NsigB#ogZ7`pKff1pZ4Q!+*l14_TMivHl1`nv!I#8>bnAbq9t!H3> zX!S$V$^_NQ$l%G~g;Og`XDC*k-f-6<`&SO(Vu*L^qZwEjVvtNg_}2%k3G(PBBr>ot zBw;ncm%)#L2^{2342<Bw<<i>Dpm2ae(MNj&!v7G5q%&|ZWPptkgD8cD0S5yUgFk~S z10y_E16UXt0>MTHF@QiY10*Cu7#LU>LB#=>4rA~G)8Pye3{22;5Xk^iE6u>f5X->G z5SPl3$WWiekjlWskXFo)&X7^ekjcWxV8M{Zz=)|5t}q*<Fo%JWA(tT!8aevVcm*XX zC79PBu3})A4)zs#YRZSiEGYeBrV5zW*+^QUi9*1UAq<PX+ZdG5?UhB+42@L*M}|;T z%^>?(wYD*+5T`qkArBg*2rqAAP$fb$I6y&3J%oWlz>&chYEV4`1F}hK#Fzxj-T`29 z3a~hccw@{M7#RW>n4t-zkf8{iE{hpr7#J9&7?>HN7#1=_t8p^KGc06CaFAq3W?0CO HqQ(gT*hVWr delta 2351 zcmdm|H{G!Q)W2Q(7#J8#81Aq$RB|yeGE{Lfa57Z0Gt_V~us}GqAXXhnxSpM%fs3J$ zp^1w@jiDJN+yWAA<z{GOXy<0=VCdv#aAN2J5#8(zJ?sp<An86XhJJ<#Tnxet6G0YC z0*Orqv8He_L~$}q1u>_A1gEnz%m5iRlZ!!?VHQYuHi$cii$MqE5*>!QAl5t(F`u1b z0f=4*a>*hPu^2=w0TD~t8J4j#EZ=yjj7e|>BLkOfMRICENoIatF+0P`&7RC>7#UY> z7Gs^q$hc<mR<;zzwUedTy%^U`PG#TAZeqa5V5*@xxsY9PvH%yiuzylkYI2D+BLiDd zYMOg$2_r+$<n!z<d=Q>qR#9TQm9fF*0~|_>-0ln>JPhj@{23WcCJS<FPnPE57TCbB zk%wUu!)6|aEeu;388jy`X&SOKY~x|r&ai`rL61S7hhZnfE*^&6413ra_VO_7W7yBm zaDa#5Aj2UZhQkd0JPbz|N+<hrx#%5bIL6L!oQL5A!$}?ncZO3u45t~+@GzVOS#S<y z!Fh%YJPa2ZF7Ys2X4o@%KbM~36^5%IrPp{Et~1==VYta~i-#cq<j6n}5yVhDnUC8@ zs)(VOhas9Fn1>+>M1+BeAckN@2KC8;+zOKf*(W!0H?!PkWU!tL<_k`?<Y}1vl*dz$ zCq1<!C^ap$C^auRm60J-V{$*ADx>D)em*JjBAB>7T!l3wgU;j$e3DjJ<QN$Q(o;)( z6AKDbQ=IejN>cMm7#UPGe6kYD67_Qu^V0R5a}tY-C(8+li3${htSu}}EiQ4&PpR}z zVq`GVfW;V-f6``6-q+0aY79CIj10OA3=AR+oS=|qU}i92U|_t&z|O$Nz`*cjHv?nj zb_OOtt!)g<Ga2-EGq6N%XJEBrkz~=@#=y3XfnAbCOM4pwhY;sB2Cf4PoZ31&7`V4F z@JO<3(AvhpdyK&aMD1kYV`SLLz|Y74(z%mCfRSM)gO(&q{Z0l!Mur0nLRPH0yBUNd zC0Vs3S+_BWfJ_nH&LFmpL45iDOIq6)B#tp~>w@TQ43b*g7^I+Fscj6>TH6?8AlAs> zvIfN#S&%K;7-S?_cQVw=F)?gskl)6ju>Aie9WC9R42sMQ;kp|b7#LU>3>g?0ycmQS z7#I{7I2e=|_!*QLBp6f}6d6<*EEv=ntQj;IoES72G8nWNni+H$x)^jBCNbzS%w*7K zSjb?&u!6ym;T(ez!%GG;hEELU3`PtL3?2;Z3=#~=48{y53@i*8^$ZdWrVM5btPJPi zECz-z4CV|L3?T4@!IHs>fe{oD4Au-b3``6h3~v~08SEIC8SEJt7<k}v4h&2TjtmS8 zG7Rj07_8YD82>Pcu`@XRVld$2gEJYN!5(8|aA9y|U|?WksCQ#vWN>HjU|<BrI)gC- zBiKMzt?dj-8^J0-fxyMU#K6E{%fP~52lfQSR#pa21}_E%21W*NxB=Q=J_7?ILNgoK zM0X^Oj8Kg%3_kS?zEG<{$q?jECgwG8dm&nVkhC&EwK6jJG58bI8H`nD0Nl044D|^A zDkGc>@oyvp3qur=2?+lNBAI|NKn2}^cm@`R1gr)GF$6O(fkM2V!HIzp9J*Xu+Zj|3 zFsS)xgAyMTIPpQ;k;=fqkOnqJ45AVm1{@4b3?U3&42<wt4P{|u2m>1(4oW->5ey6r zpfHSNU|?Ycm0MssnjsiW$1ub))H6X7LL6AJGy@Yu5(6Vcaw<a_Lpnni0~14bF+&bR zZZSh13nPOqLp}o|9)$%Ug@p`^3`GpZ(8$q8N>S<vpMhM(z%Z4e9+W50lT!&1Q9BbH zAP}9<L?PhF5RJv&Z44Ud_DaDu*E29cqgB9>AquN*P29SXHHR@2L!y)c;pJ@%S_CxL zgL4p4JP9~51YtD^DOo@Q58(;8GY|;@Y)mN@2ca1g$iRTt90q1+`Y2;42WQI)hC~LC f9%hDkhSdxSYMcxy467MZ9V8ht7*;c6s&N7U*)VM9 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyObject.class index 4493e0692b7c873e0759e586a3fe5fcb88012bf5..2c0623b7012af8e2b75b17112751b68881c0fb71 100644 GIT binary patch delta 839 zcmbQ1Gbd+*i!h_{WLIHBF3zCTwA7;1yyVo$?}Xe1;XJ*pqQrD7Bje4NgqyiJl^9qU zuP|^jC{K=)kKol|;9$^Y5Mj_`P+-uXd{{n0(gG@P$-u{8#UR39%^=BO!=S)mJK03x z2&2>Fp9+?Yo|BCgZCL#oSQr8(KQtDe+^(p}8p^=J5C-O*P}F0MX5e6mnfzOEnq)Eq zD?<tc7egw8AVV61JVOS9B10yF5<}MHRZ7{6<zO9}%GrvI46F=I3_J|Y4B`we3~~&u z3`z`b4C)N+47v=>48{!Ilea3*QJluW$}pXQhhYYTIKxZ^S%z5*iVU+E)EMS4=rGJ+ zFk)CRxkzOa<Fd)DszI#l7+4wBPhP7fIk{BTl5yAM^{O$fhZxux4o?<POJ+PZxkSyL z@$%#?YR-&zCL8F;PZn1<Vtg{$OFf$N4TCVlTLuY+cazttmvVk$U}gBsz{T)ovW`Y3 z=N|@EhQAEl4F4w2(<owPW8h?DpX{rrJ=sCii&0>5x289v_+*f2-!#=3<-xvNr_VOo zTuYl#1J0|_(qT1VU}ZF%yjIJN(Pr{PWAVw{+7_%X3~Y?9lLgeYCl_m5F#1ehqixR^ zI{A&ZGh^Ij1D!y|w8>uT3X>P<Saaqv2s7q0NH7*mUZ*ZO`M*vKX9)u<V<`g{W7%XK z4av#1x&fSZ46Kax4BU(jljmtjPJXW&$=bod$=EsBSFe<D(&TPU$;o&0j2LHvU8|?B z&bScjKCa2d`s$3UK)lWC^vxI}w=r-sZf6i=+`%BpxRXJLaTkLn<8B6L#=Q)FjQbhF z84obTG9F?`WjxG~$9ROHkMStOa>io}>lsfl>|#90aFp>B!&%1D3^y3hGTdRj!0?>$ zEW<0t3k=^GFK)Iq)MXUC%fQZfk3o>}0fQLhLk0=PM+~xzk0;j~6)-*rxnVN1u^Qv+ z$y&xXjIxspO~fbH8LNU>qLX(Tt24?@erW6g;+x7(_A~+U3r!#@MJFEy^B)>3PUbO% U$cRq%gs@EAz<OjRUomw80Hkv5#{d8T delta 812 zcmbP}Gc9L>i!h_fWLIHBF1Dc5H22gJMuwotAB9}_AUwUSqQrD7V}s2%gqyiJ<r!EQ zFEVg4C`?X~kKom0;9$^V5Mj_}P+-uRd{RC_(iAFh#=ys5&LF~I!63<C$)LbsHQ7qx z2&4Vv{|c6jZj=8jh)(uXRA=>JU}5l`yii|wa<8H$YY+nqLok?kPEn6Ff`Nk}ax$aR zG|2=8R)$0dE`}rqL55@od4^O5MTRs6C5H6L8<escOTaqxm9rJ=7+4wV8F&~P7{nPG z8RQt67?c>A8PpkC7<3sL7>pS@Chu0Bqd1v?m0=1455rUjafWFOvJBH16d7hPs4>iB z&|#R$V8k$Ya)rty#>JDlRfAYpGq5tOnVh5=#JGL(R@E5R{S0gj2PXSzYfpAmvtT?v zxk}BR@xtU?YR-%|C;w9mWPCU|Ks}oCC4(@-D+URM*OTAqNKQVh9>e*bftBF{0~f=` z$wnHPoIe>@8GbQvGyI->M^|$4UX4grW(H11mdVnZrHs6jCu({#icJ2eCO`R)raGg{ z<c0c@lWn!M8CAioCM_LST?ST0y~&%k+!!q<e>4%FEU0b4>d3&x=rq|+JDJgQ@+NJ2 z#-Pccw4E8F!RCbO7%?VK4p3K^yh6vCGn+w}F^55dF?aGCol?$123E!*1}?_p$yvIY zoYf4hj5Q40jJ1>R=oYcIGH^1sO_tWwo?NHr#n?Z2qNe2JM|wt#)4-;h=&Li%o4in8 zc5<b@I^*)q3-vu2BR4Z}GHziIWZcRi$+(R{hjBZDCF2eTXU1I&evEq<!Ws86#4_$@ zNM$_0kjHqCp^xzp!*a&M4C@(>GVEeJ#&DGJIKx@S6AU*PPchtKJj?K$@f5==#<L9H z8P9EYHq>Ply~V)Jc$-0x@h*cH<2?om#`_Gij1MNa8Wk`;0jB~^V>QMXlMRe*7^NoX zg2`22@}r63WDXN`Mk%nWE>oV#{$O6NvH0XZ6IDj3$y-c7dOn(XFiK6fG6k_gsj|z| K7^>%@sW$+hQsl}2 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyReference.class index d87e59444a35a78dbcfa034787ef8d12464a2ba4..3c31012f483cdcbc7a72649084bcd0b725fbf6b1 100644 GIT binary patch literal 8060 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 literal 7825 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 PbC6`1$?$|>mKrAjfNopP diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.class index 985f2a3246d53b0b2fc9124ff00558cd3abc4176..33159275bbec4f0d7dc8539b46aee1ed3bf06367 100644 GIT binary patch literal 6616 zcmX^0Z`VEs1_l#`TU-oG4880OeVh!O4E<aToD35{#6*zrBoHwfL`-34m<ke}22wSh zi(v-COm>D@><qKn8RoDv%;jPbVCdywm<OWgb1^JnSjfe&h+#2^yM&8@pJ6FT?=ldv z9Aw%G5NjofwF*S61{u1BgJCT@!#a@6dXV4-ZibBvo7fpPvombrVo+u11@X6XGpI0Z z14(ZO5j(gUc7nK^47))3cC$0=VPxPh$<I#B3oa?j%uA2=POW5Q5c0`NEKAhSNz6;v zhlpD<GO*cX=4F=HF)}b~XofK|usG+Zq%tz_`();&`jzG;r51%GCgr4pH0LKL=7c2{ zWrFxnL6(w?%wk3cBcGI1{gTp@qSWG))I9ynyfppd68-#w)V#!kO#Q^-68)gm!qU{@ z5~uu>%8=56oK$N@240Z8D$W_1IVnY{d5jD$8ko)_#a#a+Ymf(+3Je$-m<kLT8T3ii z&B!1bRGL?knVTAxS)7@alj@k4mtT@tl9``Z%+9cnk%8MeKd-o?s5H4Gzlf26$1^W4 zwa7UqvA8(3n32Jrply!9A%6KONT#YFnP<(&z>=4ko65+*42~;aq!9B@Vq{<`sVqok zWMG5D8zTctc4l4*BLiy)D3Tc&Si#}Q$iSUfnhR!vgOpiA)02^bFE_E$Be5(sD7CyO zvjk*=hGrBa17BKBX>o>QNlB4&Vsb_*BZCN7z&SrBCp8)5X{a!3a!!6;DkFo5h9*HT zA~_ls%`AD~1jXfAk(^opGPanJfh9S=ppub+F_n=)4Jp!{K^FPtmjss<6yz6`q^7|2 zfRamaNn&!gZ(;#7>2ai$=Hxho&EaxMEhtJ&PAo}HVPp_PG7uqd&B!2JQk0qs(%_dL zQk0lioR(jd%gDf*3`&5E421m#jXrBe2F6TA21ZX%oD`*|GBR+$3}$5D$ShWIEi6sU zVPw$JAQ)OO6G5@TR-9S_j(AZl*#MNTS<4c0N<k?g9jZ`7LleoXkaS_q&aj`I;Q%9p zC9#$x(zpsZDOocz2o$H5AVnl7^%)WN42lkLP83MTFvpOzG~}OT&CYO;Jl}wGfi)w8 zG`cHLqMx$}k|{#+85y*Ra2zbk7#X;d6Z7CX$|M<*YvPmh^Gb>`lS)hSi;Cm@3sUnO z13dkcvQm>v;)~FVz+y%QN5a91Vum#&!b?jsbM$=^3&5ewgKQ<J;0BlRU?st+CDx1# ztno$p`6a{@hp2WjGO)zwCKjL?39=QG$585m%7RpArnEwGU~p=Q4Y8@v+RmDhp#({@ zZ(;%QnvwL8Xer2A&fv`Syu^~yqEtqPWt2q-eVhy`4RqkKo*I%*IH3tc3l(s(@X0JL z0Vf?UXsXT3&tqf|Kng{$3PuJOG$F#?Ln;Iy<v%EZ-O(*4%N&reQHwlCzOrUy$RswI z5w;kXzwMw|4ct}&*Gr&Qk2NC$S8#r5QF5wVCa6s$itb-MQ0C)dFk~=dWKbv6CW6|< z!*GaU77s%TLn;r$VTL0-41NqoJPiIIB7mWUk->nFIp~hyVF+Ld<Y73<5X%lSIDny( zkwGh(*f6qYWKaS50@6$bdmU?)%*eoxQ07`x1ZonABSawekyB}APD*MKBZE9xg_Q!h zEuoN?U!qV9tK=2Z@{1IB7>+R<XJ<IU!*G(}6g$Id9)>dv89WSUL4+YFWTHV{3IP$( z3?)1a=NQiOFeHLlNesz64EhWPj0_Bn47wzQm46Zs!v&Br#SA6v3>SGAE-_qYWZ(sR z0h~{QQ%e{bAYKCVeKPa1Q&T(=i!*{#OL!QrFkIzfxW;guhoOw2oQI*Ap@p5{2FOu? zJPZ*Gfs72oV53k|5Ie(7Mh06#u7suxq`DcYrO3!2fG`*m%!~}?q#FsY?#a>#u38xx zIKWLOa6^-$IJE>Ss!O;Cg?i806O^af3KEM_^GX;Q*b)m0QbBE6U1)g$4mpSitudQA z(4+-wuONa0QY0`kaHOY}fLrE_48kbQB(R`0O4<brF*2~Hr<VAE8{ixz`4C&7=0F;V zIvSp&v=N0tE&%C7X>K5;E?-d9%A5{LV`|7AhIj$R!%!hc2Ihj&5=I6KEXpAzH8{ke zs*ytsD#XaZoS2fr$bizsgvx>1pnTwfgr@c45=I6?l2a9fA_FG_69XfI9s?r-3n*VQ zFfhn4FoKFi21W*B1_lOW21W)(1_lOJt?dkq8yOfFm>5hL7#KkPSOx|q1{MZo22%zG z1|Ena1~Ue822j?vU@(FjU=Fr`fq_$tWiJEMRt9EtLv$E87<7>g;e;Dv$Y9C91a?If z12Y3N0|SEq$Q4@J+Zb51beOj>up-P7VqjrlU@&7~VK8UlWUyf1XRrjDsQ}RjHIsos zfWeBv0PI)+25SZz1||ku1_lOo21W))24)7QXa=TY2Ipc17Y0`_(+$LQ2Qxj289W(S z7`zy~p+3`r1`QL-8hE&{fsM8UTMY>lCaBen3_c9L=sKCvb-H5J=?4!@<mg~S_#P4+ z-V7`ZK1c?z!maklY5+UB0f7uG3_(~82w(_=MuigtBLfpC1!!$&;5fj*>7%^??t6$c z!WlRiBEY7IK~zGW!NI`95X4~4z{n8Hz`(%5z{tSIz{n875C{#GJq#>h_0C$`7`S}2 z8MiWUYi(g*KE@!Z4WhR(@El;^-O9kMy}@TU1ApXh27$=!41z*J+ZcqkwlRooV-VfO zAiRx1Y&(PaesDA>FeozcF))J@tQ-S70|P@m11m!U0~bRggCIi^gFHhDgCavJgAzj; z*twvz!pa~6b)*u5B10%c7}z9ds29Q+7#KtunEo)xvomo12gN@-11AF`JJ=@?41o;H z;N+?gk^yI$Z445K;DIELVz6D1!~u(;NCpr9r9_aLC~y{vh6l_B24-;THr3k3An5}N zi(?F0%(gNh*1kmy@*rBq$WQke1E20T1}Q&nU72kRtSwB8%m3d4#||V2)EGD!7#M09 zSQ+XVco^y##2FeG<QN(mlo*;A)ESx?bQ$Uyj2YU&&eLLGVUT0sXNX~lWngCDV^C#? zV~7XGjwv)KSQ!i$62P$u3KU)j=D!Sl><pZYa=#c@85kK7;jUi~b-f9a>opOsm(!Bj z#vl!IybQAA?_)TA5(6v4WCk9FDGcHaQyF9#rZFfoOlMGIn8BdKFonU0VGi8!vPh0s zfjiy=?s$Eyj+X^Fo`oTaAsLz`qZydMzLwF_-p(L9lR;E#3xk~Y0S3-3406jD*jbh{ zuz>S0B!oec$H1@%><CEOmw{RcDprFSVi_12K%vFTz$E1WDpyk&QlS>vK`mm_(%#A- zhn_K4F|abMMlzNSZY&!^8n`@TWJqVofM!t-Xz~*TIrbO>7l>NUz$zpUN{YxX-3B%i zk`x7@MuObO&cMXy$j*=nE*rTS7#Xq|7#W<38Jrmy8FCnMp-#4EU<QW`yOuU;Sqv!# z_A#(A><3!_2?}<o1q=-A3_%PwU^nJ5<U`$T46i1bw=qZ`U{C<L6;jtgLiIS<D2Q8O zRRk!*fSgwdah?kUBSR5GKGb<ACMsev@d6eT85xQhN}vWHa`AQsC3NRpLDCG%#f%K4 zL=^EikaWT-2NqDP6dDpcq4`B$M|&rOG84lA1{FWu;|wCZ8B`;;GpPCLXzT7|P-kWc z*VWp|puxltuBENBok0_nWLS`jx_b=V4EGuM86Gf*GdyHaV0g@+!SIwpkKq~EdQkr6 zW{_p5V5kIFkoxe*(PyY)s0J5$`V2J;wG2!Qbqov)peTf>uZOCyVQ64r0;gsU2F5=O z3hWFj42|HLpoxJ6)V_v#CkC3Z`9L{HOIvFvgEkXGILNh-ln5%I85mwNurj=2;AMCX zb{)tz1_nO3oA?-78QK^a!7hQM0FX#K10&SN4gp6{_W~o{wlV0S$D1tJ0*E2dcoT4B zh{h7>Sc-1!nj;uWpngT9m~9NYMA!_@U!de2#lRro$Pj|n6_P|4B;d#pfYlXTL}*4- z$6#YRv3Q0wV;GpB@zTZ64Neg~3=Rwo3{nit40a5A8SK?K8L}AmGI*$QG88cEW$;wv F1OUDy|7idK delta 2432 zcmca%JX@pw)W2Q(7#J8#7}jwyFfkOdGZb?&a59u|F>o@Jf`~GZa5;#m01=h!3{@cE zYLKcLE{0l$I(CM7c7_IahDLUVCN2g6h9VAzW)R)N#n8&o#>LRi&;jChaxw5Tbb<7C zgNPoGX}w$q44e#oAZ9;^m;f?$A_v1Hc819yMN>e6Q$eh0AYwW@!;FnL0vQ=+ZPsF1 z&cr^Oona0mgXQExR>jHsZ0wU*7qQGm;d4*E$(lQPEvGmyXK-eEUSdgUQ7R)tCQQTR zx11Sl8Vs6@4C<2wITS!<$nh}DW2on0h-Qf4VVKXbfQP}AL6e8U4MeyzWKUkeWh&y% z;K9SNkRgN}q|luqmytm$8fqlhWD)LCw?zz#*%_AbFf3(Q#?G*uhhYUnJP*T45TOAw zHVCBO8$<*#Wb-hrVpz??5CLLEGDPt(s4=KBGB7YQ=z^W}o||894M;&2NI?WhlRtw8 zBZF{OVp*boPGVlVzH?4~UTR`ePAWUYT1Ez2ur_dLa8Isf;@-T8XAdKzAwraEvOhnk zxGDo90}IG51_lNx21W)A22BP=2Cd2Y{9@YL3=9mQfM;NkXJBDaV9;S;VBle3WME)m zWzc2NV*t5MAF6%>zZ8;sO$H7IEhP1vaP=At1`JFLT9d!>E7pU|7h+&xU|=w2U|}#} z;AAjm;Ab!c>r-H0W?*0tfa(LW3>nnHb_*~VF&Hy2F_<tgfJH1Am>Ddi8JLP0tcn?| z8En8zTM*L@%(O3NaA06zaAa@-d5nR9L5G16Y)~c>%Nhm-1||lOJJ`TN)?m9Keq@5$ z&B)-);DV-=i5Xp|6IPwB(9roOfE=103@i+uNa_)x=>}DAFNmz(kAa23AFFzI1`lv( zHV8`FgM0yrtq=wdhETA2F$N}Z971A?gMo>`lR=Mxk->|Bfq{jAk%5nak-?k61LV8O zw*+InL1xG?urn|)#4xZj#4>O(#4!jm#52e<Br+&6Brzy4B!kTb#SSZj4Ae9w21N!R z248RpIzvOvZ*rrM47)#r2Lm&M*5r5zF-wrykWelFn*j-BnBM~!KmZh{AT@#Dv=sz( z*=Hd)a9UAg;ACK6sA6DcsAk|{s9_LisAZ62sAEuKsAo`TXkgG~s9`W>XaSq9#lXTK z$H31J%n-uB%)rN>$`HyB1`Z8Vs0&#c3>d<}q2b5Cz`)DE{Fi}`oq>~4?iT|q10zEO z#Bv4(hV=~043l>V+abB3pMjNO0s{}jL<Vt&Ner?KlNl5lrZA{6Ol8nvn8;wnFca<u zStK{8z};X1cY{7wH^_qAz`_v85Cw`F1_p*`1}28dr6OuzH-JKjfnh$_4oD2kK+R(S z$4LkSBLm1!tPD(24xqFi%@6}M$Buys90+V$+FKdqHo}uXB;hP)U}ac=WGoxpST=@O zaAxCVWQb#k2d6n@Q6(hTYzAwC#Hk=u8^{gp3`~5E><kIu?8?o+$dJUq$Y5E_V8y`5 zkj#(*b(TE?GuT<|TH4Ip7+BHWwVQ#BVGq~>h<Dkc7SuB^urqiv7=tr(DnlB`UEtD$ z37i%=wV1atNFQKO*Z}t@B<PNS&4M@<Ry2W<9>{$e5cgR#FfwE^q(R*WDsMpL9@s=h zxQR&qKa0gkMusegY^VwPU^g-_uxf2*P(pXlMI_Cz48h2dL$KJ1VPLq5q!n6X2{?jk z5e$2`F({+kD}|&PYOjDJLlDH#piGP8LF{V%8M2{)j_}|%1{ESK0w)MibObUm2sko$ zLo8)rU_dsgUXlot1RNRMu{wi`2+fG15Nu2?s&7&mShcn>kY)}8GeaIYz2!3$fayX8 hb8zL#%wWnelfg`llOd5|CWE~iCqp{JOa=!vP5^T52FL&a diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequiredField.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequiredField.class index 57c0201f320b44a49685f4e21131d41948d70a05..ceac26eeb59af399629e5dad32d3b49534cc5142 100644 GIT binary patch delta 292 zcmeya_+4=UC#w<z3xo3HjRL}xB{)?Xbtc<!I&zvaurQc0a59)r?%+&kw3+;Y(~{A7 z@&``Q$@X08tey-k3|?RzbzGXP{tPS(0bt&KE<M&z1`dX>$)C8UNyaj;GQ=@(F~l<n zG9)m_GbAx6G9)u7F{Dgh$eqnt2-cy%ldV|Iz{*g=z{60>AkI+7AjeS8pv2I?pw7_9 zpvzFpV9d}uc@57T#R&|o3=<i67$z}@GfZZXWthUC$S{>bjbR#t4#Ok{BZgU%GkIGW z7fgP~8^pSTft6w9WLLf*#x0X)@I^810NcgJug17%vM#?3qwM4?Fu5E|f_(m+-;_~y WvaSF~Zli$A<Te2<M%l?51>6AcU`FZy delta 292 zcmeya_+4=UC#yUI3xmSsjRL}xB{)?XH7DC~I&vB@urL@ia59)o?%+&kw4D5b(~{9) z@&``Q$@X08tZob}4DMhZbzGXPJ`5}jzF^*dE<M&D1`dYc$)C8UNk%cSGDI_QF~l$k zGQ={-GsH6}G9)l4F(gi2$eqoY2iBp$ldV|6z{*g`z{60*AkI+DAjeR{pu|wipw3Xo zpvzFjV9d}oc@57T#a;$hhCT)!hJFTdh6xO^3=<g?8748PF-&IAVd!TtVwgTTledL& z?&Np8L99y|SQ(a0cI69V+&Fm#Ulik3uw88YYK%K4>+;($N=?oJlgq&*$mierO&O&o W>k5G6HVVj0ZWGXAl$yLzzzqPD*hWqO diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseOb.class index 484e9fe7b0e6cbafec26f0821596ee1ae1c866fa..5a787e95d41bd69bdaea3c2a776baae59e0014d4 100644 GIT binary patch delta 2444 zcmbPkdBm*#)W2Q(7#J8#7(TEw)NwH|GSqW1G%z%>Gc<8Aus}G?AXW=VxD}+J4a92a zX6Rt(<Ywq%=;mf{XXpVDz3dEq><s-N=?Pp66B#CPF$geB25FfB5}V4-Fbzac=VF+_ zFq4ZxjA0fRLp>wIY>?m_c80kidL9?Ue1-*F3^EK0K^hl<#1^wNECE@!l#4-$VHrqx zIf%Q0i@^}&KtqO=Al51nv6`J>4TxUL#h}fw4n(X65gS0nMs|ix><pV38F&j4i;7c& zQi}`n^EQhz1~3V3VPxQPtw>HSD9OyvD`scdy19(`03+kJ&E~BAjEp-bA7@Kp+&Ni? z-HUP8<Z|}CtcC`R3`Udxv*-$Dr6!kHGcs@nrKY78rRF84PQJ(PE(qu8Wfdi+TNxW~ zKFJ}&$mhf0%g(TyhhYyx2qS~xWJMMY8@NgyhP@2?co_CG9N=L%2x1)qu?{mFVP`nX z!*Gn@I6K1$9)^<)r+64nGlcLkoMEV%JcY|y>MX-Kc82pj3>O$K@-X-?T;gH4%y5N= z;VQ$C$sf54Wv?+@XJ@#<!*G+~7D)Ow55paXyF3i{7>+P9XiipSQJ5Uh%`JPM;Q>3t zLmq}l439yop71a{Wq8KJ@Eop6-?gG7HLo}`KaYpu1;a~_qE|c&uNmI(FuY}W$HNfH z;LF1h1|q^4Di|5GCM&XN$?!0gGgR;}BrrtqFvNq1Xb=(35W&cxKDm%heX=u8Gs}BM z2J6X=yhfA%@YGK>;!>Yn$?LuOI^R*YdTj<n21W)W1_lNZ22KWJ1``Hm22%zGrd$Sg z1~vu;#<<-KjFH<JnEbT1F)+_$kl4+@61km$)rv)uMQa-a+cpMvNtO*-+ZZ^GF>vdG z=xq#~TH6@7jxo4^sGSVlj0`&&co-Q#I(9PfGBV6$(2``?$-u|RaDaio-ilRsH-kW= zB&(Jr>ox{KZJiwqLfaXHw=sw;|9?qq8-pmsAW=dFfz1(vnIjG|M`AmJ<TeH=h&j>_ zbEMJCsmE{;*dQ60L9!r&<hC=&Z(~q^7^Da>ND<8-?B*ze%-P1ED9O5$L79nRJA=wL z2G!;NFX?FM?qpD7W(cp>-N3-Wz`|h0z`zj3Aj-hNpv=I*pvu6{pvEA<pw6JkpuwQR zpv9ogpv_>+pu=Frpv#cJpvO?nV8GDCV92n7!HD57g9*ba22+L)3}%en3>J(+43>-* z3|5T640en$4E7A>3=9l044e!S3_J`L43-Qm3<(Sp3|0)*46F?GE8xrzFczZ)j0K8+ z1{(%j1_m(8j=`RR5zKO6aAaU&;9v}6aAI&~U}kV(U|`^Z%egWzF}N`>Fz7OH{b5jH zXJF*}!yv}a;Qouj0G&~fB*fqW4hlvFPX;dr1_mYuZw5vN9|m6rMg~&`1_omWMvx5* ztXkU{)Hi|^fI^Lnfr){E!Igo9!42$FurnA~8T=UhL9S*9fE%C<<})xbA~dtrgN^h@ z(#Z(b$-)rG5CpYa2WmAF^BTClY+#)sNIIFIIvE*)8A1r^j0Wqhhd39ZH5Be#WdCX) zoDA`AA_EIU64(TY0SNzwVKqP#-GFok7KRK4^LkjsA%$2tLj(g8ILMtC7{Q^-rL~<w z>i~nck2WZ^GJ#Vo#2vW|91MA2cZfk$Lc@TAfr%lK!JmN<9;s0*j119WlVd>1i6NGO zfq@NFGsQ75urPv(E-;<I5CNtW8Il;7py?nPtXP_Xi6NbVks%|MA)6tGA)kSXp`e(d zkfErUp_qk{!HJ=Sff0|wQjo$j21ZbE35^_m21ZEygOZdE!fTMIoeTCBdhk{f5w#1E zbV6fRz>y(=p#otqIPtJ*ZL4Ph7XXkTh1e^Lq#GKo0*(yv*mN`Kp*tG8=4gfrXpHJZ zQ!=a8HU|9-3=H)Q1gr*!D9B-P3=9H}4B=Q!G9bbkh=c$(rV8SqTn1zpk!B79Gc<iv qGt_{yWi3M*0|SE;12aPk!*+&LHBN?1hV2Yl4w4MH4BHv<)Hng+D}%!T delta 2609 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseObject.class index c2ea1b80f7a047635e8df63736a339a63e455584..3f5522c993bf6ebdd744fd391f6d6b619a6faaf3 100644 GIT binary patch delta 1198 zcmcaOiSha*#tj>#7!4<HlG5hl3`$K)ElSNxPMsVr<t_;4>17oqrdt^sZ?=@q;^kCg zU}0Lxz{#LId5uPas15@MgD!&zgC2tdgFb@}g8_pDgW+UD%>-F1s5)x~J_Z{G5e8cZ zDF!<RMFx8Y4F-qF>oi|8x=x;@Wy$C>`HGeeYY+nqL-6E{#=?^|v^7~H7+4r0!Msdu zJ=Qn|4u<&2bF`;PrZKQGq%&|aWH1OaWHQJzWHTr-<S-~P<WBb1$!4qq>o}#8t=PiA z%FxQd!_dYc&d|;v$I!u`#L&s0&d|l6%h1MP%+NPEOm~jrOa@klSqwZ3vl+x0<}k=I z%w<qyn8%>TFrPt(VK##i!{W)pdM%7AC(qCeV%^BV%CKqjd%YmWy_22vV_1(eurVB) z>}aAr`JBE5<Jrj%ZAB-`7-%tG1G8cb^ce3??luTyd_MWEK{V%k24RK|3=#|<Cp#LJ za(-oCW%$Ox#qfRde#1=8{|u~*3=G_ijFSzGidZ=rI2pMnuP`cQ6rL<+?9C`Ox!XW~ za;LF6qtfJ!#x9K7lQ$a6P8K%NWHn}BV>FrUXp+om4YqTai58;^nDxs<kI@&b&%@M+ zF?8}>1BJ=6O|3a&8H5?*7$g|uCp#KSPX1vU!<o#$%9z5y#h5yIzoF#hGP3~ATn1Lg zJO*yY{K<w!l9OMUMY5JNa57d*USXs?xzOB;v2n7TvE<~d=0=PiU>npe)EOsC-e@d2 zIm1GmaVD6x)<TzcAp;xZB5?R{Sz0iz1iLH3Qj2jDm^H&vk8w9x|1(P?#=~G2T3T6i zo@NkcJi{Qtcoyu!X;v|u7a3R?FEMa2UIx2R#5#cUHUlf;9R_a3yI>c#Sx2%yW#D9d z26iF8jThs4unUWAj2ORxZ8&P9&iD`PE;d_jMs_gE+g6vApMi}@0PMmQwib-ylONjJ zGb&70v~y<E1nX<DGh#FZyX?B1HK!$mFq0L71d}z`WhVA9oc0W?Ob!fOOpaieZL$yG z^kiUV@?zj-@&>z1#UYY4n1Pci1njc44qlA0ljV#hCJQ(kGp0=LHjtZ~<fy@zGkK%2 z#N@?}I*g?t*5((EXBg`n8914m7zCM`86=rn7<8Cg87!IF7@V0p82p&J7{Zyl8Dg1w z88Vpq7>b$t8LF8kFtjjDWLUy9iQy2_WQJ2rQyDHXO=GytG@ao$(+oxtrkRW~OtTqP znC39*GR<Z5WtzvB%`~5}m}wDXInz?cCZ<J<txQW9CowH!$Y)?+sM>7oQp6~_iGiJI zGlL-0Rt7PqZ444j+Zkk;c1+&oTEMsmoX_ms)EEy;PIa?kl%0IvO?2{hH+3)z#0TYL zeRoqvS+L6e9z2s<+##}}lMg~!;*&g7p$hcf`6j!2fE46=z_jo8Fow$R_u!n&@96{p D`5#kY delta 1184 zcmcaUiSgnj#tj>#7>y=xlG5g43rbCMPc30&2$~!x<-!Ny>17oqrdt_XZnl@s;^mZQ zU}0Luz{#L6d6Pzgs3rpkgBF7bgEoT#gARiZgD!&wgWhCw%>-F<s5%P<J_bt$5e6#; zDF$l>MFtxN4F=oETQpxYI!#`nWy$C{d4ZPb<o8<Yto{rv3;~l3-9#qqYiqEEGO#d& zfq4bmx~$O*91Jm&7imwEOlDwZNMYb&NM#UYNMn#^$Y4-p$YfAr$eJ9elg(H@d7`86 z<O@34ij54c3{4C?49yJU3@r?D46O`G3~dbR4DAfM49yJ24BeAsbmu5eV_;>N&cMSk zgF&2OCW9=)ECxk}*$iq7a~O0OW-u5rESM~**TT4L@;tpD)^!Z54C^O<)eB<WHQ7Ty zhV>8w8^htrEA^8ZPfg}EuxGqH+1J3C@y_Il27!!ECO4WYOlCH;=6u5-%<z^$g5lj{ zMSID~35GG8pBPvfJ~MDJe3{H>Ejjs~VF2eJ23Cf@4BQO=CJQ=9P7W}NWMyOEWMrSb z&Zv}8U~+<u<YZf8BS!Jb6Ak1i_ZzD-%1@r?C^7lGu@0jKl*Kw((nOQhfPszCaPmrh z?a4(Z7K|2?SDV-~I!=CV;>_p;*6U|##27TW(KMPfib0q$nn8jw2JEVTrZJoe46KZa z3|x#!U{}?c1#o6Durg*da5LtBUG>f^lC^|^ld*L2IwS4L<>p?Dbzqm>HaB8y1)HvG zq0ZO~c2BN_4&yX1Ym<c@>pTWF#`$1Z30PV%E}QIWY0tQRa;K#;;|{RCH<m_>2f*QF zZ)MGSf<c(^B!dLwDX`1tSjBLjV_;=G&%niaVKSq2Cg%+XR>qqQ+>E!tuIjOlWPQZI z$@m!TDp4CR#y67_Y`hsigH1kdqt5sn?2Z6i*2x04>WnN<o*pX?0~-@B*j4LnEf_^6 zKex4Kl%1?@=gg=E*4t%g#Ha^$)m=MlPBR8!CUXV}CX306_NAOQ46IDH3|vfh;IP_Z zAHeCxz{=##z|G__S<s<~HGqMWDG=<U%?@6SQIivFBqobF8Z#zNo@gL9Im1zdF>~@n zM;FGT$rBxAH-C0K&RAc^z{yn4Ajs6fAj#Copu^O}V9C_X;LOy@;K$U?5YE)W5X;oX zkipc=P|VcBP|eiK(8AQmu!O0f;SkdVhEq(F7%nkQX1L8Xh2b~TR7Me|X^b*VGZ<Bv zW-{tB&0_Rrn$4KaG>5U6X+C2)(;~(urumGmOp6#NF)e1uXJBBc+HC1k#3;I+ft_gs zgCNr;1~I113=&LR7-X5YPCnpTz_@d=p_?V+-pSc+HjGk}-@A)W-s`3gW{FS!<EF|e z1<rT&9(<FX-9h4@Tv+FB3|1jJ`8ZhYy*o%RNXFj76e`o@fl$pe`63dJbF!$X697zH BNm~E_ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseReference.class index 7e5725e1953997f1d8ecfeaff4039f0e1787219a..39915e448893a89978c8c278ffcd624cf8e7e24b 100644 GIT binary patch literal 7967 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 literal 7723 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 DU(+-o diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseTuple.class index beaad7ffd3e6b6441c40ba74c759df7381de6dda..e2c238b4490183437d57d7cc600e96bb96d5a33b 100644 GIT binary patch literal 6565 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 B>y7{b delta 2396 zcmZ2#{6)R~)W2Q(7#J8#7}jwyFfkOdGZb?&a59u|F>o@Jf`~GZa5;#m01=h!3{@cE zYLKcLE{0l$I(CM7c7_IahDLUVCN2g6h9VAzW)R)N#n8&o#>LRi&;jChaxw5Tbb<7C zgNPoGX}w$q44e#oAZ9;^m;f?$A_v1Hc819yMN>e6Q$eh0AYwW@!;FnLJQx{gZB}Gj z$izOIona0mgXLsLCgaI}Sh`u}LO3Rq_p@eBZsru{<qXbD&r2*RElOo%$eirRq%rw0 zXDXWpgC-+``s9zS>WVxJ^BC%R7@`?sco^n0EZ|{qWzghda03zU4B3nfx|2V$DooDj z<Q3y#aA)w~VOYoz!Vc2m&XCK<pcM@^^C4G-+aiX=><mkI7?v_DV`o^-!?1!Oo`+#2 zh|mC;9R$+r4I+XVvUwO*F|6ichybx78KQU?)ELwm85kHDw7|CQ=jPE~15%I$QV;>s z<j>&2$RM1RSeB@tlbDyT@0^pLmztQAlgiGpcC$UtA4Wz)kas5U;o+Jr!_OI^%D~9L z0y36?fkBFakwJq&6J$IC1A{RGBLgD?0|Tqpb_T|c3=9lR4B89~44`mkV322EVNhVu zVPIh3fhc0oWzb^)xlA8oz~owfsd|KZO$H7IEhP1vaP=At1`JFLS_}*fQ4Gus%nS?+ z0w4>uw6`&^Xz4I-V_-$tEyTbAb{GqT2?HmCDFZ))8Q4q(h(4&93=9Gch79TqjP)SH z7>pQ<8JHMM7#Ki83>FN`43^OhOvMaV#SGRAHejYLh-n9A+7~l8Ft9K<GB`nlK?fQP zOe|~QVZa9Vvo+Xmi2s?Ob~7?KGq}KXPM#{j4-Nx}dMB*vT_NEG_7@_+*$|$F1h@wS z3xg+;0jzKf-LM+K4mAK2un-gc7+4tmv6|q{-~oz)$-aWp_J}A8Vc=j01*;chU;;-x zB#Jp0m>4`6^cWZ!ycif5SQr=?_!t-&ycs+|-k!W%Fvc5Xh8zPs0|P@011m!;0~bRa zgCIjZgFHhbgCau`gAzkB*j!Mwu`<X&O;ch}Wbk3|1qZD&)OUW9{e)!L{TVzMm>IMt z7Yd14g3N{lX93s@Nbti#BY*(}KyeLH69`U_K~R?+5OM=Yh8hDW0|P@911m!{0}n$D zgE&JigB(L0gAzkMgE~V4gDyi2gE2!3*mNxh76v&6euiL%5C&!jJ_c2WP=+vYXqZA> z$jV^A5DpFvKL!Q{UIymB41DYioQ!h67+4t?86qH-GcYi$XJBTS+$wAr3-STP4gCzP z3=<f57$!1^GfZNTWthyM$S{RLjbSQ-4#PwSBZir9H^?HnK?Uvx6Sy1nVQ!eLAR@vZ z$q)sO3u_Twu#Z7u!N4#dY#JmkWuQ74z@Z<)z{mh{Ju3r~lmjRYMl-~K3}9ejuw!5X zdzVd1dn<z+G);jM11L!>XJBPmfn+Qj+*me-Sa5dZWMqhAhzF;x4<brPuGtLM28lgE zs5X!r*cq7k9N8HXz!{dCfsrAJfsw(on8AvHks+BO1?nt&24=9c*tN7#O9)6(-_5|r zum@}b#JlWJ3+fpd*cm*bC0i;(8pvJXjK>5{b(~tv+Zdz|Feq$5%jrkJW<eYaE4e_4 z4CKBHi2JM=7#T7d(xC1Gl{lcX6KtX)+{6@6+(TmHEEXdf8L}9%p(f}<iyctutAy^J zi%6PbNuQA+2U7A(o+u!UWYJY5wa`*Zz!6lVU|6(`K^fg5DJ0EMiv%1Qf*`I0<wv9# z#je($AsZUX2p?@@P$9x1a0&ngRv-g|fFpx9#8L(Z24sWuB#AIdz>&cn;*81fCBzI7 zk$}a?h(ZmlD;MN=kgiA~bulnA<bhL9K0^VRE@UtVSFOwprVKL~%+xp;5*cPP*sF0e Mq%+K9a8Tm}0Ib6WEC2ui diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaOb.class index be61b94982e001ef8ef6fbfcb851f62a7a7db4ee..7037bea499e8ae0cb6f2f6b2def21d497b61a42a 100644 GIT binary patch delta 4364 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 GjS~R=goN7w delta 4500 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 HO*KvcHVv+G diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaObject.class index a1a90d0072063c7d0ec701bd72f1ee6f003558df..d82919d0d280bf440ce4f1de6bdc5e2b7ec8bbd7 100644 GIT binary patch delta 3234 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 delta 3184 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 J>DahF4FJv`{c->R diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaReference.class index ca2177aefbbbc00d7b4b27d77d9537d760391ec2..6b9f4c14f5eeed532726643dc632c099a806e3c8 100644 GIT binary patch literal 7905 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 W<7Ak@@Qq=ngCxTohHngW)i?n_nR-M3 literal 7655 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 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaTuple.class index 25b030c211f37975fdee89f5bb769317b94a8a13..69f73ad3235e3ca391c60483af97d53fd4ad4d8f 100644 GIT binary patch delta 2863 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 M3K;e>c&c#%023!`cK`qY delta 2848 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 A+W-In diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ScopesTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ScopesTuple.class index 3b734e82ab5d2ad00f0bf1372756e1e0e693b2cf..0d75d2f373552bfbd5eedfe93e4d7f4dc875e0b3 100644 GIT binary patch delta 300 zcmeyU@=;~OTuxRc1{Mb8$%{BG7<DG!=5*sVWnf`2W8h>kXW(P7n5@TD#b`TuC6^_m z%jCygHmqI@EDYY0Rk&?f0~lBs0w<?(JF<o`a4>{VUd=sCGLC_jA)bMYA%Q`VA(26z zA(=suA%#JSA$4*TPc~!G<YPQ_iZu+Z47ChA40R0R4D}3h3=IrQ42=xx3{4EW40Q~~ z3~iHBdFLojWME~O#K6NanL(Uk3WF@eR0c(cX$)!%(;0LaCNmf@%$}^oH;HlK<gI)` ztScE<8CFf+&o4h&o8Opm>*RR;Xx6<9tPJ}m@8=I<JUKa@Uw^WrfHvdV$+-fSj29;_ s7qDTJovbJ*I{Bx7I+z9G#|e6X*`ky82!celg=8iPX)(%9))sOD0Lbh{)Bpeg delta 300 zcmeyU@=;~OTuxSb1{MZ|$%{BG7&Rx~=5*sVVqjq~X5eHnVc=shovg=I#b`BoC6^_m z<K)L&HmvRpEDRo#Rk&?feHmC7{3fSzJF*5da4>{SUd=sCGMa&vA%=mAA(laqA&x<w zA%Q`WA(26eA!%|HPc~!z<YPQ_ij@qk3{?y~4Al(c3^fdL47ChO40R0Z4D}4U4Al(A z49$~MdFLqhF|ac9Gw?7>U=U}R$RNuwi9wNJGJ_h!6b2oJ2@FOIGbStXO=6rkc`IKK z>oNvbhUJs@^UF`x<~L^CG&!C>nspZgE5q)|`}u<yk4=u}*PrYtpv`z{a;|_S<GIPp r1#B3lCMybxPW~yN4rYP)ae^LTw&>(Nf*?_CA(=@+T8vVYwT0XOU>Qa% diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.class index 40245e5a2152bb1df6a844161241c2eeb9020347..d16fa7c5ff53c43024d6a0ea463115963b9d2c18 100644 GIT binary patch delta 505 zcmX@+d(3x3iG-#y0|$dD13!ZrgE)gagBgPcgFS;LLp*~PLq3BxLoI_2Lj!{@LmPv^ z=D8B#jH>1g91NBW{0vqMMhw;r)(kcbaSXN$1q^l!^$hk5O$<&9-3-o?C8f5qdNQyu zcun3YBRctolsRWG0|!G0g9t<DWDRL2&Nv1ZhIj@phJ?w*(v6I%ll5gpCv(ZDFy>6w zm$6|jVqjq?2J38<QD?1SU}317yivxHwT^*<p?>mrnQ4-346F?83|tHy41x@u4Dt-! z42ldr3`z{Wlb6Y6GtQd4QAT*Os$90>5(ZX=r3^d_%NWENmNUpPtYA=LSjnKyu!=#K zVHtxl!@9{E<>n~vWMF03#lXX`n?amm4}&bjUIs;meGF<0`x$f?b~6|;9G;vfpT~G| z@?Cik){6{m43{QrDI_!AoZP2i&-iHaIR$6N*ONag%TG2`G-CWbIYlv=^EZPq!yg6- zhQE_fD3)+BGBU6-GBI#5GEa6>%H-r`U}fZC;AZ5VyhEvoRg{5~QEallaw((y<fY2q zjB1lVD!Vc2fxR$6g==!CiaMh?lxN6j4Gxy;Dk_ZjlmDpLFv?E0R0WY`U=rl*W2&Z% YvXlS7`95mKjIv<;K5Cqk=cs7`0Mx*JmH+?% delta 505 zcmX@+d(3x3iG-#C0|$c=13!Z@gE)f<gBgP=gFS;9Lp*~zLq3BBLoI_QLj!{rLmPwc z=D8B#jH)IK91La*{0!y{Mhq4V)(n;maST=r1q{{<^$a!)O$_!7-3$(sC8f5qx-qaY zxKG|FBRctolsRVr0|!GOg9t;=WDRL2&S(Y}h8PAehS<r)(v6Hsll5gpCv(ZDFlJ8H zm$6~ZXJBC{0PAd(QD-e>U|}emyivxHwVHv0p=R=TnQ4;E46F<-3|tJY41x@84Dt*e z42le$3`z`Llb6Y6GftnpQAT*Os$90>LIzfbMGQO)iy6cjmN3XMEM-t)SjM2vu$)1c zVKIX-!|KT!<>n}EV_;?2&cMU4gF&2OCxa}*E(S%0-3)3Bdl+;Wb}$$*9GILZpT~G? z@?Cik)^iMO4Cg0nDI_yqo7|^h&v<|GIR$6N7n46K%TG2`G-CWPIYlv=^9O@4!%qeY zhF_CUD3)+B{9|Bc_|L$_$S~PWDU*|fft8Vyft!(Q@(!gURv`vXM&Zf&%B74llb0%c zGb&I1sO-k54fetW6|TvlD(Z|TP@W;91vpr)tEe#AO#Y){!zeY`QWZp&fk}|JkExn6 YN=^O)=liG`GfIK=`>1hFo};D(0KL6_eE<Le diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.class index bd40c25ab01899cb67f45232a7f1579c60192b1d..4d9dd91cc1f666a48d0683afe84e5031759f8047 100644 GIT binary patch delta 439 zcmdmNz1e!hVF6Yp1{Mb8$&EsylkW<cbLuc~Fz7OfFz8K|6?Eq{XJBElVBlo1WZ-A8 znp`M2h0%VpgOKQCX(1Ixx5*AdHmp7jEDXMr8-;9GgBVyCg2Coo7t&#kVBlbgoXjCS zO)`Ojl_8OViy?_YkRh2to*|V%ks*yii6MRRcHwNslF5xi!jsKJvK8wXSQ+XWco-TO z#2FeH<QSS5lo*;B)EQbBbQu~Lj2Sv69}=0PIGKT!VG08e!&C-whG`744AU7D8D=o3 zG0bGpVVKHb#4vYqy=V*L;>j#xL9DA8SQ*w#jus1I+&+1oSPbia1~!HRlljGy8IMmc z7Pn`-FnP1MGvm$4-^BwNA5Qj^h~|9BAk6TJL4x7+<h2r|obMS}89p#@F?^h?Et$#r zlYy1t7XvrL@5yr|i&&W%I2l<ci%69+@=orO@@5p7{9Rmr@>eN!Mj5b=45SSiRiP}d z$@S9ejGExE*(0sOs5|+gv<;)|<cBh%lZ|E6p{xQh3ltiwWlX_hAT=Pqp{y~ZEZD3H GS!)1w-EXo0 delta 439 zcmdmNz1e!hVF6Zo1{MZ|$&EsylkW<cb80ehFlaG|FlbMf6?Eq{VPIh}W#D8mW8h~n zpIj(7h0$iRgOKQCX(1Ix=gAI2HmsfuEDT<g8-;9G{TWyo0>I{67t&!3W#C{4o6I3R zO){2&l_8FSiy@vtkRgFVo*{`rks+Bui6Le3cHwNs!pV(7!jsKJvK6ZtSQ%;<co=FK z#2M-s<QVE1lo%Qq)EOEXbQx+Hj2T)d9}=0PIDvtcVIl($!z2cAhRF=F3{w~s8KyF* zF-&97VVJ~V#4u}ey=V*Lg2^mmL98nnSQ%DMjus1I+%kEcSPbhP1~!JhlljGy8IMdZ z7Pn_SJ9)FXGvl?%-^BwN?@jiUh~|98Ak6TbL4x7M<h2r|oNpLd8QwB*F}$0sEt$#r zje(WnI|DbvkI8c-i&z;LI2joyi%69+a!u}%@@5pA{9Rmr@>eN!MoF-b45SSim7pxH z$@S9ejB4Pp*(0sOs5SYav<;)w<cBh%lZ|E6p{xQh3ltiwWlX_hAT=Pqp{y~Z6xgf^ GS!)2Igl^6N diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.class index 59c9af6c5c2816a27d8b0efb4467d3f5012a34f3..a8b370835e4fc161927b691918a90ff404ff4fb8 100644 GIT binary patch delta 293 zcmZ3iv{-3_4kxP;0}F%lWJ691MxDu7oQ|BP3@i+044e$+leciDGulj+;j(0Oo*c$y z!|KVv!r(R8kW+N>8ZLEKe+CwY05I<@mkw(v0|!IcWI66>lCcb|3~>xx4Dk$t3<(VK z3`q=%49N^i3@MY(a%VFZPB!Eep6tVutys;#%230=!%)j0&QQl7$579p#L&Q?&d|u9 z%TUW;%+Nad2G1PD2@I?Z6B&3ICNYRJOlFW}n8KjQFqJ`#VH$%D!z2bHhFO!R^0qK8 zm@LH?#JYlkm0{)NLcSozEt8M%MKSIGyUv7Pg>ld1NPZhe*~!zu<Yh1ka)+{jDWmM< ZNCA)>i2p%=bMhtuEk;?eD?bPr0|1@JLcah2 delta 293 zcmZ3iv{-3_4kxQT0}F$~WJ691M$O4toQ|AE3@i-B44e!mleciDGg?lT;j(0Om>kAs z!|KMs!r(sHkW+N>8ZLEK9|jf%Uoh`2mkw(X0|!I!WI66>l2Ht-4ABf+3^5FX46zLI z4Dk$#3<(TM42hG^a%VH<O*Z5dp6tVutysap%23I`!%)Q_&QQ%D$56wd#8Ati&QQmo z%TUE&%+NIX2G1PDUItc%J_a6!eg<)d2@J9f6B!g4CNZcnOlHtw=w~oum_B(bZwuqx z$x?hltV<bK8J0~h<O^clIQa-)6ysK~>rD7n7<W#N<hNmznmi3mUIvpOcPI;(GD=O3 Y6adMA_#Xr~CvOtaVw3{A@`Hde06*hGBLDyZ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.class index a24c699be22ea92fb88751f080f375910dec4c17..d84f58b2432e40495f657251fed77b311c911a23 100644 GIT binary patch delta 261 zcmcbqb6;nJ0tchnWJL};F3zCTwA7;1yyVo$r`X*E;XJ*pqQrD7bK}jsIr=$5l^Hk~ zR2ldg)ELAW)EVR$G#JzvG#PXmv=~eov>9v|bQoM1bQ!!E^caE}^ckWU3>eZF3>k76 zj2KE8j2UVeOc+`iOc}Zv%osK@m@}MVuwuB%U_E)h;2c&*1{MaV$qqsmjNX$gg)A8Z zCT|w9WDKADR>+1mmVt#KZnA@r=wxSMb=G7C7KRisuSHmgHIspZA#3th;VX<Y!D918 rR2b(@J|benC_9-^6hewl4i;5sl$~5H>cJ>GnOjU|@&i#VFv|}BM|V9B delta 258 zcmcbwb5m!70tch{WJL};F1Dc5H22gJMuwotXW3o&AUwUSqQrD7bJNWSIr=$56&N@e zlo<FKlo`YsR2bwKR2kG5)EIOb)EP_}G#G3cG#OkNv>3b@v>AdKbQq!-bQ#hZ^cZp( z^chMS3>az{3>jJ&j2OBZj2SjEm@u4SFlV^RU@>{A;2c&v1{MbU$&I4IlOu&x89gS~ z3t2MyPTnbG$rv*EvycsI6ax!GG+5qUSd%q@frTLv%<B-=V@+e=U`U_5Tlfm&G_crW m5jDnHlTV4*FiK5k7X^_nV6suvgHdX-pqR|$XQEnQmLC8-^gHbU diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.class index 3fe777be59a822202de1c92404a883fb98acfcca..056f7a9bb7b071fdef04fb4a2cd173f3a8b6b585 100644 GIT binary patch literal 15182 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 Xq#7rqG~+Zz83##5dB$ms3Tm7HK+UI? literal 14254 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 AV*mgE diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.class index d5ab3c44a2a282d09e0bd083d90cc60ad62807a6..569bc0cb8560d319c9753ba39c163f517836a4c9 100644 GIT binary patch literal 8153 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 literal 7927 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 J3BxQkP5{q+g>wJ^ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.class index fc981036f7ebc07ba272bc536f7a3b8e696c2df3..8e27b3cd8069f8bb7e08d85e5e42e1c32cf3128a 100644 GIT binary patch literal 6667 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 GHBJDxk`zGz delta 2462 zcmeA+Iiyj4>ff$?3=9k=4C}ZUm>7!K8Hza>I2lT~7&sY9K|~oyxEw@OfQU+VhANP7 zHAqzr7eg&W9XmrkJ3|9ILnAvw6BmO3LlFl<Gl*{CVrXS(<6>xM=m2p$xfu8vx<Gon zK|~M8v|cU)22O@P5VIddOaPfWk%M6pJHup<qA4K3sUX%g5HX#dVaCQAQH+eUHXAdo zWn!7l&M;^4K322IQml&^=T6?ox=ckxL(?ZKu`E$PCowNw-#;lUHMzu^k%2QfGd(Y{ zq_ilNks)*PK~{~);#}Em8Vs6@4C<2;`P3D880In5^Dsm+#PBf8XIQ|);L4!M!{7!Y z+!?YN8H^_{WK)>@flE}xoxy{LVIe~ZJ4n4dLoOqORy5c|NA3!@MGTAC8J6%cEM-{6 z&aj+^VFg1x55r0jp#d^E2&C5=L<BKp^DwMpSk1!_0b)fmMDZ}FF{m>#FfcM0K<(la z^H1VoSOZd&1yU3N(&*3NF}a6Ff@LiugYD!%e#6Z-c}_4+4&b-0S7l&iU;!Dzz`!8I zz{sG%pvl0<pvAzzV9dbCz{tSBz^b*KfpH@P0|OI-HUk3#C~z4V<QZ5P6c}_E7#MgU ziWqbm^cX<y(1#mf&cFng<J4l=%fPgiff?NpO$H7*1}!90IN_#fFc>f}F=$QJ5KycK z*($`q0(KG$g9!sCgDC?)gBe(#0s}Jx1A_omABbhhpboZGfWe5tn1PAGgn<DpV!^=7 zU>VK8RLo#i%wWx617_NSn08>MeKCUr0}F#AgA>&MI#B;-GO?_I`<@MKwl&yph|igz zb~7?KGq|8>WnxCx>4a6MD<sS&8w!eneG3U=4+a(nPbBrMaGTs9>cJs`h$MFO@bzP0 zVerRlfIEW+D0mqdz`kVyMXT0!295&^obEo_8{oc$xFdvtgCP`bj2Hu0DbyVt3``83 z40;TV3|<Tj3@i+c415fX4BiYLpir31D-;9viyQ+x0|P@011m!;0~bRagCIjZgFHhb zgCau`gAzkB*j!L7vNFg(O;ch}Wbk3|1&6dV)Gj{;1_n_Erauhw><pa$K{3P5z{$YK z4z|*t!GnProM!bwGT=13jX`3A9o!?3Xe$6)28lLUU<NRN04R}w)C7W)a1hiBYQk<{ zFQ_qaGB7YyF|aaJGw?9fFo-kMGRQI1F(@(AGpI8(Fz7PWFc>qmfKAt8U}2DB;AaSC z2w`Am;A2o_2xSNZ2b(F>E36C#4B_Bl19^&<f%z{3A3FmlquehBRt83f2#Dnj3=HcT zm>DL&7PdojLq7v6!vqE%hKUT~43ijS874C*GE8AmW0=aI!!VJ-h+!t&4YEjXP=UL_ z1nvfXtZtA6xq*ctk|7EdhYSo1(F{xslUInSf!zQKAqIx|U^^g5K?Z6b132<R7#JBq zeqv={l5zm0%V>res5y2FOyEFZ)6(9`Acvk%mou<3tUxlB4Q?zOLo7J=axyZ+F~oz? z?Bp;}C09_90CCM`ur^4X3PQDk+`!Jj#OKJ)kO0pA+zgBiNeqk(mc<NK42%rP3@IRI zP2MXiVG1${lFWBAurcfbn+EY4JJd7=26hHdXla<rkOp=Gmzb0VNGHS%N5HxuZh#eG zpcDnNHUna<H3K6<CPNz7+88k@q~JV@MKdEq7DF~jEdv7sB1vy&P(ox)h|L#~G{aIf zBSQ|sf~cN>;VP0=Xc;Ep2&z{w?A^wojBc+Kl4hvA0*(wpSR4(?hiKVQib1Cyz2XpX zWbkLm28At(m$xyf5MebqjzIwu$iN`r$l#6D8Is5b)q^TF?4EGP>I^Pq-8eKOia`NK z26u*BEWUvm6T!g10CF&>&c&=m5ydGpLmoKr@)-)ibRmN|xSnQaFlCs@V5Y{&kjOBT Q!CsA%A)R3+gM%6;0BsBah5!Hn diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerObject.class index 611c37b29e2d6c73528f74e5da588de9dc028a34..b358937ca3210d27ca9a4858786ba895caa721bb 100644 GIT binary patch delta 699 zcmZ3Lu_|N3J2^*X1`Y;Q1|bGD25AO$22}<P20aE%22%zt23rPgh8PANh7tx{hAIYq zhDHVhhE4`Uh7}A(40{-i84fa-F`QyB->fg+!Dwj5z`@|az|Y{wAkN^#Ajja$pvK_B zpv&OO5WwKZkj3D^P{`oPFonU3VLgK{!wv?&$uAV<vxYFRFoaI-QH<b?W8h$jXAogX zU{GL4ocvKSSTu`)g&~`PlOczJk0F;qgdvYXnjwF3q|y<_lF4$)mW<VtBb04e8yQ#_ znkLUwwqb2&U}5N(d`sDpwU>c|p>MK+$~4KT46F>(7`PawGYB%wV322+#h}PAn?Z?T z&gAnd*^DbETdUS7Zf0O**uucWu$4iaVH<-S!*&KGh8+y*3_BTg8MZPQGwhvwOLdOo z2?kb%lMFlzrx?T;PBX|doMBL8ILn~MaE?KT;S_@r!==g7)h03Cn5?B9#QK1NmEqy! zM)e@ZH<Q~n^d~cG=&*iaU}g9^xlvtya<GOG6C=aqc8wTT4hA+x&dDz{k{Jai`)JxT zN>1+4bY@hVd_gmiQET!6J%!0mTGpIK48n}Y3=)hcliRdPIV~7i87&#O7_BC=XlHUd zF|aZ^GjKDyOfJ(dV)bF*Wb~c<R=bojY%-&v<m4J1BgWXt7c}K3pVLuiOr314D?3?O zSDi6$vbC-oYZ(I@WBKG48rqXL>RK??O@5_o&)7a$OV62c0$5M4o)P1W$p`eJITtVp zGcIJ1U|cj=MZc7D83QZhat1EO6_Xd~XL4>}U}fCMz|FX6vWP(u>n;XP#@&<OYHLs4 zX5htmWHO_nH{)rrX*q`KjF%@{>q<^uYpBh52h93psLl9bvYe46<CDn|MmCJHlc$2o fOJI`U*n?4aa)dER{Eo5A<c-E!jIxvO82bSLwdk~2 delta 699 zcmZ3Lu_|N3J2^)M1`Y-#1|bGz25ANr22}=C20aEf22%!g23rOVh8PA-h7txXhAIXf zhDHWmhE4`Oh7}C@40{+17!EQRGn`^D*{m<$!DwjBz`<b4z|UaEAkJXVAjjaqpvK_H zpv&OI5WwKfkj3E2P{`oMFonULVLgKv!wv@T$uAV<vj#G-Fa%BRQH<b?X5e6mVGv=6 zWl&&<oBUBRSTvo1g&~81lOdCVk0Faegdv+jnjvR$q|y<_!pU;VmW&mXBb04e>lj!V z>L<@swqb2yU}0#Td`sDpwTpp+p?k7|$~4JI46F>38MqjxFbFbCWsql>&Y;LJgF%U5 z=H&A#*^J93TdUS7ZeU<#*vP=cu!%vOVKajq!xjc5hOG?h4BHrV88$H(GwhmtOLdOo zQ3h6qV+=eD#~H*KPB6$aoMcdBIK`mGaGF7f;W&d4!}-b6)h01sovfuE#Cn&3mEqpx zM)e@Zmy_Ey^d~cG=&*idU}g9;xlvtya<GOG6T{!h?HVzxtPE_7Y?EJTBs20(_R+Lw z6r0?m>C7lU`GRI3qx$3ndJ2=Bw5&Px8H5=P7$g`CC%0*pa+)%*GMX`PF`7?i(az+w zXJBP?VBltSoLr_|#Olew$>=rtt#&D6@MK0q$;mZ3MvPIDFKEh7KBuG3m^9g1S9Y?n zt~z7(WNTeF)?x-W#*)b|G_)sg)U{x&p8QJJp0Q=JmYy?XFIZ2no)P2J$p`eJIp;D6 zGtOg>V4Oc$MZc7DF#{{(5(X~DrIQ!wXL7D(U}ap#z|FXRvWP(u>vjfC#vPO2YHLs4 zX5htma5AHzH{%JgX*q`Kj29+b>q<^uYpBh56U_Q#sLgnHvYe46<HN}jMmCI6lc$2o fOJI`U*n?4Oa)dER{Eo5A<c-E!j8c>D82bSLo$<5D diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariableObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariableObject.class index e48cc5f7e219052148141aca51ee820e9dcea851..c9bcf2d4797eda5534462ac5a2bef578b123d011 100644 GIT binary patch delta 727 zcmbQ5G&O0%3u#AX1`Y;Q1|bGD25AO$22}<P20aE%22%zt23rPgh8PANhHM61hC&8? zh6)A)h6V;hhWQLe44WB@8Fnz3F&tzt->fN9$!KWDz`@|az|Y{wAkN^#Ajja$pvK_B zpv&OO;LYI15Y6Dhki_80(8}P&uz<mrVI_m#<jb=2Swk3D7(yqP%SG_UF>o-%Gl(!G zFeor2PQD`-ESkl@!jR3t#gN0m&ydR?!jQ)x&5%FYMg9n5$z)CiOUCNS&I&fHjSMUd zO_N&`Y*^bFSQt7cA60N<?PcI#=$p)~I8AaY11rNc1}=u_41x?Z7~~mdF(@+3W>8|7 zGkKR{Hsi|4YD#sAn;BRcwlMH8Y-JE<*v25ou$@7PVF!ac!%hZWhOG?740|UZRhpxC zf`OIcBm)n_DF$(d(+si<XBZS2&N8SmoMX^oIK^PZaA|Ur@+8I^lSNg6SsyU4F+7}H zsHHu5hKdE_i^&&N>={2!7F2a+{53gJTYhqhsv#32)8y6K3X_kkT61zS2s3gsNHFqD z=GT#&tfCgfDZs$WD9FIYC^WfOM{@EawE#{j23AIC25v@~$^UgECyS^@vZ^p}GOA84 z)773lSKW(IZ}J;m$;pfwMvSIlD}puD8Eq#Y(2$)xLqna>ZSnyPS5`j;R!0BHdo|@J zYib%ZMokvb(x2R;sl%GYz{;3Bd9P*=W8P!|tr*ra1~$g>$%R_UjCGSQs)$a0rKQE# z4rXa->oHE49H|}1IAii^?P$&g48n{H86+4NP3G4r<y^+V%D9|?i*d!|UY$(N4GgS| z8yUD6H%<PpQ^dN9fs=9f<TBk-#v_y8=z24r2D>s`Po44d<O3R#lV|8@Gu{ES?&@hX zKA6m@Z^`&%va`MoqwM4cC@DJmlD;~l?Brki9$-<?$q@!1euIG<h;JY>`LTf!061#8 An*aa+ delta 727 zcmbQ5G&O0%3u#9M1`Y-#1|bGz25ANr22}=C20aEf22%!g23rOVh8PA-hHM5chC&7% zh6)B<h6V;bhWQNo44WAY7<MoiGaO_v*{ms3$!KWJz`<b4z|UaEAkJXVAjjaqpvK_H zpv&OI;LYI75Y6Dqki_7|(8}P>uz<mfVI_n2<jb=2SpykZ7=k93%SG@;GjK4(Fo-b3 zGAJ;_O}--+ESk>1!jQqh#gNIs&yd9+!jR1%&5$$MMg9n5;bcw)OU8=H&I&fHbqp*F z^^;o^Y*<?uSQuI-A60N<?PB0y=$_22I8AaA11rO11}=sv41x?(8RQwJGbl35U{GS1 zIeC|2Hsi9%YD#sA8yHv_HZt%qY+?{+*vufuu!TX1VJm|=!!`z8hD{8{47(;DRhpxC zl!2Au7y}Q(aRzaQ6AZEpCm9qOPBEx4oMzBrIL=_iaDH-=@+8KqlSNg6S?@BiG2EM6 zsHHu5hKdE_)5#ZA>>1xp7F2a+{60BSTYhqhsv#4@|H-Sh6(%27wdQ1J5N70HkYMDT z%&#LkSw$^|lb3;&k&l6kk$-Zpj^yM;Y5|<$46KY24BU*8lmF{TP8Ly*WL0F~WK^15 zrmH=9uDTba_T)FZl9L%Vj2Ml;Rs?IPGg?hPpdmYXhK4$$^W*~>uB_e+tc*UB_iD;d z*3>j+44*8Zr9ZhxQ-?L4ft4{~@?Om##_Y)gS~0A}3~Y=glMA(y8LKB>R1uy0N=u8e z1<caY)?@6Q9H|}1ICb)B?P$)q48n}_7$g|yPv+Mt<y_3b%D9Aqi*f1XUY$(NwG6C` z>lnBh*H8YhQ^dNRfs=8^<TBk-#)FgJ=z24r0J}0=Po43?<O3R#lV|8@Gu{NV?&@hX z-kr>;Z^`&@va`MoqtxUEC@DJmlD;~l)Z}0K9$-<?$q@!1euIG<h;JY>`LTf!02+C^ A3jhEB diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.class index a84d7b1be5b7c75266467a3760dfe156fc1e97e1..f3fc44a41ee38207aa9e7751af4b3c99800fcd13 100644 GIT binary patch delta 327 zcmaE&@kC=o3^%J10}F%l<V0=<RviWo2HnZaxZQcp7+4t088{g%82A}1C;#HEVzisQ zo=0?Y7mo^~>*V!3Hmu$ZEDS!A6S+kvv+}C51~RZP1Wh*Nbz}`^;9!WDT+Ta9GM<5z zA%TI5A(26lA&EhrA%#JaA(cUiA#Ji6Up8a$<V0@a$xHdN6>Aw-8R{5#80s0s85$Vm z7#bOr7@8Q=8JZb%8R{8~8QLcs^3PG6#K6ihnSqC43WGSqR0dgwX$*=C(;3tlW-#b5 zOkpr$m^1kue+%QH$;ARetg9GU8CFj|B@o28ZL+Lj4C_7yHirF^>jb?Rk54`+7|3{G zvb2y5;}x*$bA?nGZ%m#fWWy*s`8<>qovbLV&L|6ZVT`aTSVna6a=6$dVPmMQrie8F D(eqCO delta 327 zcmaE&@kC=o3^%Jh0}F$~<V0=<R!s&D2Cd1<xZQb;8CV!h7&sYB8Tc8@Cja8DVzi#T zo=0?Y7mo^~)8zF$Hmn{DEDWBL6S+kvv+}C5`Z2ID_)j+Ebz}`;;9v-yT+Ta9GKPVb zA(nxQA&x<iA)Y~=A(26mA&EhWA$hVIUp8aG<V0@a$xHdN6{{Fn8LAn07-|^A8EP5i z80r|580s0+85$UL8EP1e8CoVA^3PH1XJBQRz`(;WkwKhc5`!$mWClfsDGX{1QyFv^ zCNdZ?%$)p=zlCxB<YIv!*5wSW3@av|5(r}4JXuyShIKas8^fN-b%I`uM<$;X3}iez zSz5@3@gmsuxk4(8S0_&rvSE~(d>%@QPF56FXOsfFFh<xEEF(I3Ib7_KurX9tQ^Xno DTVYOB diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Tag.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Tag.class index 6931ce2492a0feff2afde253b2fd88e0d9ae51be..b6f294196f0ed52ec04763bd2256360bab1f4f0a 100644 GIT binary patch delta 293 zcmX@EcwBMA1rAmv1{Mb8$&CWSlV5PCGU`m`<8<USWnf`2W8h>kpB%xN&S*3F0H-CR z^W+1ZqLcZ#)LA_lSQxy(I{dgaS^XJU7y`h&el9)MPzDZ$u*rwGrb)&!urkCka52O) z2r?uv$TK7{C^957C^4i=F67Q;EClQLz@4pF&A`e~!@$E(%OK8B#~{a0&!EK6z@X01 z$e_zm%V5mVI=O~tj^YFcR)&cTJPeZ<#2F?t$TCb}P-K|OpvEwbL5E=ygAv25$(Fn= zj0-03;|*e6!NAI}a<V925aX7~8GKQUJHU2b<5OeYGx;x{4WsO2D}E4J4kkf9KhAH; VC_DKtlrJ+mOhAiKc5<VD8vvioMw9>m delta 293 zcmX@EcwBMA1rAnu1{MZ|$&CWSlV5PCGHOod<8<USVqjq~X5eHnnH<5H&S*LL0H-CR z!{h^;qLcZ#)LGpaSQy;FI{dgaS$!B-7<|FJel9)MAO;SG;K_%$rb$LIurfq5a52O% z2r|Sn$TP$<C^954C@~~XF67Q;%meHAz@4pF!NAH;$-u)<#URd5%^=56!=S`a%b?Cs z$Dqql#bC_PG`WUnj$$tZD?=Xx4?{nLIKu=6S%!%WiVTw&)EFi+=rHs%7%@zrY{}cg zICt_s-XPYc46F>xCX4a~F>aik!57826>QfvJ~hUjlmGJBFiK6f;s=rCU=rl><NT(K VQj`Be`7)Ek1hg2XCN~PW0RTosMfd;! diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/TagObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/TagObject.class index cb336da10990f80c4669ea4b6b5673675259c9cf..e97a7352493614e0cd2d826206526b3e3c4b410b 100644 GIT binary patch delta 612 zcmeB->x|p5NJdwgfrCMnL6AY6L7G8>L4`q+L7PE~!Gb}X!Ja{f!JR>uA&o(gp^8DD zp`O8L^Ld#JMpH`$4hCxm0R~$JaRxgEc?Nq1H3kO;BL+tXO9m%~7zSsCat2q1ItDj} zg$(Wtdl<YJjxu;p&XJqX8py!H5HwjpK7u!zfrBB2L4+ZeL4hG|a;bc<XgUK6Lk0sU zLnZ?sLl%PwLpFmnL(b&8@<$j8CofX4WUQEcN5O`*j)8@tezJhP=wu^Bb=DRJ7KT<Z zuUJuswTpp+p?mTY#c7h07+4u5GjK6XVGv}P${^1$ok5Xd27?mA%*nw@*^J93?^mi* z+`z!fu#tg>VH1Nm!)69KhAj+A3|kr08MZO#GHhZnX4o}3PI->vQ3h6qV+=eD#~H*K zPB6$aoMcdBIK`mGaGF7f;W&d4!}-b5Dw7zmPF|-H#Cn&3mEqpx9jfw^RaA``Ury#$ z)1Ta~s>Aw`ftBIY<Q=L(jDII{tHrRgF|aYRPma|PpWLkG$I8dR$;dzXnpz;E*klcL zKSsI9<?0TM>XUb<M=}~r7SeEIwP0Xlw45BPk<92Y`Jje9qvvEsO=rfS$*!7#j8T&{ z)D<Rg*R<wLVi0CbW{_Y^nfzO`lrw{Yl`)fni!p0*rB)_q5d$k@F#|Va$>i5sMXWUp zoQ$=Tle9}2+a}-8_Gavz?5Zh0*;z-Oaq8p^I<k{HbkrH=P2Qm6!ng<=wp_X@jLRnL q>)J5NPS)2Go!qFa4rT2Fv!3aCfcYT#96dKi*~vM2GLz5iSpfj?=#?e_ delta 612 zcmeB->x|p5NJdwIfrCMbL6AX(L7G98L4`q$L7PFH!Gb}9!Ja{r!JR>iA&o(sp^8C= zp`Jm1^Ld#JMpH8e4h9Pb0R}4uaRzG!c?KH>H3nM-BL+JLO9p#}7zPK1at0@cItFKk zg$ynXdl=jqjxu;m&XJqX>c_ys;6GVFK7u!bfrBBEL4+ZSL4hH9a;bc<XbJ-hLn;F& zLmC4gLpp;9Lk5F1L+0eW@<$l+CNEO3WGtP0N5O`*nt_F(X0m|1=wu^Bb=F1(7KSD; zuUJuswVi>3p=0tA#c7iL46F<j7`PZFG6*tEVvuK;!l1}7l|hMN+T>uRY{tct_bb&Y zu4Q0lSjWJ_u%1DjVFQC4!$t-rhD{9W44WBr8P+oxGi;w6r#wgT5Cbd2VFn(CBMjmU zM;T-pjxi`Q9A{8tIKiO9aD>5#;ml-dl}U`3Ca+ToV!g${%5Zz~4psTdDyqhe&n9!L z=}&G~)nR?dz{>D`@($G?#$S`U)nZtg8Q2(ECdX=sPi|K8W94SxWaOEAO)Zd7c(R7N zAEWf-a&-qrmB~BQBN=rk3u(Bqnli94noW+?NM^L1d{D!l(QPuLrZc1eWLM2V#_-7+ z>I##$Yg%*0GYB&#Fi0>aPX4V~%9+Z*%9zH$#h5<1QY(`)pMjOJfPtH_aPn)dBGyU< zPR6RqN!q21&696vdoy-TcGZ-h?5v~CIBD_*9ofkpI_iwGCvVVkVVn;RTP|G{#>JEM pb!`}>ChO~oPHxmyhqCs8S<iGmz<iK=j-DH%)Z`pJnaSt%tN<+ilga=9 diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Trace.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Trace.class index 07b1212b1c59fa2804e6d55a355a37f2fa0af8b9..24ea52775b7aafe569fb098f6a3cd3c8e61261d0 100644 GIT binary patch literal 4530 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 IV6Mgq05c7tW&i*H literal 7322 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 D2Ljq@ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/XmlObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/XmlObject.class index 8988bc5dc6f163b29460098019b0c3c30e4b3f4d..3038d22a61341429445df984342558eaaca5cc3a 100644 GIT binary patch delta 644 zcmbOcG9zTeIdNTO1`Y;Q1|bGD25AO$22}<P20aE%1`7r)21f>M1`h@uhHwU5hByX2 zhFk`N&A-K^7;ViNI2bG$_!+Di#2Ks^<QQxi)EI0TbQ$azOd0GMY#1CETo@b~ycwJr zf*G6{Vi;T)k{MhX+8Epz7BYBF4wCF=^=DvV2$=j#(uXsWfrBB6L4+ZCvb9v4YzhMl zLn;F&LmC4gLpp;nLk5E+LnebfLl%P?L-yotQV$plCSQ~moxDa`g|U3{MQIz>S_T$| zy2(N^HmuDIEDSA^gJm39I~h0_x+c$*nI<`rft6tr0~f<&20?}?4Dt-q7!(<%Gbl04 znCu~&&A4>(7TG$*^$e^G8yI*PHZq7aY+{gO*vz2Bu!TXLVJm|!!$t;UhMkjx<>n|J zVPIuA%D}^Lj6s~?ID;(12?j-mlMHGMrx<h?jxiW9oSQ5lzlZV4<g@Z2talh#8SYND zSCX7;uVBgeV)A`O{mCm7bXY$yurhpvinC4rp<vAT2P_w@sKd&_z{<!9ms_o9%qTGV zzG5`11OqFh<Yap#H%67o3d%~8S19SQ>M*b}>Q1&-lAruTNuAMRvVyWds{;cYqvPZf z<zz;W$v2ek83QLvs5mo5O^#6sWK5d8P9>T%i$Rz%n?ZsxXR?rLDQ5u#D`O!87h}=n z396Z#RSc|*)ePK>HItdtidb71I2l_fSE`jV_Dz1T=FK>Da*T@n<S2D@#<`P^tIJNF zuddFxZ1Qn+7sgeSc{D5;*G+cQuwj&)d_Y5V@(c}iFbl+2P!^voqG<@`i%yQ#1j(Gz Ql$ktVQ;Sh{@+nO}093D>`v3p{ delta 644 zcmbOcG9zTeIdNSD1`Y-#1|bGz25ANr22}=C20aEf1`7st21f=B1`h^JhHwTghByXo zhFk{S&A-K^7;Q}$I2g<r_!-O@#2G9Y<QOa&)EKN7bQ!D}Oc`t#Y#3}ATo~*aycz5n zf*BkbVi+75k{O&B+8CS}7BaX^4wCF=^<iLP@SXfj(uXsQfrBBOL4+Y<vb9v4Y$5{- zLlOfgLox#&Lkfd1Ln?zLLmGoTLpp;RL&oH7QV$q&Cts8noxDa`g|TGvMQIz>Dh3vY z>d8VfHmnT{EDVj4gJm39+ZZ?)+9%JHnI_rCz{=3iz{N0uL6Bi0gFM4z21SM`3`z`B zCws_dGcKCEMYc|H4FfB~S_U45bqwMR>lx%2HZUkLY-CVp*u<dAu#Ul)VcX<jxjBjl z8CV$(G4L=PW)NpM!XV3VltGc<7=s$aaRwcR!wg0YrzZ=@?_s<+`K){h>rDn$hFg>E zl_V$ID_Al<oqS(WfAR_i9oDxDtPJm<;%t+DC>S&T1j|J$>aa30ure~i<yI>iGxAQp zuNciL%D~DfHrZaujZty3g0j-&6-qj+nhdOrT9fUS<R|}7QfD-stf1`AYRkaJXg9e; zIhoOQ@(pEsM!(4tD$b1IlVel@8RI9fQ;FtGXAox0V31(UoGheT%9+c+%9zK%#h5>N zf@&sbIRh(W1p_x@<zyzcBGyI*PR6Fmm1?Do-IL#|c{5I$9HSyXIZ9ofan|JH>avsP ztE)3Eo_t*0g>m_09t}&z)sx*cY#5~`AJ7n;JVQer%mVQhl*K2DXc~g~qLZUFK{BT_ QWhT$p)MAvHd`i;~0Ak;plK=n! diff --git a/build/classes/java/test/openapi/OpenAPIMain_test.class b/build/classes/java/test/openapi/OpenAPIMain_test.class index 862b12ddb39f7be5a4c1e6d041acc9b6a5a27845..c3666a6f433c6b2acf8a5a21de755d15f92efc44 100644 GIT binary patch delta 3341 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 delta 2860 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 diff --git a/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html b/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html index 954849ea..69d73deb 100644 --- a/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html +++ b/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html @@ -29,7 +29,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -41,7 +41,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -50,8 +50,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -61,127 +61,16 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> +<a href="#tab0">Tests</a> </li> <li> -<a href="#tab1">Tests</a> +<a href="#tab1">Standard output</a> </li> <li> -<a href="#tab2">Standard output</a> +<a href="#tab2">Standard error</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<div class="test"> -<a name="test()"></a> -<h3 class="failures">test()</h3> -<span class="code"> -<pre>java.lang.NullPointerException - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.survey_OpenAPIObject_schemaTuples(OpenAPIObject.java:1102) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples_compute(OpenAPIObject.java:1232) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples(OpenAPIObject.java:1214) - at openapi.OpenAPIMain_test.test(OpenAPIMain_test.java:72) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) - at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) - at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) - at com.sun.proxy.$Proxy2.stop(Unknown Source) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:133) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) - at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) - at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) - at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) - at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) - at java.base/java.lang.Thread.run(Thread.java:829) -</pre> -</span> -</div> -</div> -<div id="tab1" class="tab"> <h2>Tests</h2> <table> <thead> @@ -192,17 +81,27 @@ </tr> </thead> <tr> -<td class="failures">test()</td> -<td class="failures">0.401s</td> -<td class="failures">failed</td> +<td class="success">test()</td> +<td class="success">0.481s</td> +<td class="success">passed</td> </tr> </table> </div> -<div id="tab2" class="tab"> +<div id="tab1" class="tab"> <h2>Standard output</h2> <span class="code"> <pre>1 Loading expression DSL file 'petstore-v2.yaml'. +de.tudresden.inf.st.openapi.ast.SchemaReference +</pre> +</span> +</div> +<div id="tab2" class="tab"> +<h2>Standard error</h2> +<span class="code"> +<pre>SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". +SLF4J: Defaulting to no-operation (NOP) logger implementation +SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. </pre> </span> </div> @@ -214,7 +113,7 @@ Loading expression DSL file 'petstore-v2.yaml'. <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. ì˜¤ì „ 7:28:09</p> </div> </div> </body> diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index 38a8e8ca..bab71831 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -26,7 +26,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -38,7 +38,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -47,8 +47,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -58,25 +58,13 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> -</li> -<li> -<a href="#tab1">Packages</a> +<a href="#tab0">Packages</a> </li> <li> -<a href="#tab2">Classes</a> +<a href="#tab1">Classes</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<ul class="linkList"> -<li> -<a href="classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a>. -<a href="classes/openapi.OpenAPIMain_test.html#test()">test()</a> -</li> -</ul> -</div> -<div id="tab1" class="tab"> <h2>Packages</h2> <table> <thead> @@ -91,19 +79,19 @@ </thead> <tbody> <tr> -<td class="failures"> +<td class="success"> <a href="packages/openapi.html">openapi</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </tbody> </table> </div> -<div id="tab2" class="tab"> +<div id="tab1" class="tab"> <h2>Classes</h2> <table> <thead> @@ -118,14 +106,14 @@ </thead> <tbody> <tr> -<td class="failures"> +<td class="success"> <a href="classes/openapi.OpenAPIMain_test.html">openapi.OpenAPIMain_test</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </tbody> </table> @@ -138,7 +126,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. ì˜¤ì „ 7:28:09</p> </div> </div> </body> diff --git a/build/reports/tests/test/packages/openapi.html b/build/reports/tests/test/packages/openapi.html index bb6322e9..9f59707b 100644 --- a/build/reports/tests/test/packages/openapi.html +++ b/build/reports/tests/test/packages/openapi.html @@ -28,7 +28,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -40,7 +40,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -49,8 +49,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -60,22 +60,10 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> -</li> -<li> -<a href="#tab1">Classes</a> +<a href="#tab0">Classes</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<ul class="linkList"> -<li> -<a href="../classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a>. -<a href="../classes/openapi.OpenAPIMain_test.html#test()">test()</a> -</li> -</ul> -</div> -<div id="tab1" class="tab"> <h2>Classes</h2> <table> <thread> @@ -89,14 +77,14 @@ </tr> </thread> <tr> -<td class="failures"> +<td class="success"> <a href="../classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </table> </div> @@ -108,7 +96,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. ì˜¤ì „ 7:28:09</p> </div> </div> </body> diff --git a/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml b/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml index c3a8822f..4accda54 100644 --- a/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml +++ b/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml @@ -1,112 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> -<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="1" errors="0" timestamp="2021-10-09T13:17:32" hostname="DESKTOP-7SEB5SB" time="0.401"> +<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="0" errors="0" timestamp="2021-10-09T22:28:09" hostname="DESKTOP-7SEB5SB" time="0.481"> <properties/> - <testcase name="test()" classname="openapi.OpenAPIMain_test" time="0.401"> - <failure message="java.lang.NullPointerException" type="java.lang.NullPointerException">java.lang.NullPointerException - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.survey_OpenAPIObject_schemaTuples(OpenAPIObject.java:1102) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples_compute(OpenAPIObject.java:1232) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples(OpenAPIObject.java:1214) - at openapi.OpenAPIMain_test.test(OpenAPIMain_test.java:72) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) - at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) - at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) - at com.sun.proxy.$Proxy2.stop(Unknown Source) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:133) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) - at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) - at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) - at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) - at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) - at java.base/java.lang.Thread.run(Thread.java:829) -</failure> - </testcase> + <testcase name="test()" classname="openapi.OpenAPIMain_test" time="0.481"/> <system-out><![CDATA[1 Loading expression DSL file 'petstore-v2.yaml'. +de.tudresden.inf.st.openapi.ast.SchemaReference ]]></system-out> - <system-err><![CDATA[]]></system-err> + <system-err><![CDATA[SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". +SLF4J: Defaulting to no-operation (NOP) logger implementation +SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. +]]></system-err> </testsuite> diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin index b2cafb86a330d768ceb0ed22fa2b81c8e6f3f8be..ba6adeb83939170d29557c231cddebc5911a3537 100644 GIT binary patch delta 286 zcmcDy#5BRCo{@>sFeO#5q%@@{wKyd;PcJhsO|Q5_FTWr)FR>s~FR{2pFE}|PH8(LR zH7&I$H7_}pmy3ak(J9!+&BV(}!7VW}CpAT(BwryXKQToiIVZ8WSV1YjC|$2OC(R^F zFEh6wM=!V}u_QCuCqF$swa6(mFD11|Ne^s_eLd6|m(;Yx(wvgaymXLJdHK5e1*t`e zC7Jno3L1X?0h$UqV9g33<5F`|^FRjX=Yh=#ff^B<nyQddQc_^0uU}qX4z)hNC|y4} pKP9zTFQX(kM;XH*5=9DW`9%t8r9~wfsYMDYsU?Y-ImLRsTmTAOUvB^a delta 5 Mcmcb_WHZ4A00uV!-2eap diff --git a/build/test-results/test/binary/output.bin.idx b/build/test-results/test/binary/output.bin.idx index 42aeebea8d46c35d355eb76aef19d1abdb6becfc..a255248e29adda3f1b5743d9c3f4c9e53c58683f 100644 GIT binary patch literal 36 UcmZQ%Vq|1M1vXG_A(Z|F013bWtpET3 literal 36 RcmZQ%Vq|1M1?>OP004-<5B&fD diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin index d4ad4c7c961d027b3b361fa11d92845108376246..40154f7aad25d3c5af2712e0a5553b16325635d8 100644 GIT binary patch delta 38 ocmcZ`95}&HAzgc;IwNCyNosM4h9;C^c*xAaz*v*6y_tgn0Q?*atpET3 literal 10717 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 GCIJAFCuNHO diff --git a/gen-api-ex/1password.com-events-1.0.0-actual.json b/gen-api-ex/1password.com-events-1.0.0-actual.json deleted file mode 100644 index e69de29b..00000000 diff --git a/gen-api-ex/1password.com-events-1.0.0-expected.json b/gen-api-ex/1password.com-events-1.0.0-expected.json deleted file mode 100644 index 5621a5d9..00000000 --- a/gen-api-ex/1password.com-events-1.0.0-expected.json +++ /dev/null @@ -1,449 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "description" : "1Password Events API Specification.", - "title" : "Events API", - "version" : "1.0.0", - "x-providerName" : "1password.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_upload.wikimedia.org_wikipedia_commons_thumb_e_e3_1password-logo.svg_1280px-1password-logo.svg.png" - }, - "x-apisguru-categories" : [ "security" ], - "x-serviceName" : "events", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://i.1password.com/media/1password-events-reporting/1password-events-api.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://events.1password.com", - "description" : "1Password" - }, { - "url" : "https://events.1password.ca", - "description" : "1Password CA" - }, { - "url" : "https://events.1password.eu", - "description" : "1Password EU" - }, { - "url" : "https://events.ent.1password.com", - "description" : "1Password Enterprise" - } ], - "paths" : { - "/api/auth/introspect" : { - "get" : { - "tags" : [ "auth" ], - "summary" : "Performs introspection of the provided Bearer JWT token", - "operationId" : "getAuthIntrospect", - "responses" : { - "200" : { - "$ref" : "#/components/responses/IntrospectResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - }, - "/api/v1/itemusages" : { - "post" : { - "tags" : [ "api-v1" ], - "summary" : "Retrieves item usages", - "description" : "This endpoint requires your JSON Web Token to have the *itemusages* feature.", - "operationId" : "getItemUsages", - "requestBody" : { - "$ref" : "#/components/requestBodies/ItemUsagesRequest" - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/ItemUsagesResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - }, - "/api/v1/signinattempts" : { - "post" : { - "tags" : [ "api-v1" ], - "summary" : "Retrieves sign-in attempts", - "description" : "This endpoint requires your JSON Web Token to have the *signinattempts* feature.", - "operationId" : "getSignInAttempts", - "requestBody" : { - "$ref" : "#/components/requestBodies/SignInAttemptsRequest" - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/SignInAttemptsResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - } - }, - "components" : { - "examples" : { - "Cursor" : { - "summary" : "Used for continued calling with a cursor", - "value" : { - "cursor" : "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK" - } - }, - "ResetCursor" : { - "summary" : "Used for reseting the cursor", - "value" : { - "limit" : 100, - "start_time" : "2021-06-11T16:32:50-03:00" - } - } - }, - "requestBodies" : { - "CursorRequest" : { - "content" : { - "application/json" : { - "examples" : { - "Continuing cursor" : { - "$ref" : "#/components/examples/Cursor", - "abs$ref" : "file:/E:/bachelor-thesis/SigTest/bachelor-thesis-jastadd/build/resources/main/1password.com-events-1.0.0.json#/components/examples/Cursor" - }, - "Resetting cursor" : { - "$ref" : "#/components/examples/ResetCursor", - "abs$ref" : "file:/E:/bachelor-thesis/SigTest/bachelor-thesis-jastadd/build/resources/main/1password.com-events-1.0.0.json#/components/examples/ResetCursor" - } - }, - "schema" : { - "oneOf" : [ { - "$ref" : "#/components/schemas/Cursor" - }, { - "$ref" : "#/components/schemas/ResetCursor" - } ] - } - } - } - }, - "ItemUsagesRequest" : { - "$ref" : "#/components/requestBodies/CursorRequest" - }, - "SignInAttemptsRequest" : { - "$ref" : "#/components/requestBodies/CursorRequest" - } - }, - "responses" : { - "GenericErrorResponse" : { - "description" : "Generic error", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "IntrospectResponse" : { - "description" : "Introspection object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Introspection" - } - } - } - }, - "ItemUsagesResponse" : { - "description" : "Item usages response object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ItemUsageItems" - } - } - } - }, - "SignInAttemptsResponse" : { - "description" : "Sign-in attempts response object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SignInAttemptItems" - } - } - } - }, - "UnauthorizedErrorResponse" : { - "description" : "Unauthorized", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "Client" : { - "description" : "Metadata gathered about the client", - "properties" : { - "app_name" : { - "example" : "1Password Extension", - "type" : "string" - }, - "app_version" : { - "example" : "20127", - "type" : "string" - }, - "ip_address" : { - "example" : "13.227.95.22", - "type" : "string" - }, - "os_name" : { - "example" : "MacOSX", - "type" : "string" - }, - "os_version" : { - "example" : "10.15.6", - "type" : "string" - }, - "platform_name" : { - "example" : "Chrome", - "type" : "string" - }, - "platform_version" : { - "description" : "Depending on the platform used, this can be the version of the browser that the client extension is installed, the model of computer that the native application is installed or the machine's CPU version that the CLI was installed", - "type" : "string" - } - } - }, - "Cursor" : { - "description" : "Cursor", - "properties" : { - "cursor" : { - "description" : "Cursor to fetch more data if available or continue the polling process if required", - "example" : "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK", - "type" : "string" - } - } - }, - "CursorCollection" : { - "description" : "Common cursor properties for collection responses", - "allOf" : [ { - "$ref" : "#/components/schemas/Cursor" - }, { - "properties" : { - "has_more" : { - "description" : "Whether there may still be more data to fetch using the returned cursor. If true, the subsequent request could still be empty.", - "type" : "boolean" - } - } - } ] - }, - "DateTimeRFC3339" : { - "example" : "2020-06-11T16:32:50-03:00", - "format" : "date-time", - "type" : "string" - }, - "Details" : { - "description" : "Additional information about the sign-in attempt", - "properties" : { - "value" : { - "description" : "For firewall prevented sign-ins, the value is the chosen continent, country, etc. that blocked the sign-in attempt", - "example" : "Europe", - "type" : "string" - } - } - }, - "Error" : { - "properties" : { - "Error" : { - "properties" : { - "Message" : { - "description" : "The error message.", - "type" : "string" - } - }, - "type" : "object" - } - }, - "type" : "object" - }, - "Introspection" : { - "properties" : { - "Features" : { - "example" : [ "itemusages", "signinattempts" ], - "type" : "array", - "items" : { - "type" : "string" - } - }, - "IssuedAt" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "UUID" : { - "type" : "string" - } - }, - "type" : "object" - }, - "ItemUsage" : { - "description" : "A single item usage object", - "properties" : { - "client" : { - "$ref" : "#/components/schemas/Client" - }, - "item_uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "timestamp" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "used_version" : { - "type" : "integer" - }, - "user" : { - "$ref" : "#/components/schemas/User" - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "vault_uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - }, - "ItemUsageItems" : { - "description" : "An object wrapping cursor properties and a list of items usages", - "allOf" : [ { - "properties" : { - "items" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ItemUsage" - } - } - } - }, { - "$ref" : "#/components/schemas/CursorCollection" - } ] - }, - "ResetCursor" : { - "description" : "Reset cursor", - "properties" : { - "end_time" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "limit" : { - "maximum" : 1000, - "minimum" : 1, - "type" : "number" - }, - "start_time" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - } - } - }, - "SignInAttempt" : { - "description" : "A single sign-in attempt object", - "properties" : { - "category" : { - "example" : "firewall_failed", - "type" : "string", - "enum" : [ "success", "credentials_failed", "mfa_failed", "modern_version_failed", "firewall_failed", "firewall_reported_success" ] - }, - "client" : { - "$ref" : "#/components/schemas/Client" - }, - "country" : { - "description" : "Country ISO Code", - "example" : "France", - "type" : "string" - }, - "details" : { - "$ref" : "#/components/schemas/Details" - }, - "session_uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "target_user" : { - "$ref" : "#/components/schemas/User" - }, - "timestamp" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "type" : { - "example" : "continent_blocked", - "type" : "string", - "enum" : [ "credentials_ok", "mfa_ok", "password_secret_bad", "mfa_missing", "totp_disabled", "totp_bad", "totp_timeout", "u2f_disabled", "u2f_bad", "u2f_timout", "duo_disabled", "duo_bad", "duo_timeout", "duo_native_bad", "platform_secret_disabled", "platform_secret_bad", "platform_secret_proxy", "code_disabled", "code_bad", "code_timeout", "ip_blocked", "continent_blocked", "country_blocked", "anonymous_blocked", "all_blocked", "modern_version_missing", "modern_version_old" ] - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - }, - "SignInAttemptItems" : { - "description" : "An object wrapping cursor properties and a list of sign-in attempts", - "allOf" : [ { - "properties" : { - "items" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SignInAttempt" - } - } - } - }, { - "$ref" : "#/components/schemas/CursorCollection" - } ] - }, - "UUID" : { - "example" : "56YE2TYN2VFYRLNSHKPW5NVT5E", - "type" : "string" - }, - "User" : { - "description" : "User object", - "properties" : { - "email" : { - "format" : "email", - "type" : "string" - }, - "name" : { - "description" : "Full name", - "example" : "Jack O'Neill", - "type" : "string" - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - } - }, - "securitySchemes" : { - "jwtsa" : { - "type" : "http", - "description" : "A JWT SA token issued to this service", - "scheme" : "bearer", - "bearerFormat" : "JWT-SA" - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json b/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json deleted file mode 100644 index f9464ad0..00000000 --- a/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "hello@authentiq.com", - "name" : "Authentiq team", - "url" : "http://authentiq.io/support" - }, - "description" : "Strong authentication, without the passwords.", - "license" : { - "name" : "Apache 2.0", - "url" : "http://www.apache.org/licenses/LICENSE-2.0.html" - }, - "termsOfService" : "http://authentiq.com/terms/", - "title" : "Authentiq API", - "version" : "6", - "x-providerName" : "6-dot-authentiqio.appspot.com", - "x-logo" : { - "backgroundColor" : "#F26641", - "url" : "https://api.apis.guru/v2/cache/logo/https_www.authentiq.com_theme_images_authentiq-logo-a-inverse.svg" - }, - "x-apisguru-categories" : [ "security" ], - "x-origin" : [ { - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/AuthentiqID/authentiq-docs/master/docs/swagger/issuer.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://6-dot-authentiqio.appspot.com" - } ], - "paths" : { - "/scope/{job}" : { - "head" : { - "tags" : [ "scope", "head" ], - "description" : "HEAD to get the status of a verification job", - "operationId" : "sign_retrieve_head", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Confirmed and signed" - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "get" : { - "tags" : [ "scope", "get" ], - "description" : "get the status / current content of a verification job", - "operationId" : "sign_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successful response (JWT)", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "field" : { - "type" : "string" - }, - "exp" : { - "type" : "integer" - } - }, - "type" : "object", - "title" : "JWT" - } - }, - "application/jwt" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "field" : { - "type" : "string" - }, - "exp" : { - "type" : "integer" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "put" : { - "tags" : [ "scope", "put" ], - "description" : "authority updates a JWT with its signature\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_update", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/jwt" : { - "schema" : { - "properties" : { - "jwt" : { - "description" : "result is JWT or JSON??", - "type" : "string" - }, - "status" : { - "description" : "ready", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Job not confirmed yet `confirm-first`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "post" : { - "tags" : [ "scope", "post" ], - "description" : "this is a scope confirmation", - "operationId" : "sign_confirm", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "202" : { - "description" : "Successfully confirmed", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Confirmation error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "405" : { - "description" : "JWT POSTed to scope `not-supported`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "scope", "delete" ], - "description" : "delete a verification job", - "operationId" : "sign_delete", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/scope" : { - "post" : { - "tags" : [ "scope", "post" ], - "description" : "scope verification request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_request", - "parameters" : [ { - "description" : "test only mode, using test issuer", - "required" : false, - "schema" : { - "type" : "integer" - }, - "in" : "query", - "name" : "test" - } ], - "requestBody" : { - "description" : "Claims of scope", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Claims" - } - } - } - }, - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "201" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "job" : { - "description" : "20-character ID", - "type" : "string" - }, - "status" : { - "description" : "waiting", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "429" : { - "description" : "Too Many Requests on same address / number `rate-limit`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/login" : { - "post" : { - "tags" : [ "login", "post" ], - "description" : "push sign-in request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "push_login_request", - "parameters" : [ { - "description" : "URI App will connect to", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "callback" - } ], - "requestBody" : { - "description" : "Push Token.", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/PushToken" - } - } - } - }, - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "sent", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Unauthorized for this callback audience `aud-error` or JWT should be self-signed `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/key" : { - "post" : { - "tags" : [ "key", "post" ], - "description" : "Register a new ID `JWT(sub, devtoken)`\n\nv5: `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_register", - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "201" : { - "description" : "Successfully registered", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "secret" : { - "description" : "revoke key", - "type" : "string" - }, - "status" : { - "description" : "registered", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "409" : { - "description" : "Key already registered `duplicate-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Authentiq ID using email & phone.\n\nIf called with `email` and `phone` only, a verification code \nwill be sent by email. Do a second call adding `code` to \ncomplete the revocation.\n", - "operationId" : "key_revoke_nosecret", - "parameters" : [ { - "description" : "primary email associated to Key (ID)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "email" - }, { - "description" : "primary phone number, international representation", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "phone" - }, { - "description" : "verification code sent by email", - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "code" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "pending or done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Authentication error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Confirm with code sent `confirm-first`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/key/{PK}" : { - "head" : { - "tags" : [ "key", "head" ], - "description" : "HEAD info on Authentiq ID\n", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Key exists" - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "410" : { - "description" : "Key is revoked `revoked-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "get" : { - "tags" : [ "key", "get" ], - "description" : "Get public details of an Authentiq ID.\n", - "operationId" : "key_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Successfully retrieved", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "since" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "410" : { - "description" : "Key is revoked (gone). `revoked-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "put" : { - "tags" : [ "key", "put" ], - "description" : "Update Authentiq ID by replacing the object.\n\nv4: `JWT(sub,email,phone)` to bind email/phone hash; \n\nv5: POST issuer-signed email & phone scopes\nand PUT to update registration `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_bind", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Already bound to another key `duplicate-hash`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "post" : { - "tags" : [ "key", "post" ], - "description" : "update properties of an Authentiq ID.\n(not operational in v4; use PUT for now)\n\nv5: POST issuer-signed email & phone scopes in\na self-signed JWT\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_update", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Identity (Key) with a revocation secret", - "operationId" : "key_revoke", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - }, { - "description" : "revokation secret", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "secret" - } ], - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Key not found / wrong code `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - } - }, - "components" : { - "parameters" : { - "PK" : { - "description" : "Public Signing Key - Authentiq ID (43 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "PK" - }, - "JobID" : { - "description" : "Job ID (20 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "job" - } - }, - "requestBodies" : { - "AuthentiqID" : { - "description" : "Authentiq ID to register", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/AuthentiqID" - } - } - } - } - }, - "responses" : { - "ErrorResponse" : { - "description" : "Error response", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "Claims" : { - "description" : "Claim in JWT format, self- or issuer-signed. \n", - "properties" : { - "sub" : { - "description" : "UUID", - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "scope" : { - "description" : "claim scope", - "type" : "string" - }, - "type" : { - "type" : "string" - }, - "email" : { - "type" : "string" - } - }, - "required" : [ "sub", "scope" ] - }, - "Error" : { - "properties" : { - "detail" : { - "type" : "string" - }, - "error" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "description" : "unique uri for this error", - "type" : "string" - } - }, - "required" : [ "error" ] - }, - "AuthentiqID" : { - "description" : "Authentiq ID in JWT format, self-signed.\n", - "properties" : { - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - }, - "devtoken" : { - "description" : "device token for push messages", - "type" : "string" - } - }, - "required" : [ "sub" ] - }, - "PushToken" : { - "description" : "PushToken in JWT format, self-signed. \n", - "properties" : { - "aud" : { - "description" : "audience (URI)", - "type" : "string" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - }, - "nbf" : { - "type" : "integer" - }, - "iss" : { - "description" : "issuer (URI)", - "type" : "string" - }, - "exp" : { - "type" : "integer" - }, - "iat" : { - "type" : "integer" - } - }, - "required" : [ "sub", "iss", "aud" ] - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json b/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json deleted file mode 100644 index 85303162..00000000 --- a/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "hello@authentiq.com", - "name" : "Authentiq team", - "url" : "http://authentiq.io/support" - }, - "description" : "Strong authentication, without the passwords.", - "license" : { - "name" : "Apache 2.0", - "url" : "http://www.apache.org/licenses/LICENSE-2.0.html" - }, - "termsOfService" : "http://authentiq.com/terms/", - "title" : "Authentiq API", - "version" : "6", - "x-providerName" : "6-dot-authentiqio.appspot.com", - "x-logo" : { - "backgroundColor" : "#F26641", - "url" : "https://api.apis.guru/v2/cache/logo/https_www.authentiq.com_theme_images_authentiq-logo-a-inverse.svg" - }, - "x-apisguru-categories" : [ "security" ], - "x-origin" : [ { - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/AuthentiqID/authentiq-docs/master/docs/swagger/issuer.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://6-dot-authentiqio.appspot.com" - } ], - "paths" : { - "/key" : { - "post" : { - "tags" : [ "key", "post" ], - "description" : "Register a new ID `JWT(sub, devtoken)`\n\nv5: `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_register", - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "201" : { - "description" : "Successfully registered", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "secret" : { - "description" : "revoke key", - "type" : "string" - }, - "status" : { - "description" : "registered", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "409" : { - "description" : "Key already registered `duplicate-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Authentiq ID using email & phone.\n\nIf called with `email` and `phone` only, a verification code \nwill be sent by email. Do a second call adding `code` to \ncomplete the revocation.\n", - "operationId" : "key_revoke_nosecret", - "parameters" : [ { - "description" : "primary email associated to Key (ID)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "email" - }, { - "description" : "primary phone number, international representation", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "phone" - }, { - "description" : "verification code sent by email", - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "code" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "pending or done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Authentication error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Confirm with code sent `confirm-first`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/key/{PK}" : { - "head" : { - "tags" : [ "key", "head" ], - "description" : "HEAD info on Authentiq ID\n", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Key exists" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "410" : { - "description" : "Key is revoked `revoked-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "get" : { - "tags" : [ "key", "get" ], - "description" : "Get public details of an Authentiq ID.\n", - "operationId" : "key_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Successfully retrieved", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "since" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "410" : { - "description" : "Key is revoked (gone). `revoked-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "put" : { - "tags" : [ "key", "put" ], - "description" : "Update Authentiq ID by replacing the object.\n\nv4: `JWT(sub,email,phone)` to bind email/phone hash; \n\nv5: POST issuer-signed email & phone scopes\nand PUT to update registration `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_bind", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Already bound to another key `duplicate-hash`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "post" : { - "tags" : [ "key", "post" ], - "description" : "update properties of an Authentiq ID.\n(not operational in v4; use PUT for now)\n\nv5: POST issuer-signed email & phone scopes in\na self-signed JWT\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_update", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Identity (Key) with a revocation secret", - "operationId" : "key_revoke", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - }, { - "description" : "revokation secret", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "secret" - } ], - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Key not found / wrong code `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/login" : { - "post" : { - "tags" : [ "login", "post" ], - "description" : "push sign-in request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "push_login_request", - "parameters" : [ { - "description" : "URI App will connect to", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "callback" - } ], - "requestBody" : { - "description" : "Push Token.", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/PushToken" - } - } - } - }, - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "sent", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Unauthorized for this callback audience `aud-error` or JWT should be self-signed `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/scope" : { - "post" : { - "tags" : [ "scope", "post" ], - "description" : "scope verification request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_request", - "parameters" : [ { - "description" : "test only mode, using test issuer", - "required" : false, - "schema" : { - "type" : "integer" - }, - "in" : "query", - "name" : "test" - } ], - "requestBody" : { - "description" : "Claims of scope", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Claims" - } - } - } - }, - "responses" : { - "201" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "job" : { - "description" : "20-character ID", - "type" : "string" - }, - "status" : { - "description" : "waiting", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "429" : { - "description" : "Too Many Requests on same address / number `rate-limit`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/scope/{job}" : { - "head" : { - "tags" : [ "scope", "head" ], - "description" : "HEAD to get the status of a verification job", - "operationId" : "sign_retrieve_head", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Confirmed and signed" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "get" : { - "tags" : [ "scope", "get" ], - "description" : "get the status / current content of a verification job", - "operationId" : "sign_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successful response (JWT)", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "exp" : { - "type" : "integer" - }, - "field" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - }, - "application/jwt" : { - "schema" : { - "properties" : { - "exp" : { - "type" : "integer" - }, - "field" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "put" : { - "tags" : [ "scope", "put" ], - "description" : "authority updates a JWT with its signature\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_update", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/jwt" : { - "schema" : { - "properties" : { - "jwt" : { - "description" : "result is JWT or JSON??", - "type" : "string" - }, - "status" : { - "description" : "ready", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Job not confirmed yet `confirm-first`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "post" : { - "tags" : [ "scope", "post" ], - "description" : "this is a scope confirmation", - "operationId" : "sign_confirm", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "202" : { - "description" : "Successfully confirmed", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Confirmation error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "405" : { - "description" : "JWT POSTed to scope `not-supported`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "scope", "delete" ], - "description" : "delete a verification job", - "operationId" : "sign_delete", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - } - }, - "components" : { - "parameters" : { - "JobID" : { - "description" : "Job ID (20 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "job" - }, - "PK" : { - "description" : "Public Signing Key - Authentiq ID (43 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "PK" - } - }, - "requestBodies" : { - "AuthentiqID" : { - "description" : "Authentiq ID to register", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/AuthentiqID" - } - } - } - } - }, - "responses" : { - "ErrorResponse" : { - "description" : "Error response", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "AuthentiqID" : { - "description" : "Authentiq ID in JWT format, self-signed.\n", - "properties" : { - "devtoken" : { - "description" : "device token for push messages", - "type" : "string" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - } - }, - "required" : [ "sub" ] - }, - "Claims" : { - "description" : "Claim in JWT format, self- or issuer-signed. \n", - "properties" : { - "email" : { - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "scope" : { - "description" : "claim scope", - "type" : "string" - }, - "sub" : { - "description" : "UUID", - "type" : "string" - }, - "type" : { - "type" : "string" - } - }, - "required" : [ "sub", "scope" ] - }, - "Error" : { - "properties" : { - "detail" : { - "type" : "string" - }, - "error" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "description" : "unique uri for this error", - "type" : "string" - } - }, - "required" : [ "error" ] - }, - "PushToken" : { - "description" : "PushToken in JWT format, self-signed. \n", - "properties" : { - "aud" : { - "description" : "audience (URI)", - "type" : "string" - }, - "exp" : { - "type" : "integer" - }, - "iat" : { - "type" : "integer" - }, - "iss" : { - "description" : "issuer (URI)", - "type" : "string" - }, - "nbf" : { - "type" : "integer" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - } - }, - "required" : [ "sub", "iss", "aud" ] - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json b/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json deleted file mode 100644 index 59e7e531..00000000 --- a/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "openapi" : "3.0.1", - "info" : { - "description" : "Abstract IP geolocation API allows developers to retrieve the region, country and city behind any IP worldwide. The API covers the geolocation of IPv4 and IPv6 addresses in 180+ countries worldwide. Extra information can be retrieved like the currency, flag or language associated to an IP.", - "title" : "IP geolocation API", - "version" : "1.0.0", - "x-providerName" : "abstractapi.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_global-uploads.webflow.com_5ebbd0a566a3996636e55959_5ec2ba29feeeb05d69160e7b_webclip.png" - }, - "x-apisguru-categories" : [ "location" ], - "x-serviceName" : "geolocation", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://documentation.abstractapi.com/ip-geolocation-openapi.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "paths" : { - "/v1" : { - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "get" : { - "description" : "Retrieve the location of an IP address", - "parameters" : [ { - "explode" : true, - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "api_key" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "195.154.25.40", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "ip_address" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "country,city,timezone", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "fields" - } ], - "responses" : { - "200" : { - "description" : "Location of geolocated IP", - "content" : { - "application/json" : { - "examples" : { - "0" : { - "value" : "{\"ip_address\":\"195.154.25.40\",\"city\":\"Paris\",\"city_geoname_id\":2988507,\"region\":\"?le-de-France\",\"region_iso_code\":\"IDF\",\"region_geoname_id\":3012874,\"postal_code\":\"75008\",\"country\":\"France\",\"country_code\":\"FR\",\"country_geoname_id\":3017382,\"country_is_eu\":true,\"continent\":\"Europe\",\"continent_code\":\"EU\",\"continent_geoname_id\":6255148,\"longitude\":2.4075,\"latitude\":48.8323,\"security\":{\"is_vpn\":false},\"timezone\":{\"name\":\"Europe/Paris\",\"abbreviation\":\"CEST\",\"gmt_offset\":2,\"current_time\":\"15:42:18\",\"is_dst\":true},\"flag\":{\"emoji\":\"<?<��\",\"unicode\":\"U+1F1EB U+1F1F7\",\"png\":\"https://static.abstractapi.com/country-flags/FR_flag.png\",\"svg\":\"https://static.abstractapi.com/country-flags/FR_flag.svg\"},\"currency\":{\"currency_name\":\"Euros\",\"currency_code\":\"EUR\"},\"connection\":{\"autonomous_system_number\":12876,\"autonomous_system_organization\":\"Online S.a.s.\",\"connection_type\":\"Corporate\",\"isp_name\":\"Online S.A.S.\",\"organization_name\":\"ONLINE\"}}" - } - }, - "schema" : { - "$ref" : "#/components/schemas/inline_response_200" - } - } - } - } - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ] - } - } - }, - "components" : { - "schemas" : { - "inline_response_200" : { - "properties" : { - "continent" : { - "type" : "string" - }, - "country" : { - "type" : "string" - }, - "flag" : { - "properties" : { - "emoji" : { - "type" : "string" - }, - "svg" : { - "type" : "string" - }, - "png" : { - "type" : "string" - }, - "unicode" : { - "type" : "string" - } - }, - "type" : "object" - }, - "country_geoname_id" : { - "type" : "integer" - }, - "city" : { - "type" : "string" - }, - "city_geoname_id" : { - "type" : "integer" - }, - "country_is_eu" : { - "type" : "boolean" - }, - "timezone" : { - "properties" : { - "name" : { - "type" : "string" - }, - "gmt_offset" : { - "type" : "integer" - }, - "abbreviation" : { - "type" : "string" - }, - "current_time" : { - "type" : "string" - }, - "is_dst" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "latitude" : { - "type" : "number" - }, - "continent_code" : { - "type" : "string" - }, - "ip_address" : { - "type" : "string" - }, - "region_geoname_id" : { - "type" : "integer" - }, - "region_iso_code" : { - "type" : "string" - }, - "country_code" : { - "type" : "string" - }, - "security" : { - "properties" : { - "is_vpn" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "connection" : { - "properties" : { - "isp_name" : { - "type" : "string" - }, - "connection_type" : { - "type" : "string" - }, - "organization_name" : { - "type" : "string" - }, - "autonomous_system_organization" : { - "type" : "string" - }, - "autonomous_system_number" : { - "type" : "integer" - } - }, - "type" : "object" - }, - "currency" : { - "properties" : { - "currency_name" : { - "type" : "string" - }, - "currency_code" : { - "type" : "string" - } - }, - "type" : "object" - }, - "continent_geoname_id" : { - "type" : "integer" - }, - "postal_code" : { - "type" : "string" - }, - "region" : { - "type" : "string" - }, - "longitude" : { - "type" : "number" - } - }, - "type" : "object" - } - } - }, - "externalDocs" : { - "description" : "API Documentation", - "url" : "https://www.abstractapi.com/ip-geolocation-api#docs" - } -} \ No newline at end of file diff --git a/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json b/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json deleted file mode 100644 index 78f32585..00000000 --- a/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "openapi" : "3.0.1", - "info" : { - "description" : "Abstract IP geolocation API allows developers to retrieve the region, country and city behind any IP worldwide. The API covers the geolocation of IPv4 and IPv6 addresses in 180+ countries worldwide. Extra information can be retrieved like the currency, flag or language associated to an IP.", - "title" : "IP geolocation API", - "version" : "1.0.0", - "x-providerName" : "abstractapi.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_global-uploads.webflow.com_5ebbd0a566a3996636e55959_5ec2ba29feeeb05d69160e7b_webclip.png" - }, - "x-apisguru-categories" : [ "location" ], - "x-serviceName" : "geolocation", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://documentation.abstractapi.com/ip-geolocation-openapi.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "paths" : { - "/v1" : { - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "get" : { - "description" : "Retrieve the location of an IP address", - "parameters" : [ { - "explode" : true, - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "api_key" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "195.154.25.40", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "ip_address" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "country,city,timezone", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "fields" - } ], - "responses" : { - "200" : { - "description" : "Location of geolocated IP", - "content" : { - "application/json" : { - "examples" : { - "0" : { - "value" : "{\"ip_address\":\"195.154.25.40\",\"city\":\"Paris\",\"city_geoname_id\":2988507,\"region\":\"?le-de-France\",\"region_iso_code\":\"IDF\",\"region_geoname_id\":3012874,\"postal_code\":\"75008\",\"country\":\"France\",\"country_code\":\"FR\",\"country_geoname_id\":3017382,\"country_is_eu\":true,\"continent\":\"Europe\",\"continent_code\":\"EU\",\"continent_geoname_id\":6255148,\"longitude\":2.4075,\"latitude\":48.8323,\"security\":{\"is_vpn\":false},\"timezone\":{\"name\":\"Europe/Paris\",\"abbreviation\":\"CEST\",\"gmt_offset\":2,\"current_time\":\"15:42:18\",\"is_dst\":true},\"flag\":{\"emoji\":\"<?<��\",\"unicode\":\"U+1F1EB U+1F1F7\",\"png\":\"https://static.abstractapi.com/country-flags/FR_flag.png\",\"svg\":\"https://static.abstractapi.com/country-flags/FR_flag.svg\"},\"currency\":{\"currency_name\":\"Euros\",\"currency_code\":\"EUR\"},\"connection\":{\"autonomous_system_number\":12876,\"autonomous_system_organization\":\"Online S.a.s.\",\"connection_type\":\"Corporate\",\"isp_name\":\"Online S.A.S.\",\"organization_name\":\"ONLINE\"}}" - } - }, - "schema" : { - "$ref" : "#/components/schemas/inline_response_200" - } - } - } - } - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ] - } - } - }, - "components" : { - "schemas" : { - "inline_response_200" : { - "properties" : { - "city" : { - "type" : "string" - }, - "city_geoname_id" : { - "type" : "integer" - }, - "connection" : { - "properties" : { - "autonomous_system_number" : { - "type" : "integer" - }, - "autonomous_system_organization" : { - "type" : "string" - }, - "connection_type" : { - "type" : "string" - }, - "isp_name" : { - "type" : "string" - }, - "organization_name" : { - "type" : "string" - } - }, - "type" : "object" - }, - "continent" : { - "type" : "string" - }, - "continent_code" : { - "type" : "string" - }, - "continent_geoname_id" : { - "type" : "integer" - }, - "country" : { - "type" : "string" - }, - "country_code" : { - "type" : "string" - }, - "country_geoname_id" : { - "type" : "integer" - }, - "country_is_eu" : { - "type" : "boolean" - }, - "currency" : { - "properties" : { - "currency_code" : { - "type" : "string" - }, - "currency_name" : { - "type" : "string" - } - }, - "type" : "object" - }, - "flag" : { - "properties" : { - "emoji" : { - "type" : "string" - }, - "png" : { - "type" : "string" - }, - "svg" : { - "type" : "string" - }, - "unicode" : { - "type" : "string" - } - }, - "type" : "object" - }, - "ip_address" : { - "type" : "string" - }, - "latitude" : { - "type" : "number" - }, - "longitude" : { - "type" : "number" - }, - "postal_code" : { - "type" : "string" - }, - "region" : { - "type" : "string" - }, - "region_geoname_id" : { - "type" : "integer" - }, - "region_iso_code" : { - "type" : "string" - }, - "security" : { - "properties" : { - "is_vpn" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "timezone" : { - "properties" : { - "abbreviation" : { - "type" : "string" - }, - "current_time" : { - "type" : "string" - }, - "gmt_offset" : { - "type" : "integer" - }, - "is_dst" : { - "type" : "boolean" - }, - "name" : { - "type" : "string" - } - }, - "type" : "object" - } - }, - "type" : "object" - } - } - }, - "externalDocs" : { - "description" : "API Documentation", - "url" : "https://www.abstractapi.com/ip-geolocation-api#docs" - } -} \ No newline at end of file diff --git a/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json b/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json deleted file mode 100644 index 47f0f252..00000000 --- a/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "support@adyen.com", - "name" : "Adyen Support", - "url" : "https://support.adyen.com/", - "x-twitter" : "Adyen" - }, - "description" : "A web service containing utility functions available for merchants integrating with Checkout APIs.\n## Authentication\nEach request to the Checkout Utility API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the Checkout API key](https://docs.adyen.com/developers/user-management/how-to-get-the-checkout-api-key). Then set this key to the `X-API-Key` header value, for example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: Your_Checkout_API_key\" \\\n...\n```\nNote that when going live, you need to generate a new API Key to access the [live endpoints](https://docs.adyen.com/developers/api-reference/live-endpoints).\n\n## Versioning\nCheckout API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://checkout-test.adyen.com/v1/originKeys\n```", - "termsOfService" : "https://docs.adyen.com/legal/terms-conditions", - "title" : "Adyen Checkout Utility Service", - "version" : "1", - "x-providerName" : "adyen.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_twitter.com_Adyen_profile_image.jpeg" - }, - "x-apisguru-categories" : [ "payment" ], - "x-serviceName" : "CheckoutUtilityService", - "x-origin" : [ { - "converter" : { - "url" : "https://github.com/lucybot/api-spec-converter", - "version" : "2.7.11" - }, - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/adyen/adyen-openapi/master/specs/3.0/CheckoutUtilityService-v1.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://checkout-test.adyen.com/v1" - } ], - "paths" : { - "/originKeys" : { - "post" : { - "summary" : "Create originKey values for one or more merchant domains.", - "description" : "This operation takes the origin domains and returns a JSON object containing the corresponding origin keys for the domains.", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "OK - the request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityResponse" - } - } - } - }, - "400" : { - "description" : "Bad Request - a problem reading or understanding the request." - }, - "422" : { - "description" : "Unprocessable Entity - a request validation error." - }, - "401" : { - "description" : "Unauthorized - authentication required." - }, - "500" : { - "description" : "Internal Server Error - the server could not process the request." - }, - "403" : { - "description" : "Forbidden - insufficient permissions to process the request." - } - }, - "x-groupName" : "General", - "x-sortIndex" : 0 - } - } - }, - "components" : { - "schemas" : { - "CheckoutUtilityRequest" : { - "properties" : { - "originDomains" : { - "description" : "The list of origin domains, for which origin keys are requested.", - "type" : "array", - "items" : { - "type" : "string" - } - } - }, - "required" : [ "originDomains" ] - }, - "CheckoutUtilityResponse" : { - "properties" : { - "originKeys" : { - "description" : "The list of origin keys for all requested domains. For each list item, the key is the domain and the value is the origin key.", - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - } - } - } - }, - "x-groups" : [ "General" ] -} \ No newline at end of file diff --git a/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json b/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json deleted file mode 100644 index cd12a310..00000000 --- a/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "support@adyen.com", - "name" : "Adyen Support", - "url" : "https://support.adyen.com/", - "x-twitter" : "Adyen" - }, - "description" : "A web service containing utility functions available for merchants integrating with Checkout APIs.\n## Authentication\nEach request to the Checkout Utility API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the Checkout API key](https://docs.adyen.com/developers/user-management/how-to-get-the-checkout-api-key). Then set this key to the `X-API-Key` header value, for example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: Your_Checkout_API_key\" \\\n...\n```\nNote that when going live, you need to generate a new API Key to access the [live endpoints](https://docs.adyen.com/developers/api-reference/live-endpoints).\n\n## Versioning\nCheckout API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://checkout-test.adyen.com/v1/originKeys\n```", - "termsOfService" : "https://docs.adyen.com/legal/terms-conditions", - "title" : "Adyen Checkout Utility Service", - "version" : "1", - "x-providerName" : "adyen.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_twitter.com_Adyen_profile_image.jpeg" - }, - "x-apisguru-categories" : [ "payment" ], - "x-serviceName" : "CheckoutUtilityService", - "x-origin" : [ { - "converter" : { - "url" : "https://github.com/lucybot/api-spec-converter", - "version" : "2.7.11" - }, - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/adyen/adyen-openapi/master/specs/3.0/CheckoutUtilityService-v1.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://checkout-test.adyen.com/v1" - } ], - "paths" : { - "/originKeys" : { - "post" : { - "summary" : "Create originKey values for one or more merchant domains.", - "description" : "This operation takes the origin domains and returns a JSON object containing the corresponding origin keys for the domains.", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "OK - the request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityResponse" - } - } - } - }, - "400" : { - "description" : "Bad Request - a problem reading or understanding the request." - }, - "401" : { - "description" : "Unauthorized - authentication required." - }, - "403" : { - "description" : "Forbidden - insufficient permissions to process the request." - }, - "422" : { - "description" : "Unprocessable Entity - a request validation error." - }, - "500" : { - "description" : "Internal Server Error - the server could not process the request." - } - }, - "x-groupName" : "General", - "x-sortIndex" : 0 - } - } - }, - "components" : { - "schemas" : { - "CheckoutUtilityRequest" : { - "properties" : { - "originDomains" : { - "description" : "The list of origin domains, for which origin keys are requested.", - "type" : "array", - "items" : { - "type" : "string" - } - } - }, - "required" : [ "originDomains" ] - }, - "CheckoutUtilityResponse" : { - "properties" : { - "originKeys" : { - "description" : "The list of origin keys for all requested domains. For each list item, the key is the domain and the value is the origin key.", - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - } - } - } - }, - "x-groups" : [ "General" ] -} \ No newline at end of file diff --git a/gen-api-ex/petstore-v2-actual.json b/gen-api-ex/petstore-v2-actual.json deleted file mode 100644 index e69de29b..00000000 diff --git a/gen-api-ex/petstore-v2-expected.json b/gen-api-ex/petstore-v2-expected.json deleted file mode 100644 index 59ea6f3d..00000000 --- a/gen-api-ex/petstore-v2-expected.json +++ /dev/null @@ -1,992 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "description" : "This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.", - "license" : { - "name" : "Apache-2.0", - "url" : "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "title" : "OpenAPI Petstore", - "version" : "1.0.0" - }, - "servers" : [ { - "url" : "https://petstore.swagger.io/v2" - } ], - "tags" : [ { - "name" : "pet", - "description" : "Everything about your Pets" - }, { - "name" : "store", - "description" : "Access to Petstore orders" - }, { - "name" : "user", - "description" : "Operations about user" - } ], - "paths" : { - "/pet" : { - "put" : { - "tags" : [ "pet" ], - "summary" : "Update an existing pet", - "description" : "", - "operationId" : "updatePet", - "requestBody" : { - "$ref" : "#/components/requestBodies/Pet" - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Pet not found" - }, - "405" : { - "description" : "Validation exception" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - }, - "post" : { - "tags" : [ "pet" ], - "summary" : "Add a new pet to the store", - "description" : "", - "operationId" : "addPet", - "requestBody" : { - "$ref" : "#/components/requestBodies/Pet" - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "405" : { - "description" : "Invalid input" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/pet/findByStatus" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Finds Pets by status", - "description" : "Multiple status values can be provided with comma separated strings", - "operationId" : "findPetsByStatus", - "parameters" : [ { - "deprecated" : true, - "description" : "Status values that need to be considered for filter", - "explode" : false, - "required" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] - } - }, - "style" : "form", - "in" : "query", - "name" : "status" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - }, - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "400" : { - "description" : "Invalid status value" - } - }, - "security" : [ { - "petstore_auth" : [ "read:pets" ] - } ] - } - }, - "/pet/findByTags" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Finds Pets by tags", - "description" : "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", - "operationId" : "findPetsByTags", - "parameters" : [ { - "description" : "Tags to filter by", - "explode" : false, - "required" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "style" : "form", - "in" : "query", - "name" : "tags" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - }, - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "400" : { - "description" : "Invalid tag value" - } - }, - "deprecated" : true, - "security" : [ { - "petstore_auth" : [ "read:pets" ] - } ] - } - }, - "/pet/{petId}" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Find pet by ID", - "description" : "Returns a single pet", - "operationId" : "getPetById", - "parameters" : [ { - "description" : "ID of pet to return", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Pet not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - }, - "post" : { - "tags" : [ "pet" ], - "summary" : "Updates a pet in the store with form data", - "description" : "", - "operationId" : "updatePetWithForm", - "parameters" : [ { - "description" : "ID of pet that needs to be updated", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "requestBody" : { - "content" : { - "application/x-www-form-urlencoded" : { - "schema" : { - "properties" : { - "name" : { - "description" : "Updated name of the pet", - "type" : "string" - }, - "status" : { - "description" : "Updated status of the pet", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "responses" : { - "405" : { - "description" : "Invalid input" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - }, - "delete" : { - "tags" : [ "pet" ], - "summary" : "Deletes a pet", - "description" : "", - "operationId" : "deletePet", - "parameters" : [ { - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "header", - "name" : "api_key" - }, { - "description" : "Pet id to delete", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "responses" : { - "400" : { - "description" : "Invalid pet value" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/pet/{petId}/uploadImage" : { - "post" : { - "tags" : [ "pet" ], - "summary" : "uploads an image", - "description" : "", - "operationId" : "uploadFile", - "parameters" : [ { - "description" : "ID of pet to update", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "requestBody" : { - "content" : { - "multipart/form-data" : { - "schema" : { - "properties" : { - "additionalMetadata" : { - "description" : "Additional data to pass to server", - "type" : "string" - }, - "file" : { - "description" : "file to upload", - "format" : "binary", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ApiResponse" - } - } - } - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/store/inventory" : { - "get" : { - "tags" : [ "store" ], - "summary" : "Returns pet inventories by status", - "description" : "Returns a map of status codes to quantities", - "operationId" : "getInventory", - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "type" : "object", - "additionalProperties" : { - "format" : "int32", - "type" : "integer" - } - } - } - } - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/store/order" : { - "post" : { - "tags" : [ "store" ], - "summary" : "Place an order for a pet", - "description" : "", - "operationId" : "placeOrder", - "requestBody" : { - "description" : "order placed for purchasing the pet", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "400" : { - "description" : "Invalid Order" - } - } - } - }, - "/store/order/{orderId}" : { - "get" : { - "tags" : [ "store" ], - "summary" : "Find purchase order by ID", - "description" : "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions", - "operationId" : "getOrderById", - "parameters" : [ { - "description" : "ID of pet that needs to be fetched", - "required" : true, - "schema" : { - "format" : "int64", - "maximum" : 10, - "minimum" : 1, - "type" : "integer" - }, - "in" : "path", - "name" : "orderId" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Order not found" - } - } - }, - "delete" : { - "tags" : [ "store" ], - "summary" : "Delete purchase order by ID", - "description" : "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors", - "operationId" : "deleteOrder", - "parameters" : [ { - "description" : "ID of the order that needs to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "orderId" - } ], - "responses" : { - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Order not found" - } - } - } - }, - "/user" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Create user", - "description" : "This can only be done by the logged in user.", - "operationId" : "createUser", - "requestBody" : { - "description" : "Created user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/createWithArray" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Creates list of users with given input array", - "description" : "", - "operationId" : "createUsersWithArrayInput", - "requestBody" : { - "$ref" : "#/components/requestBodies/UserArray" - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/createWithList" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Creates list of users with given input array", - "description" : "", - "operationId" : "createUsersWithListInput", - "requestBody" : { - "$ref" : "#/components/requestBodies/UserArray" - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/login" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Logs user into the system", - "description" : "", - "operationId" : "loginUser", - "parameters" : [ { - "description" : "The user name for login", - "required" : true, - "schema" : { - "pattern" : "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$", - "type" : "string" - }, - "in" : "query", - "name" : "username" - }, { - "description" : "The password for login in clear text", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "password" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "Set-Cookie" : { - "description" : "Cookie authentication key for use with the `api_key` apiKey authentication.", - "schema" : { - "example" : "AUTH_KEY=abcde12345; Path=/; HttpOnly", - "type" : "string" - } - }, - "X-Rate-Limit" : { - "description" : "calls per hour allowed by the user", - "schema" : { - "format" : "int32", - "type" : "integer" - } - }, - "X-Expires-After" : { - "description" : "date in UTC when token expires", - "schema" : { - "format" : "date-time", - "type" : "string" - } - } - }, - "content" : { - "application/xml" : { - "schema" : { - "type" : "string" - } - }, - "application/json" : { - "schema" : { - "type" : "string" - } - } - } - }, - "400" : { - "description" : "Invalid username/password supplied" - } - } - } - }, - "/user/logout" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Logs out current logged in user session", - "description" : "", - "operationId" : "logoutUser", - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/{username}" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Get user by user name", - "description" : "", - "operationId" : "getUserByName", - "parameters" : [ { - "description" : "The name that needs to be fetched. Use user1 for testing.", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "400" : { - "description" : "Invalid username supplied" - }, - "404" : { - "description" : "User not found" - } - } - }, - "put" : { - "tags" : [ "user" ], - "summary" : "Updated user", - "description" : "This can only be done by the logged in user.", - "operationId" : "updateUser", - "parameters" : [ { - "description" : "name that need to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "requestBody" : { - "description" : "Updated user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "responses" : { - "400" : { - "description" : "Invalid user supplied" - }, - "404" : { - "description" : "User not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - }, - "delete" : { - "tags" : [ "user" ], - "summary" : "Delete user", - "description" : "This can only be done by the logged in user.", - "operationId" : "deleteUser", - "parameters" : [ { - "description" : "The name that needs to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "responses" : { - "400" : { - "description" : "Invalid username supplied" - }, - "404" : { - "description" : "User not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - } - }, - "components" : { - "requestBodies" : { - "UserArray" : { - "description" : "List of user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/User" - } - } - } - } - }, - "Pet" : { - "description" : "Pet object that needs to be added to the store", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "schemas" : { - "Order" : { - "description" : "An order for a pets from the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "petId" : { - "format" : "int64", - "type" : "integer" - }, - "quantity" : { - "format" : "int32", - "type" : "integer" - }, - "shipDate" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "description" : "Order Status", - "type" : "string", - "enum" : [ "placed", "approved", "delivered" ] - }, - "complete" : { - "type" : "boolean", - "default" : false - } - }, - "type" : "object", - "title" : "Pet Order", - "xml" : { - "name" : "Order" - } - }, - "Category" : { - "description" : "A category for a pet", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "name" : { - "pattern" : "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$", - "type" : "string" - } - }, - "type" : "object", - "title" : "Pet category", - "xml" : { - "name" : "Category" - } - }, - "User" : { - "description" : "A User who is purchasing from the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "username" : { - "type" : "string" - }, - "firstName" : { - "type" : "string" - }, - "lastName" : { - "type" : "string" - }, - "email" : { - "type" : "string" - }, - "password" : { - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "userStatus" : { - "description" : "User Status", - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object", - "title" : "a User", - "xml" : { - "name" : "User" - } - }, - "Tag" : { - "description" : "A tag for a pet", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "name" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "Pet Tag", - "xml" : { - "name" : "Tag" - } - }, - "Pet" : { - "description" : "A pet for sale in the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "category" : { - "$ref" : "#/components/schemas/Category" - }, - "name" : { - "example" : "doggie", - "type" : "string" - }, - "photoUrls" : { - "type" : "array", - "xml" : { - "name" : "photoUrl", - "wrapped" : true - }, - "items" : { - "type" : "string" - } - }, - "tags" : { - "type" : "array", - "xml" : { - "name" : "tag", - "wrapped" : true - }, - "items" : { - "$ref" : "#/components/schemas/Tag" - } - }, - "status" : { - "description" : "pet status in the store", - "deprecated" : true, - "type" : "string", - "enum" : [ "available", "pending", "sold" ] - } - }, - "type" : "object", - "title" : "a Pet", - "xml" : { - "name" : "Pet" - }, - "required" : [ "name", "photoUrls" ] - }, - "ApiResponse" : { - "description" : "Describes the result of uploading an image resource", - "properties" : { - "code" : { - "format" : "int32", - "type" : "integer" - }, - "type" : { - "type" : "string" - }, - "message" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "An uploaded response" - } - }, - "securitySchemes" : { - "petstore_auth" : { - "type" : "oauth2", - "flows" : { - "implicit" : { - "authorizationUrl" : "http://petstore.swagger.io/api/oauth/dialog", - "scopes" : { - "write:pets" : "modify pets in your account", - "read:pets" : "read your pets" - } - } - } - }, - "api_key" : { - "type" : "apiKey", - "name" : "api_key", - "in" : "header" - } - } - }, - "externalDocs" : { - "description" : "Find out more about Swagger", - "url" : "http://swagger.io" - } -} \ No newline at end of file diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java index 9e6d4b58..b6bf6c4f 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -486,7 +489,7 @@ public class ASTNode<T extends ASTNode> implements Cloneable { } /** * @aspect <NoAspect> - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ /** @apilevel internal */ protected void collect_contributors_OpenAPIObject_schemaTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { @@ -495,16 +498,114 @@ public class ASTNode<T extends ASTNode> implements Cloneable { } } /** @apilevel internal */ - protected void contributeTo_OpenAPIObject_schemaTuples(Set<SchemaTuple> collection) { + protected void contributeTo_OpenAPIObject_schemaTuples(List<SchemaTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_responseTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_responseTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_responseTuples(List<ResponseTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_parameterTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_parameterTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_parameterTuples(List<ParameterTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_requestBodyTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_requestBodyTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_requestBodyTuples(List<RequestBodyTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_headerTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_headerTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_headerTuples(List<HeaderTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_securitySchemeTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_securitySchemeTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_securitySchemeTuples(List<SecuritySchemeTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_linkTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_linkTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_linkTuples(List<LinkTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_callbackTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_callbackTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_callbackTuples(List<CallbackTuple> collection) { } /** * @attribute inh - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13") + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5") public OpenAPIObject root() { if (root_visited) { throw new RuntimeException("Circular definition of attribute ASTNode.root()."); @@ -525,43 +626,43 @@ protected boolean root_visited = false; return false; } /** @apilevel internal */ - public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { + public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { ASTNode self = this; ASTNode parent = getParent(); - while (parent != null && !parent.canDefine_root(self, _callerNode)) { + while (parent != null && !parent.canDefine_inferUrl(self, _callerNode, urls)) { _callerNode = self; self = parent; parent = self.getParent(); } - return parent.Define_root(self, _callerNode); + return parent.Define_inferUrl(self, _callerNode, urls); } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:14 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:26 * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute root + * @return {@code true} if this node has an equation for the inherited attribute inferUrl */ - protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { + protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { return false; } /** @apilevel internal */ - public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { + public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { ASTNode self = this; ASTNode parent = getParent(); - while (parent != null && !parent.canDefine_inferUrl(self, _callerNode, urls)) { + while (parent != null && !parent.canDefine_root(self, _callerNode)) { _callerNode = self; self = parent; parent = self.getParent(); } - return parent.Define_inferUrl(self, _callerNode, urls); + return parent.Define_root(self, _callerNode); } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:21 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:6 * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute inferUrl + * @return {@code true} if this node has an equation for the inherited attribute root */ - protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { + protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { return false; } /** @apilevel internal */ diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java index e5b762c9..f5c67d60 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java index 5c6d5611..d926a96a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java index 33c0d6fe..996791c9 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:109 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:107 * @astdecl AdditionalProperties : ASTNode ::= SchemaOb; * @production AdditionalProperties : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java index 5a39a789..4cf3ac4d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:115 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:113 * @astdecl AllOfSchema : ASTNode ::= SchemaOb; * @production AllOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java index 4ac5ae8d..fb2cc618 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:116 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:114 * @astdecl AnyOfSchema : ASTNode ::= SchemaOb; * @production AnyOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java index 69e53dc8..70819f46 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java index adec7a03..16a824be 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:136 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:134 * @astdecl AuthorizationCode : ASTNode ::= OAuthFlowObject; * @production AuthorizationCode : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java index ad808103..8f23a445 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:82 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:80 * @astdecl CallbackOb : ASTNode; * @production CallbackOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:482 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:507 */ public static CallbackOb parseCallback(Callback callback, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { CallbackObject callbackObject = new CallbackObject(); @@ -34,12 +37,11 @@ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { if( callback.isRef() ){ CallbackReference c = new CallbackReference(); c.setRef(callback.getRef()); - c.setCallbackOb(parseCallback(callback.getReference(context).getMappedContent(Callback.class), context, map)); return c; } else { if( callback.getCallbackPaths() != null ){ for( String key : callback.getCallbackPaths().keySet() ) - callbackObject.addExpression(new Expression(key, PathItemOb.parsePath(callback.getCallbackPath(key), context, map))); + callbackObject.addExpression(new Expression(key, PathItemObject.parsePath(callback.getCallbackPath(key), context, map))); } if( callback.getExtensions() != null ){ for( String key : callback.getExtensions().keySet() ) @@ -127,18 +129,18 @@ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public abstract Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public abstract CallbackObject callbackObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java index 7e0f85d4..56cd2453 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:84 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:82 * @astdecl CallbackObject : CallbackOb ::= Expression* Extension*; * @production CallbackObject : {@link CallbackOb} ::= <span class="component">{@link Expression}*</span> <span class="component">{@link Extension}*</span>; @@ -385,10 +388,10 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(callbackOb); @@ -404,9 +407,9 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; if( c.getNumExpression() != 0 ){ Map<String, Path> paths = new HashMap<>(); - PathItemOb p; + PathItemObject p; for( Expression e : c.getExpressions() ) { - p = e.getPathItemOb(); + p = e.getPathItemObject(); paths.put(e.getName(), p.composePath(p, map)); } callback.setCallbackPaths(paths); @@ -422,11 +425,11 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; protected boolean callbackObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:49 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:44 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public CallbackObject callbackObject() { if (callbackObject_visited) { throw new RuntimeException("Circular definition of attribute CallbackOb.callbackObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java index d5a0c5d5..cefb84fb 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:83 - * @astdecl CallbackReference : CallbackOb ::= <Ref:String> <CallbackOb:CallbackOb>; - * @production CallbackReference : {@link CallbackOb} ::= <span class="component"><Ref:String></span> <span class="component"><CallbackOb:CallbackOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:81 + * @astdecl CallbackReference : CallbackOb ::= <Ref:String>; + * @production CallbackReference : {@link CallbackOb} ::= <span class="component"><Ref:String></span>; */ public class CallbackReference extends CallbackOb implements Cloneable { @@ -43,48 +46,47 @@ public class CallbackReference extends CallbackOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "CallbackOb"}, - type = {"String", "CallbackOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public CallbackReference(String p0, CallbackOb p1) { + public CallbackReference(String p0) { setRef(p0); - setCallbackOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public CallbackReference clone() throws CloneNotSupportedException { CallbackReference node = (CallbackReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public CallbackReference copy() { try { @@ -104,7 +106,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public CallbackReference fullCopy() { @@ -115,7 +117,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public CallbackReference treeCopyNoTransform() { CallbackReference tree = (CallbackReference) copy(); @@ -136,7 +138,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public CallbackReference treeCopy() { CallbackReference tree = (CallbackReference) copy(); @@ -152,10 +154,10 @@ public class CallbackReference extends CallbackOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((CallbackReference) node).tokenString_Ref) && (tokenCallbackOb_CallbackOb == ((CallbackReference) node).tokenCallbackOb_CallbackOb); + return super.is$Equal(node) && (tokenString_Ref == ((CallbackReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class CallbackReference extends CallbackOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme CallbackOb. - * @param value The new value for the lexeme CallbackOb. - * @apilevel high-level - */ - public void setCallbackOb(CallbackOb value) { - tokenCallbackOb_CallbackOb = value; - } - /** @apilevel internal - */ - protected CallbackOb tokenCallbackOb_CallbackOb; - /** - * Retrieves the value for the lexeme CallbackOb. - * @return The value for the lexeme CallbackOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="CallbackOb") - public CallbackOb getCallbackOb() { - return tokenCallbackOb_CallbackOb; - } /** @apilevel internal */ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(callbackOb); @@ -232,21 +214,22 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; protected boolean callbackObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public CallbackObject callbackObject() { if (callbackObject_visited) { throw new RuntimeException("Circular definition of attribute CallbackOb.callbackObject()."); } callbackObject_visited = true; try { - if( getCallbackOb() instanceof CallbackObject ) - return (CallbackObject) getCallbackOb(); - else - return getCallbackOb().callbackObject(); + for( CallbackTuple t : root().callbackTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getCallbackOb().callbackObject(); + } + return new CallbackObject(); } finally { callbackObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java index 7035a5e1..f6fb7289 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:31 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:32 * @astdecl CallbackTuple : ASTNode ::= <Key:String> CallbackOb; * @production CallbackTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link CallbackOb}</span>; @@ -212,4 +215,22 @@ public class CallbackTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_callbackTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:37 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_callbackTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_callbackTuples(List<CallbackTuple> collection) { + super.contributeTo_OpenAPIObject_callbackTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java index adbc890b..5b9757fe 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:135 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:133 * @astdecl ClientCredentials : ASTNode ::= OAuthFlowObject; * @production ClientCredentials : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java index 7dc5938f..65ce6745 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:22 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:23 * @astdecl ComponentsObject : ASTNode ::= SchemaTuple* ResponseTuple* ParameterTuple* ExampleTuple* RequestBodyTuple* HeaderTuple* SecuritySchemeTuple* LinkTuple* CallbackTuple* Extension*; * @production ComponentsObject : {@link ASTNode} ::= <span class="component">{@link SchemaTuple}*</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link ParameterTuple}*</span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link RequestBodyTuple}*</span> <span class="component">{@link HeaderTuple}*</span> <span class="component">{@link SecuritySchemeTuple}*</span> <span class="component">{@link LinkTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -118,7 +121,7 @@ public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:142 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:177 */ public static ComponentsObject parseComponents(Components components, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ComponentsObject componentsObject = new ComponentsObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java index 510b6589..102d7e27 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:8 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:9 * @astdecl ContactObject : ASTNode ::= <Name:String> <Url:String> <Email:String> Extension*; * @production ContactObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Url:String></span> <span class="component"><Email:String></span> <span class="component">{@link Extension}*</span>; @@ -49,7 +52,7 @@ public class ContactObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:68 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:103 */ public static ContactObject parseContact(Contact contact, Map<Object, ASTNode> map){ ContactObject contactObject = new ContactObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java index 16f49cb0..1b9d5207 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:62 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:60 * @astdecl ContentTuple : ASTNode ::= <Key:String> MediaTypeObject; * @production ContentTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link MediaTypeObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java index f44a1adf..a9bb3023 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:48 - * @astdecl Delete : OperationOb ::= <OperationObject:OperationObject>; - * @production Delete : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:46 + * @astdecl Delete : ASTNode ::= OperationObject; + * @production Delete : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Delete extends OperationOb implements Cloneable { +public class Delete extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Delete extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Delete(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Delete clone() throws CloneNotSupportedException { Delete node = (Delete) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Delete copy() { try { @@ -103,7 +107,7 @@ public class Delete extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Delete fullCopy() { @@ -114,7 +118,7 @@ public class Delete extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Delete treeCopyNoTransform() { Delete tree = (Delete) copy(); @@ -135,7 +139,7 @@ public class Delete extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Delete treeCopy() { Delete tree = (Delete) copy(); @@ -151,81 +155,36 @@ public class Delete extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Delete) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java index a4fdd64d..51256379 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:120 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:118 * @astdecl DiscriminatorObject : ASTNode ::= <PropertyName:String> MappingTuple*; * @production DiscriminatorObject : {@link ASTNode} ::= <span class="component"><PropertyName:String></span> <span class="component">{@link MappingTuple}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:840 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:830 */ public static Discriminator composeDiscriminator (DiscriminatorObject discriminatorObject, Map<Object, ASTNode> map) { Discriminator discriminator = new Discriminator(); @@ -44,7 +47,7 @@ public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:752 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:773 */ public static DiscriminatorObject parseDiscriminator (Discriminator discriminator, Map<Object, ASTNode> map) { DiscriminatorObject discriminatorObject = new DiscriminatorObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java index 65618cf6..20e514a4 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:74 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:72 * @astdecl EncodingObject : ASTNode ::= <ContentType:String> HeaderTuple* <Style:String> <Explode:Boolean> <AllowReserved:Boolean> Extension*; * @production EncodingObject : {@link ASTNode} ::= <span class="component"><ContentType:String></span> <span class="component">{@link HeaderTuple}*</span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:493 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:483 */ public static EncodingProperty composeEncodingProperty (EncodingObject encodingObject, Map<Object, ASTNode> map){ EncodingProperty encodingProperty = new EncodingProperty(); @@ -56,7 +59,7 @@ public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:427 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:453 */ public static EncodingObject parseEncoding(EncodingProperty encodingProperty, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { EncodingObject encodingObject = new EncodingObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java index 8404db7e..bb617a96 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:71 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:69 * @astdecl EncodingTuple : ASTNode ::= <Key:String> EncodingObject; * @production EncodingTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link EncodingObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java index 2f2aead6..43112f19 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:19 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:20 * @astdecl Enum : ASTNode ::= <EnumValue:String>; * @production Enum : {@link ASTNode} ::= <span class="component"><EnumValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java index e6d5bba9..4ca43e5a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:110 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:108 * @astdecl EnumObj : ASTNode ::= <EnumOb:Object>; * @production EnumObj : {@link ASTNode} ::= <span class="component"><EnumOb:Object></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java index bfa74789..c6c8cfe2 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:89 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:87 * @astdecl ExampleObject : ASTNode ::= <Summary:String> <Description:String> <Value:Object> <ExternalValue:String> Extension*; * @production ExampleObject : {@link ASTNode} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component"><Value:Object></span> <span class="component"><ExternalValue:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:585 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:575 */ public static Example composeExample (ExampleObject exampleObject, Map<Object, ASTNode> map){ Example example = new Example(); @@ -50,7 +53,7 @@ public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:505 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:529 */ public static ExampleObject parseExample(Example example, OAIContext context, Map<Object, ASTNode> map){ ExampleObject exampleObject = new ExampleObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java index 268a8669..75773890 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:26 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:27 * @astdecl ExampleTuple : ASTNode ::= <Key:String> ExampleObject; * @production ExampleTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ExampleObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java index f82ffed8..da8a0d90 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:85 - * @astdecl Expression : ASTNode ::= <Name:String> PathItemOb; - * @production Expression : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link PathItemOb}</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:83 + * @astdecl Expression : ASTNode ::= <Name:String> PathItemObject; + * @production Expression : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link PathItemObject}</span>; */ public class Expression extends ASTNode<ASTNode> implements Cloneable { @@ -44,11 +47,11 @@ public class Expression extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( - name = {"Name", "PathItemOb"}, - type = {"String", "PathItemOb"}, + name = {"Name", "PathItemObject"}, + type = {"String", "PathItemObject"}, kind = {"Token", "Child"} ) - public Expression(String p0, PathItemOb p1) { + public Expression(String p0, PathItemObject p1) { setName(p0); setChild(p1, 0); } @@ -179,30 +182,30 @@ public class Expression extends ASTNode<ASTNode> implements Cloneable { return tokenString_Name != null ? tokenString_Name : ""; } /** - * Replaces the PathItemOb child. - * @param node The new node to replace the PathItemOb child. + * Replaces the PathItemObject child. + * @param node The new node to replace the PathItemObject child. * @apilevel high-level */ - public void setPathItemOb(PathItemOb node) { + public void setPathItemObject(PathItemObject node) { setChild(node, 0); } /** - * Retrieves the PathItemOb child. - * @return The current node used as the PathItemOb child. + * Retrieves the PathItemObject child. + * @return The current node used as the PathItemObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="PathItemOb") - public PathItemOb getPathItemOb() { - return (PathItemOb) getChild(0); + @ASTNodeAnnotation.Child(name="PathItemObject") + public PathItemObject getPathItemObject() { + return (PathItemObject) getChild(0); } /** - * Retrieves the PathItemOb child. + * Retrieves the PathItemObject child. * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the PathItemOb child. + * @return The current node used as the PathItemObject child. * @apilevel low-level */ - public PathItemOb getPathItemObNoTransform() { - return (PathItemOb) getChildNoTransform(0); + public PathItemObject getPathItemObjectNoTransform() { + return (PathItemObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java index 3562f3fa..88e4f03d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:86 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:84 * @astdecl Extension : ASTNode ::= <Key:String> <Value:Object>; * @production Extension : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component"><Value:Object></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java index 67056a7f..ac998aea 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:56 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:54 * @astdecl ExternalDocObject : ASTNode ::= <Description:String> <Url:String> Extension*; * @production ExternalDocObject : {@link ASTNode} ::= <span class="component"><Description:String></span> <span class="component"><Url:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:365 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:355 */ public static ExternalDocs composeExternalDocs (ExternalDocObject externalDocObject, Map<Object, ASTNode> map){ ExternalDocs externalDocs = new ExternalDocs(); @@ -46,7 +49,7 @@ public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:312 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:340 */ public static ExternalDocObject parseExternalDocs(ExternalDocs externalDocs, Map<Object, ASTNode> map){ ExternalDocObject externalDocObject = new ExternalDocObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java index c79388d2..518fec67 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,37 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:45 - * @astdecl Get : OperationOb ::= <OperationObject:OperationObject>; - * @production Get : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:43 + * @astdecl Get : ASTNode ::= OperationObject; + * @production Get : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Get extends OperationOb implements Cloneable { +public class Get extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:165 + */ + public void connectGET (String path) throws Exception{ + URL url = new URL(path); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + + con.setRequestMethod("GET"); // optional default is GET + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (GET) : " + responseCode); + } /** * @declaredat ASTNode:1 */ @@ -38,52 +66,53 @@ public class Get extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Get(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Get clone() throws CloneNotSupportedException { Get node = (Get) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Get copy() { try { @@ -103,7 +132,7 @@ public class Get extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Get fullCopy() { @@ -114,7 +143,7 @@ public class Get extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Get treeCopyNoTransform() { Get tree = (Get) copy(); @@ -135,7 +164,7 @@ public class Get extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Get treeCopy() { Get tree = (Get) copy(); @@ -151,52 +180,100 @@ public class Get extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Get) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); + } + /** + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:38 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:38") public String inferRandomUrl(String pathRef, OperationObject operationObject) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(pathRef); _parameters.add(operationObject); if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); + throw new RuntimeException("Circular definition of attribute Get.inferRandomUrl(String,OperationObject)."); } inferRandomUrl_String_OperationObject_visited.add(_parameters); try { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + //System.out.println(p.getName() + " ---------- " + str.substring(0, str.indexOf("?")) + " -------- " + p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?")))); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ){ + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + //System.out.println(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + } + System.out.println(paths.size() + " Paths are inferred."); + + for( String path : paths ){ + System.out.println(path); + //connectGET(path); + } + } + return pathRef; + }catch (Exception e) { return ""; + } } finally { inferRandomUrl_String_OperationObject_visited.remove(_parameters); @@ -207,10 +284,10 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj /** * @attribute syn * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:207 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") + @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:207") public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { java.util.List _parameters = new java.util.ArrayList(3); _parameters.add(pathRef); @@ -218,7 +295,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj _parameters.add(responses); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); + throw new RuntimeException("Circular definition of attribute Get.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); } generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); try { @@ -267,6 +344,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj URL url = new URL(pathRef); HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setRequestMethod("GET"); // optional default is GET @@ -282,10 +360,15 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj // print result System.out.println("HTTP status code (GET) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } } return pathRef; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java index 9d818573..204846e6 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:50 - * @astdecl Head : OperationOb ::= <OperationObject:OperationObject>; - * @production Head : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:48 + * @astdecl Head : ASTNode ::= OperationObject; + * @production Head : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Head extends OperationOb implements Cloneable { +public class Head extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Head extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Head(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Head clone() throws CloneNotSupportedException { Head node = (Head) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Head copy() { try { @@ -103,7 +107,7 @@ public class Head extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Head fullCopy() { @@ -114,7 +118,7 @@ public class Head extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Head treeCopyNoTransform() { Head tree = (Head) copy(); @@ -135,7 +139,7 @@ public class Head extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Head treeCopy() { Head tree = (Head) copy(); @@ -151,81 +155,36 @@ public class Head extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Head) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java index 5153fa6f..4b500749 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:98 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:96 * @astdecl HeaderOb : ASTNode; * @production HeaderOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:561 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:584 */ public static HeaderOb parseHeader(Header header, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { HeaderObject headerObject = new HeaderObject(); @@ -34,7 +37,6 @@ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { if( header.isRef() ){ HeaderReference h = new HeaderReference(); h.setRef(header.getRef()); - h.setHeaderOb(parseHeader(header.getReference(context).getMappedContent(Header.class), context, map)); return h; } else { if( header.getRequired() != null ) @@ -147,18 +149,18 @@ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public abstract Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public abstract HeaderObject headerObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java index c0729052..5ce062ad 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:100 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:98 * @astdecl HeaderObject : HeaderOb ::= <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; * @production HeaderObject : {@link HeaderOb} ::= <span class="component"><Description:String></span> <span class="component"><Required:Boolean></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component"><AllowEmptyValue:Boolean></span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -718,10 +721,10 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(headerOb); @@ -772,11 +775,11 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; protected boolean headerObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:67 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:64 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public HeaderObject headerObject() { if (headerObject_visited) { throw new RuntimeException("Circular definition of attribute HeaderOb.headerObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java index 88636092..464de152 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:99 - * @astdecl HeaderReference : HeaderOb ::= <Ref:String> <HeaderOb:HeaderOb>; - * @production HeaderReference : {@link HeaderOb} ::= <span class="component"><Ref:String></span> <span class="component"><HeaderOb:HeaderOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:97 + * @astdecl HeaderReference : HeaderOb ::= <Ref:String>; + * @production HeaderReference : {@link HeaderOb} ::= <span class="component"><Ref:String></span>; */ public class HeaderReference extends HeaderOb implements Cloneable { @@ -43,48 +46,47 @@ public class HeaderReference extends HeaderOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "HeaderOb"}, - type = {"String", "HeaderOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public HeaderReference(String p0, HeaderOb p1) { + public HeaderReference(String p0) { setRef(p0); - setHeaderOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public HeaderReference clone() throws CloneNotSupportedException { HeaderReference node = (HeaderReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public HeaderReference copy() { try { @@ -104,7 +106,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public HeaderReference fullCopy() { @@ -115,7 +117,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public HeaderReference treeCopyNoTransform() { HeaderReference tree = (HeaderReference) copy(); @@ -136,7 +138,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public HeaderReference treeCopy() { HeaderReference tree = (HeaderReference) copy(); @@ -152,10 +154,10 @@ public class HeaderReference extends HeaderOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((HeaderReference) node).tokenString_Ref) && (tokenHeaderOb_HeaderOb == ((HeaderReference) node).tokenHeaderOb_HeaderOb); + return super.is$Equal(node) && (tokenString_Ref == ((HeaderReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class HeaderReference extends HeaderOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme HeaderOb. - * @param value The new value for the lexeme HeaderOb. - * @apilevel high-level - */ - public void setHeaderOb(HeaderOb value) { - tokenHeaderOb_HeaderOb = value; - } - /** @apilevel internal - */ - protected HeaderOb tokenHeaderOb_HeaderOb; - /** - * Retrieves the value for the lexeme HeaderOb. - * @return The value for the lexeme HeaderOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="HeaderOb") - public HeaderOb getHeaderOb() { - return tokenHeaderOb_HeaderOb; - } /** @apilevel internal */ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(headerOb); @@ -232,21 +214,22 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; protected boolean headerObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public HeaderObject headerObject() { if (headerObject_visited) { throw new RuntimeException("Circular definition of attribute HeaderOb.headerObject()."); } headerObject_visited = true; try { - if( getHeaderOb() instanceof HeaderObject ) - return (HeaderObject) getHeaderOb(); - else - return getHeaderOb().headerObject(); + for( HeaderTuple t : root().headerTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getHeaderOb().headerObject(); + } + return new HeaderObject(); } finally { headerObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java index f42e2912..d8fa04c5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:28 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:29 * @astdecl HeaderTuple : ASTNode ::= <Key:String> HeaderOb; * @production HeaderTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link HeaderOb}</span>; @@ -212,4 +215,22 @@ public class HeaderTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_headerTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:25 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_headerTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_headerTuples(List<HeaderTuple> collection) { + super.contributeTo_OpenAPIObject_headerTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java index b477bbae..43ea587d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:133 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:131 * @astdecl Implicit : ASTNode ::= OAuthFlowObject; * @production Implicit : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java new file mode 100644 index 00000000..fa1d740b --- /dev/null +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java @@ -0,0 +1,190 @@ +/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ +package de.tudresden.inf.st.openapi.ast; +import org.openapi4j.core.exception.ResolutionException; +import org.openapi4j.core.validation.ValidationException; +import org.openapi4j.parser.model.v3.*; +import org.openapi4j.core.model.reference.Reference; +import org.openapi4j.core.model.OAIContext; +import java.io.IOException; +import java.util.*; +import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import org.openapi4j.core.exception.DecodeException; +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import javax.net.ssl.HttpsURLConnection; +import java.util.Random; +import java.util.stream.IntStream; +/** + * @ast node + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:3 + * @astdecl InferredParameter : ASTNode ::= <Parameter:String>; + * @production InferredParameter : {@link ASTNode} ::= <span class="component"><Parameter:String></span>; + + */ +public class InferredParameter extends ASTNode<ASTNode> implements Cloneable { + /** + * @declaredat ASTNode:1 + */ + public InferredParameter() { + super(); + } + /** + * Initializes the child array to the correct size. + * Initializes List and Opt nta children. + * @apilevel internal + * @ast method + * @declaredat ASTNode:10 + */ + public void init$Children() { + } + /** + * @declaredat ASTNode:12 + */ + @ASTNodeAnnotation.Constructor( + name = {"Parameter"}, + type = {"String"}, + kind = {"Token"} + ) + public InferredParameter(String p0) { + setParameter(p0); + } + /** @apilevel low-level + * @declaredat ASTNode:21 + */ + protected int numChildren() { + return 0; + } + /** + * @apilevel internal + * @declaredat ASTNode:27 + */ + public boolean mayHaveRewrite() { + return false; + } + /** @apilevel internal + * @declaredat ASTNode:31 + */ + public void flushAttrCache() { + super.flushAttrCache(); + } + /** @apilevel internal + * @declaredat ASTNode:35 + */ + public void flushCollectionCache() { + super.flushCollectionCache(); + } + /** @apilevel internal + * @declaredat ASTNode:39 + */ + public InferredParameter clone() throws CloneNotSupportedException { + InferredParameter node = (InferredParameter) super.clone(); + return node; + } + /** @apilevel internal + * @declaredat ASTNode:44 + */ + public InferredParameter copy() { + try { + InferredParameter node = (InferredParameter) clone(); + node.parent = null; + if (children != null) { + node.children = (ASTNode[]) children.clone(); + } + return node; + } catch (CloneNotSupportedException e) { + throw new Error("Error: clone not supported for " + getClass().getName()); + } + } + /** + * Create a deep copy of the AST subtree at this node. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @deprecated Please use treeCopy or treeCopyNoTransform instead + * @declaredat ASTNode:63 + */ + @Deprecated + public InferredParameter fullCopy() { + return treeCopyNoTransform(); + } + /** + * Create a deep copy of the AST subtree at this node. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @declaredat ASTNode:73 + */ + public InferredParameter treeCopyNoTransform() { + InferredParameter tree = (InferredParameter) copy(); + if (children != null) { + for (int i = 0; i < children.length; ++i) { + ASTNode child = (ASTNode) children[i]; + if (child != null) { + child = child.treeCopyNoTransform(); + tree.setChild(child, i); + } + } + } + return tree; + } + /** + * Create a deep copy of the AST subtree at this node. + * The subtree of this node is traversed to trigger rewrites before copy. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @declaredat ASTNode:93 + */ + public InferredParameter treeCopy() { + InferredParameter tree = (InferredParameter) copy(); + if (children != null) { + for (int i = 0; i < children.length; ++i) { + ASTNode child = (ASTNode) getChild(i); + if (child != null) { + child = child.treeCopy(); + tree.setChild(child, i); + } + } + } + return tree; + } + /** @apilevel internal + * @declaredat ASTNode:107 + */ + protected boolean is$Equal(ASTNode node) { + return super.is$Equal(node) && (tokenString_Parameter == ((InferredParameter) node).tokenString_Parameter); + } + /** + * Replaces the lexeme Parameter. + * @param value The new value for the lexeme Parameter. + * @apilevel high-level + */ + public void setParameter(String value) { + tokenString_Parameter = value; + } + /** @apilevel internal + */ + protected String tokenString_Parameter; + /** + * Retrieves the value for the lexeme Parameter. + * @return The value for the lexeme Parameter. + * @apilevel high-level + */ + @ASTNodeAnnotation.Token(name="Parameter") + public String getParameter() { + return tokenString_Parameter != null ? tokenString_Parameter : ""; + } + /** @apilevel internal */ + public ASTNode rewriteTo() { + return super.rewriteTo(); + } + /** @apilevel internal */ + public boolean canRewrite() { + return false; + } +} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java index 981174b2..74a8e66d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:5 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:6 * @astdecl InfoObject : ASTNode ::= <Title:String> <Description:String> <TermsOfService:String> [ContactObject] [LicenseObject] <Version:String> Extension*; * @production InfoObject : {@link ASTNode} ::= <span class="component"><Title:String></span> <span class="component"><Description:String></span> <span class="component"><TermsOfService:String></span> <span class="component">[{@link ContactObject}]</span> <span class="component">[{@link LicenseObject}]</span> <span class="component"><Version:String></span> <span class="component">{@link Extension}*</span>; @@ -55,7 +58,7 @@ public class InfoObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:44 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:79 */ public static InfoObject parseInfo(Info info, Map<Object, ASTNode> map) { InfoObject infoObject = new InfoObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java index 87a3c379..4850f002 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:111 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:109 * @astdecl ItemsSchema : ASTNode ::= SchemaOb; * @production ItemsSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java index 8c97e780..b19b425b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java index 000bc13e..0a2e9491 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:11 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:12 * @astdecl LicenseObject : ASTNode ::= <Name:String> <Url:String> Extension*; * @production LicenseObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Url:String></span> <span class="component">{@link Extension}*</span>; @@ -47,7 +50,7 @@ public class LicenseObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:86 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:121 */ public static LicenseObject parseLicense(License license, Map<Object, ASTNode> map){ LicenseObject licenseObject = new LicenseObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java index 827c3456..51b1a37d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:92 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:90 * @astdecl LinkOb : ASTNode; * @production LinkOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:530 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:554 */ public static LinkOb parseLink(Link link, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { LinkObject linkObject = new LinkObject(); @@ -34,7 +37,6 @@ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { if( link.isRef() ){ LinkReference l = new LinkReference(); l.setRef(link.getRef()); - l.setLinkOb(parseLink(link.getReference(context).getMappedContent(Link.class), context, map)); return l; } else { if( link.getOperationRef() != null ) @@ -135,18 +137,18 @@ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public abstract Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public abstract LinkObject linkObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java index 2b418d71..361b2b2a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:94 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:92 * @astdecl LinkObject : LinkOb ::= <OperationRef:String> <OperationID:String> LinkParameterTuple* HeaderTuple* <Description:String> [ServerObject] Extension*; * @production LinkObject : {@link LinkOb} ::= <span class="component"><OperationRef:String></span> <span class="component"><OperationID:String></span> <span class="component">{@link LinkParameterTuple}*</span> <span class="component">{@link HeaderTuple}*</span> <span class="component"><Description:String></span> <span class="component">[{@link ServerObject}]</span> <span class="component">{@link Extension}*</span>; @@ -613,10 +616,10 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(linkOb); @@ -655,11 +658,11 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; protected boolean linkObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:58 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:54 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public LinkObject linkObject() { if (linkObject_visited) { throw new RuntimeException("Circular definition of attribute LinkOb.linkObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java index cb7ca683..28fa4c0e 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:95 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:93 * @astdecl LinkParameterTuple : ASTNode ::= <LinkParameterKey:String> <LinkParameterValue:String>; * @production LinkParameterTuple : {@link ASTNode} ::= <span class="component"><LinkParameterKey:String></span> <span class="component"><LinkParameterValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java index b3e65fa3..4ae550cb 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:93 - * @astdecl LinkReference : LinkOb ::= <Ref:String> <LinkOb:LinkOb>; - * @production LinkReference : {@link LinkOb} ::= <span class="component"><Ref:String></span> <span class="component"><LinkOb:LinkOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:91 + * @astdecl LinkReference : LinkOb ::= <Ref:String>; + * @production LinkReference : {@link LinkOb} ::= <span class="component"><Ref:String></span>; */ public class LinkReference extends LinkOb implements Cloneable { @@ -43,48 +46,47 @@ public class LinkReference extends LinkOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "LinkOb"}, - type = {"String", "LinkOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public LinkReference(String p0, LinkOb p1) { + public LinkReference(String p0) { setRef(p0); - setLinkOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public LinkReference clone() throws CloneNotSupportedException { LinkReference node = (LinkReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public LinkReference copy() { try { @@ -104,7 +106,7 @@ public class LinkReference extends LinkOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public LinkReference fullCopy() { @@ -115,7 +117,7 @@ public class LinkReference extends LinkOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public LinkReference treeCopyNoTransform() { LinkReference tree = (LinkReference) copy(); @@ -136,7 +138,7 @@ public class LinkReference extends LinkOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public LinkReference treeCopy() { LinkReference tree = (LinkReference) copy(); @@ -152,10 +154,10 @@ public class LinkReference extends LinkOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((LinkReference) node).tokenString_Ref) && (tokenLinkOb_LinkOb == ((LinkReference) node).tokenLinkOb_LinkOb); + return super.is$Equal(node) && (tokenString_Ref == ((LinkReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class LinkReference extends LinkOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme LinkOb. - * @param value The new value for the lexeme LinkOb. - * @apilevel high-level - */ - public void setLinkOb(LinkOb value) { - tokenLinkOb_LinkOb = value; - } - /** @apilevel internal - */ - protected LinkOb tokenLinkOb_LinkOb; - /** - * Retrieves the value for the lexeme LinkOb. - * @return The value for the lexeme LinkOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="LinkOb") - public LinkOb getLinkOb() { - return tokenLinkOb_LinkOb; - } /** @apilevel internal */ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(linkOb); @@ -232,21 +214,22 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; protected boolean linkObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public LinkObject linkObject() { if (linkObject_visited) { throw new RuntimeException("Circular definition of attribute LinkOb.linkObject()."); } linkObject_visited = true; try { - if( getLinkOb() instanceof LinkObject ) - return (LinkObject) getLinkOb(); - else - return getLinkOb().linkObject(); + for( LinkTuple t : root().linkTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getLinkOb().linkObject(); + } + return new LinkObject(); } finally { linkObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java index 129378c8..178a7e2f 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:30 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:31 * @astdecl LinkTuple : ASTNode ::= <Key:String> LinkOb; * @production LinkTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link LinkOb}</span>; @@ -212,4 +215,22 @@ public class LinkTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_linkTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:33 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_linkTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_linkTuples(List<LinkTuple> collection) { + super.contributeTo_OpenAPIObject_linkTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java index 8a0c2d31..4092280c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:121 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:119 * @astdecl MappingTuple : ASTNode ::= <Key:String> <Value:String>; * @production MappingTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java index b1d92644..8e89ffd0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:70 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:68 * @astdecl MediaTypeObject : ASTNode ::= [SchemaOb] <Example:Object> ExampleTuple* EncodingTuple* Extension*; * @production MediaTypeObject : {@link ASTNode} ::= <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link EncodingTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:468 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:458 */ public static MediaType composeMediaType (MediaTypeObject mediaTypeObject, Map<Object, ASTNode> map){ MediaType mediaType = new MediaType(); @@ -54,7 +57,7 @@ public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:403 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:429 */ public static MediaTypeObject parseMediaType(MediaType mediaType, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { MediaTypeObject mediaTypeObject = new MediaTypeObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java index 7df53b01..2fc0e34a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:112 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:110 * @astdecl NotSchema : ASTNode ::= SchemaOb; * @production NotSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java index 0c7cfd07..aa1dbf1a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:139 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:137 * @astdecl OAuthFlowObject : ASTNode ::= <AuthorizationUrl:String> <TokenUrl:String> <RefreshUrl:String> ScopesTuple* <Configuration:String> Extension*; * @production OAuthFlowObject : {@link ASTNode} ::= <span class="component"><AuthorizationUrl:String></span> <span class="component"><TokenUrl:String></span> <span class="component"><RefreshUrl:String></span> <span class="component">{@link ScopesTuple}*</span> <span class="component"><Configuration:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:927 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:917 */ public static OAuthFlow composeOAuthFlow (OAuthFlowObject oAuthFlowObject, Map<Object, ASTNode> map){ OAuthFlow oAuthFlow = new OAuthFlow(); @@ -47,7 +50,7 @@ public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:852 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:873 */ public static OAuthFlowObject parseOAuthFlow(OAuthFlow oAuthFlow, Map<Object, ASTNode> map){ OAuthFlowObject oAuthFlowObject = new OAuthFlowObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java index 15faf4ab..569945ea 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:132 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:130 * @astdecl OAuthFlowsObject : ASTNode ::= [Implicit] [Password] [ClientCredentials] [AuthorizationCode] Extension*; * @production OAuthFlowsObject : {@link ASTNode} ::= <span class="component">[{@link Implicit}]</span> <span class="component">[{@link Password}]</span> <span class="component">[{@link ClientCredentials}]</span> <span class="component">[{@link AuthorizationCode}]</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:912 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:902 */ public static OAuthFlows composeOAuthFlows (OAuthFlowsObject oAuthFlowsObject, Map<Object, ASTNode> map){ OAuthFlows oAuthFlows = new OAuthFlows(); @@ -44,7 +47,7 @@ public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:820 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:841 */ public static OAuthFlowsObject parseOAuthFlows(OAuthFlows oAuthFlows, Map<Object, ASTNode> map){ OAuthFlowsObject oAuthFlowsObject = new OAuthFlowsObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java index c16177ec..58274733 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:117 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:115 * @astdecl OneOfSchema : ASTNode ::= SchemaOb; * @production OneOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java index ff1db0e6..9ff5b537 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -19,8 +22,8 @@ import java.util.stream.IntStream; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:2 - * @astdecl OpenAPIObject : ASTNode ::= <OpenAPI:String> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension*; - * @production OpenAPIObject : {@link ASTNode} ::= <span class="component"><OpenAPI:String></span> <span class="component">[{@link InfoObject}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link PathsObject}*</span> <span class="component">[{@link ComponentsObject}]</span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link TagObject}*</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Context:OAIContext></span> <span class="component">{@link Extension}*</span>; + * @astdecl OpenAPIObject : ASTNode ::= <OpenAPI:String> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension* InferredParameter*; + * @production OpenAPIObject : {@link ASTNode} ::= <span class="component"><OpenAPI:String></span> <span class="component">[{@link InfoObject}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link PathsObject}*</span> <span class="component">[{@link ComponentsObject}]</span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link TagObject}*</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Context:OAIContext></span> <span class="component">{@link Extension}*</span> <span class="component">{@link InferredParameter}*</span>; */ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { @@ -45,7 +48,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { if( openapi.getNumPathsObject() != 0 ){ Map<String, Path> paths = new HashMap<>(); for( PathsObject p : openapi.getPathsObjects() ) - paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), PathItemObject.composePath(p.getPathItemObject(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -75,9 +78,21 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { return api3; } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:16 + */ + public void generateRequestsWithInferredParameters () throws Exception { + Set<String> urls = new HashSet<>(); + + generateRequests(); + + for( PathsObject p : getPathsObjects() ) + p.inferUrl(urls); + } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:40 */ public static OpenAPIObject parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException, DecodeException { OpenAPIObject openapi = new OpenAPIObject(); @@ -91,7 +106,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { openapi.setInfoObject(InfoObject.parseInfo(api.getInfo(), map)); if( api.getPaths() != null ){ for( String key : api.getPaths().keySet() ) - openapi.addPathsObject(new PathsObject( key, PathItemOb.parsePath(api.getPath(key), api.getContext(), map))); + openapi.addPathsObject(new PathsObject( key, PathItemObject.parsePath(api.getPath(key), api.getContext(), map))); } if( api.getServers() != null ){ for( Server s : api.getServers() ) @@ -125,7 +140,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { Set<String> urls = new HashSet<>(); Map<ResponseObject, String> responses = new HashMap<>(); - for( PathsObject p : this.getPathsObjects() ) + for( PathsObject p : getPathsObjects() ) p.generateUrl(responses); System.out.println(responses.size()); @@ -205,7 +220,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[8]; + children = new ASTNode[9]; setChild(new Opt(), 0); setChild(new JastAddList(), 1); setChild(new JastAddList(), 2); @@ -214,16 +229,17 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { setChild(new JastAddList(), 5); setChild(new Opt(), 6); setChild(new JastAddList(), 7); + setChild(new JastAddList(), 8); } /** - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ @ASTNodeAnnotation.Constructor( - name = {"OpenAPI", "InfoObject", "ServerObject", "PathsObject", "ComponentsObject", "SecurityRequirementObject", "TagObject", "ExternalDocObject", "Context", "Extension"}, - type = {"String", "Opt<InfoObject>", "JastAddList<ServerObject>", "JastAddList<PathsObject>", "Opt<ComponentsObject>", "JastAddList<SecurityRequirementObject>", "JastAddList<TagObject>", "Opt<ExternalDocObject>", "OAIContext", "JastAddList<Extension>"}, - kind = {"Token", "Opt", "List", "List", "Opt", "List", "List", "Opt", "Token", "List"} + name = {"OpenAPI", "InfoObject", "ServerObject", "PathsObject", "ComponentsObject", "SecurityRequirementObject", "TagObject", "ExternalDocObject", "Context", "Extension", "InferredParameter"}, + type = {"String", "Opt<InfoObject>", "JastAddList<ServerObject>", "JastAddList<PathsObject>", "Opt<ComponentsObject>", "JastAddList<SecurityRequirementObject>", "JastAddList<TagObject>", "Opt<ExternalDocObject>", "OAIContext", "JastAddList<Extension>", "JastAddList<InferredParameter>"}, + kind = {"Token", "Opt", "List", "List", "Opt", "List", "List", "Opt", "Token", "List", "List"} ) - public OpenAPIObject(String p0, Opt<InfoObject> p1, JastAddList<ServerObject> p2, JastAddList<PathsObject> p3, Opt<ComponentsObject> p4, JastAddList<SecurityRequirementObject> p5, JastAddList<TagObject> p6, Opt<ExternalDocObject> p7, OAIContext p8, JastAddList<Extension> p9) { + public OpenAPIObject(String p0, Opt<InfoObject> p1, JastAddList<ServerObject> p2, JastAddList<PathsObject> p3, Opt<ComponentsObject> p4, JastAddList<SecurityRequirementObject> p5, JastAddList<TagObject> p6, Opt<ExternalDocObject> p7, OAIContext p8, JastAddList<Extension> p9, JastAddList<InferredParameter> p10) { setOpenAPI(p0); setChild(p1, 0); setChild(p2, 1); @@ -234,45 +250,74 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { setChild(p7, 6); setContext(p8); setChild(p9, 7); + setChild(p10, 8); } /** @apilevel low-level - * @declaredat ASTNode:39 + * @declaredat ASTNode:41 */ protected int numChildren() { - return 8; + return 9; } /** * @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:47 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:49 + * @declaredat ASTNode:51 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:53 + * @declaredat ASTNode:55 */ public void flushCollectionCache() { super.flushCollectionCache(); OpenAPIObject_schemaTuples_visited = false; OpenAPIObject_schemaTuples_computed = null; OpenAPIObject_schemaTuples_value = null; + OpenAPIObject_responseTuples_visited = false; + OpenAPIObject_responseTuples_computed = null; + OpenAPIObject_responseTuples_value = null; + OpenAPIObject_parameterTuples_visited = false; + OpenAPIObject_parameterTuples_computed = null; + OpenAPIObject_parameterTuples_value = null; + OpenAPIObject_requestBodyTuples_visited = false; + OpenAPIObject_requestBodyTuples_computed = null; + OpenAPIObject_requestBodyTuples_value = null; + OpenAPIObject_headerTuples_visited = false; + OpenAPIObject_headerTuples_computed = null; + OpenAPIObject_headerTuples_value = null; + OpenAPIObject_securitySchemeTuples_visited = false; + OpenAPIObject_securitySchemeTuples_computed = null; + OpenAPIObject_securitySchemeTuples_value = null; + OpenAPIObject_linkTuples_visited = false; + OpenAPIObject_linkTuples_computed = null; + OpenAPIObject_linkTuples_value = null; + OpenAPIObject_callbackTuples_visited = false; + OpenAPIObject_callbackTuples_computed = null; + OpenAPIObject_callbackTuples_value = null; contributorMap_OpenAPIObject_schemaTuples = null; + contributorMap_OpenAPIObject_responseTuples = null; + contributorMap_OpenAPIObject_parameterTuples = null; + contributorMap_OpenAPIObject_requestBodyTuples = null; + contributorMap_OpenAPIObject_headerTuples = null; + contributorMap_OpenAPIObject_securitySchemeTuples = null; + contributorMap_OpenAPIObject_linkTuples = null; + contributorMap_OpenAPIObject_callbackTuples = null; } /** @apilevel internal - * @declaredat ASTNode:61 + * @declaredat ASTNode:91 */ public OpenAPIObject clone() throws CloneNotSupportedException { OpenAPIObject node = (OpenAPIObject) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:66 + * @declaredat ASTNode:96 */ public OpenAPIObject copy() { try { @@ -292,7 +337,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:85 + * @declaredat ASTNode:115 */ @Deprecated public OpenAPIObject fullCopy() { @@ -303,7 +348,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:95 + * @declaredat ASTNode:125 */ public OpenAPIObject treeCopyNoTransform() { OpenAPIObject tree = (OpenAPIObject) copy(); @@ -324,7 +369,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:115 + * @declaredat ASTNode:145 */ public OpenAPIObject treeCopy() { OpenAPIObject tree = (OpenAPIObject) copy(); @@ -340,7 +385,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:129 + * @declaredat ASTNode:159 */ protected boolean is$Equal(ASTNode node) { return super.is$Equal(node) && (tokenString_OpenAPI == ((OpenAPIObject) node).tokenString_OpenAPI) && (tokenOAIContext_Context == ((OpenAPIObject) node).tokenOAIContext_Context); @@ -1088,9 +1133,119 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } + /** + * Replaces the InferredParameter list. + * @param list The new list node to be used as the InferredParameter list. + * @apilevel high-level + */ + public void setInferredParameterList(JastAddList<InferredParameter> list) { + setChild(list, 8); + } + /** + * Retrieves the number of children in the InferredParameter list. + * @return Number of children in the InferredParameter list. + * @apilevel high-level + */ + public int getNumInferredParameter() { + return getInferredParameterList().getNumChild(); + } + /** + * Retrieves the number of children in the InferredParameter list. + * Calling this method will not trigger rewrites. + * @return Number of children in the InferredParameter list. + * @apilevel low-level + */ + public int getNumInferredParameterNoTransform() { + return getInferredParameterListNoTransform().getNumChildNoTransform(); + } + /** + * Retrieves the element at index {@code i} in the InferredParameter list. + * @param i Index of the element to return. + * @return The element at position {@code i} in the InferredParameter list. + * @apilevel high-level + */ + public InferredParameter getInferredParameter(int i) { + return (InferredParameter) getInferredParameterList().getChild(i); + } + /** + * Check whether the InferredParameter list has any children. + * @return {@code true} if it has at least one child, {@code false} otherwise. + * @apilevel high-level + */ + public boolean hasInferredParameter() { + return getInferredParameterList().getNumChild() != 0; + } + /** + * Append an element to the InferredParameter list. + * @param node The element to append to the InferredParameter list. + * @apilevel high-level + */ + public void addInferredParameter(InferredParameter node) { + JastAddList<InferredParameter> list = (parent == null) ? getInferredParameterListNoTransform() : getInferredParameterList(); + list.addChild(node); + } + /** @apilevel low-level + */ + public void addInferredParameterNoTransform(InferredParameter node) { + JastAddList<InferredParameter> list = getInferredParameterListNoTransform(); + list.addChild(node); + } + /** + * Replaces the InferredParameter list element at index {@code i} with the new node {@code node}. + * @param node The new node to replace the old list element. + * @param i The list index of the node to be replaced. + * @apilevel high-level + */ + public void setInferredParameter(InferredParameter node, int i) { + JastAddList<InferredParameter> list = getInferredParameterList(); + list.setChild(node, i); + } + /** + * Retrieves the InferredParameter list. + * @return The node representing the InferredParameter list. + * @apilevel high-level + */ + @ASTNodeAnnotation.ListChild(name="InferredParameter") + public JastAddList<InferredParameter> getInferredParameterList() { + JastAddList<InferredParameter> list = (JastAddList<InferredParameter>) getChild(8); + return list; + } + /** + * Retrieves the InferredParameter list. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The node representing the InferredParameter list. + * @apilevel low-level + */ + public JastAddList<InferredParameter> getInferredParameterListNoTransform() { + return (JastAddList<InferredParameter>) getChildNoTransform(8); + } + /** + * @return the element at index {@code i} in the InferredParameter list without + * triggering rewrites. + */ + public InferredParameter getInferredParameterNoTransform(int i) { + return (InferredParameter) getInferredParameterListNoTransform().getChildNoTransform(i); + } + /** + * Retrieves the InferredParameter list. + * @return The node representing the InferredParameter list. + * @apilevel high-level + */ + public JastAddList<InferredParameter> getInferredParameters() { + return getInferredParameterList(); + } + /** + * Retrieves the InferredParameter list. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The node representing the InferredParameter list. + * @apilevel low-level + */ + public JastAddList<InferredParameter> getInferredParametersNoTransform() { + return getInferredParameterListNoTransform(); + } /** * @aspect <NoAspect> - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ /** @apilevel internal */ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_schemaTuples = null; @@ -1104,32 +1259,147 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 - * @apilevel internal + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 */ - public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { - int childIndex = this.getIndexOfChild(_callerNode); - return this; + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_responseTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_responseTuples() { + if (contributorMap_OpenAPIObject_responseTuples == null) { + contributorMap_OpenAPIObject_responseTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_responseTuples(this, contributorMap_OpenAPIObject_responseTuples); + } } + /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 - * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute root + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 */ - protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { - return true; + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_parameterTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_parameterTuples() { + if (contributorMap_OpenAPIObject_parameterTuples == null) { + contributorMap_OpenAPIObject_parameterTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_parameterTuples(this, contributorMap_OpenAPIObject_parameterTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_requestBodyTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_requestBodyTuples() { + if (contributorMap_OpenAPIObject_requestBodyTuples == null) { + contributorMap_OpenAPIObject_requestBodyTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_requestBodyTuples(this, contributorMap_OpenAPIObject_requestBodyTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_headerTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_headerTuples() { + if (contributorMap_OpenAPIObject_headerTuples == null) { + contributorMap_OpenAPIObject_headerTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_headerTuples(this, contributorMap_OpenAPIObject_headerTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_securitySchemeTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_securitySchemeTuples() { + if (contributorMap_OpenAPIObject_securitySchemeTuples == null) { + contributorMap_OpenAPIObject_securitySchemeTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_securitySchemeTuples(this, contributorMap_OpenAPIObject_securitySchemeTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_linkTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_linkTuples() { + if (contributorMap_OpenAPIObject_linkTuples == null) { + contributorMap_OpenAPIObject_linkTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_linkTuples(this, contributorMap_OpenAPIObject_linkTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_callbackTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_callbackTuples() { + if (contributorMap_OpenAPIObject_callbackTuples == null) { + contributorMap_OpenAPIObject_callbackTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_callbackTuples(this, contributorMap_OpenAPIObject_callbackTuples); + } + } + +/** @apilevel internal */ +protected boolean collectInferredParameters_visited = false; + /** + * @attribute syn + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:7 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:7") + public Set<String> collectInferredParameters() { + if (collectInferredParameters_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.collectInferredParameters()."); + } + collectInferredParameters_visited = true; + try { + Set<String> collect = new HashSet<>(); + + for( InferredParameter i : getInferredParameters() ) + collect.add(i.getParameter()); + + return collect; + } + finally { + collectInferredParameters_visited = false; + } } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 * @apilevel internal */ public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { if (_callerNode == getPathsObjectListNoTransform()) { - // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:21 + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:26 int i = _callerNode.getIndexOfChild(_childNode); { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); - String path = ((OpenAPIObject) getParent()).getServerObject(0).getUrl(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); + String path = getServerObject(0).getUrl(); if( p.hasGet() ) urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); @@ -1144,13 +1414,29 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO } } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 * @apilevel internal * @return {@code true} if this node has an equation for the inherited attribute inferUrl */ protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { return true; } + /** + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @apilevel internal + */ + public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { + int childIndex = this.getIndexOfChild(_callerNode); + return this; + } + /** + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @apilevel internal + * @return {@code true} if this node has an equation for the inherited attribute root + */ + protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { + return true; + } /** * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:83 * @apilevel internal @@ -1160,7 +1446,7 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:84 int i = _callerNode.getIndexOfChild(_childNode); { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); String path = getServerObject(0).getUrl(); if( p.hasGet() ) @@ -1197,12 +1483,12 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO protected boolean OpenAPIObject_schemaTuples_visited = false; /** * @attribute coll - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16") - public Set<SchemaTuple> schemaTuples() { + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8") + public List<SchemaTuple> schemaTuples() { ASTState state = state(); if (OpenAPIObject_schemaTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_schemaTuples_computed == state().cycle()) { return OpenAPIObject_schemaTuples_value; @@ -1223,14 +1509,14 @@ protected boolean OpenAPIObject_schemaTuples_visited = false; return OpenAPIObject_schemaTuples_value; } /** @apilevel internal */ - private Set<SchemaTuple> schemaTuples_compute() { + private List<SchemaTuple> schemaTuples_compute() { ASTNode node = this; while (node != null && !(node instanceof OpenAPIObject)) { node = node.getParent(); } OpenAPIObject root = (OpenAPIObject) node; root.survey_OpenAPIObject_schemaTuples(); - Set<SchemaTuple> _computedValue = new HashSet<>(); + List<SchemaTuple> _computedValue = new ArrayList<>(); if (root.contributorMap_OpenAPIObject_schemaTuples.containsKey(this)) { for (ASTNode contributor : root.contributorMap_OpenAPIObject_schemaTuples.get(this)) { contributor.contributeTo_OpenAPIObject_schemaTuples(_computedValue); @@ -1242,6 +1528,363 @@ protected boolean OpenAPIObject_schemaTuples_visited = false; protected ASTState.Cycle OpenAPIObject_schemaTuples_computed = null; /** @apilevel internal */ - protected Set<SchemaTuple> OpenAPIObject_schemaTuples_value; + protected List<SchemaTuple> OpenAPIObject_schemaTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_responseTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12") + public List<ResponseTuple> responseTuples() { + ASTState state = state(); + if (OpenAPIObject_responseTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_responseTuples_computed == state().cycle()) { + return OpenAPIObject_responseTuples_value; + } + if (OpenAPIObject_responseTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.responseTuples()."); + } + OpenAPIObject_responseTuples_visited = true; + OpenAPIObject_responseTuples_value = responseTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_responseTuples_computed = state().cycle(); + + } else { + OpenAPIObject_responseTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_responseTuples_visited = false; + return OpenAPIObject_responseTuples_value; + } + /** @apilevel internal */ + private List<ResponseTuple> responseTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_responseTuples(); + List<ResponseTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_responseTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_responseTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_responseTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_responseTuples_computed = null; + + /** @apilevel internal */ + protected List<ResponseTuple> OpenAPIObject_responseTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_parameterTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16") + public List<ParameterTuple> parameterTuples() { + ASTState state = state(); + if (OpenAPIObject_parameterTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_parameterTuples_computed == state().cycle()) { + return OpenAPIObject_parameterTuples_value; + } + if (OpenAPIObject_parameterTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.parameterTuples()."); + } + OpenAPIObject_parameterTuples_visited = true; + OpenAPIObject_parameterTuples_value = parameterTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_parameterTuples_computed = state().cycle(); + + } else { + OpenAPIObject_parameterTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_parameterTuples_visited = false; + return OpenAPIObject_parameterTuples_value; + } + /** @apilevel internal */ + private List<ParameterTuple> parameterTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_parameterTuples(); + List<ParameterTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_parameterTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_parameterTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_parameterTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_parameterTuples_computed = null; + + /** @apilevel internal */ + protected List<ParameterTuple> OpenAPIObject_parameterTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_requestBodyTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20") + public List<RequestBodyTuple> requestBodyTuples() { + ASTState state = state(); + if (OpenAPIObject_requestBodyTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_requestBodyTuples_computed == state().cycle()) { + return OpenAPIObject_requestBodyTuples_value; + } + if (OpenAPIObject_requestBodyTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.requestBodyTuples()."); + } + OpenAPIObject_requestBodyTuples_visited = true; + OpenAPIObject_requestBodyTuples_value = requestBodyTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_requestBodyTuples_computed = state().cycle(); + + } else { + OpenAPIObject_requestBodyTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_requestBodyTuples_visited = false; + return OpenAPIObject_requestBodyTuples_value; + } + /** @apilevel internal */ + private List<RequestBodyTuple> requestBodyTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_requestBodyTuples(); + List<RequestBodyTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_requestBodyTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_requestBodyTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_requestBodyTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_requestBodyTuples_computed = null; + + /** @apilevel internal */ + protected List<RequestBodyTuple> OpenAPIObject_requestBodyTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_headerTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24") + public List<HeaderTuple> headerTuples() { + ASTState state = state(); + if (OpenAPIObject_headerTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_headerTuples_computed == state().cycle()) { + return OpenAPIObject_headerTuples_value; + } + if (OpenAPIObject_headerTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.headerTuples()."); + } + OpenAPIObject_headerTuples_visited = true; + OpenAPIObject_headerTuples_value = headerTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_headerTuples_computed = state().cycle(); + + } else { + OpenAPIObject_headerTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_headerTuples_visited = false; + return OpenAPIObject_headerTuples_value; + } + /** @apilevel internal */ + private List<HeaderTuple> headerTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_headerTuples(); + List<HeaderTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_headerTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_headerTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_headerTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_headerTuples_computed = null; + + /** @apilevel internal */ + protected List<HeaderTuple> OpenAPIObject_headerTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_securitySchemeTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28") + public List<SecuritySchemeTuple> securitySchemeTuples() { + ASTState state = state(); + if (OpenAPIObject_securitySchemeTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_securitySchemeTuples_computed == state().cycle()) { + return OpenAPIObject_securitySchemeTuples_value; + } + if (OpenAPIObject_securitySchemeTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.securitySchemeTuples()."); + } + OpenAPIObject_securitySchemeTuples_visited = true; + OpenAPIObject_securitySchemeTuples_value = securitySchemeTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_securitySchemeTuples_computed = state().cycle(); + + } else { + OpenAPIObject_securitySchemeTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_securitySchemeTuples_visited = false; + return OpenAPIObject_securitySchemeTuples_value; + } + /** @apilevel internal */ + private List<SecuritySchemeTuple> securitySchemeTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_securitySchemeTuples(); + List<SecuritySchemeTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_securitySchemeTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_securitySchemeTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_securitySchemeTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_securitySchemeTuples_computed = null; + + /** @apilevel internal */ + protected List<SecuritySchemeTuple> OpenAPIObject_securitySchemeTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_linkTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32") + public List<LinkTuple> linkTuples() { + ASTState state = state(); + if (OpenAPIObject_linkTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_linkTuples_computed == state().cycle()) { + return OpenAPIObject_linkTuples_value; + } + if (OpenAPIObject_linkTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.linkTuples()."); + } + OpenAPIObject_linkTuples_visited = true; + OpenAPIObject_linkTuples_value = linkTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_linkTuples_computed = state().cycle(); + + } else { + OpenAPIObject_linkTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_linkTuples_visited = false; + return OpenAPIObject_linkTuples_value; + } + /** @apilevel internal */ + private List<LinkTuple> linkTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_linkTuples(); + List<LinkTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_linkTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_linkTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_linkTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_linkTuples_computed = null; + + /** @apilevel internal */ + protected List<LinkTuple> OpenAPIObject_linkTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_callbackTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36") + public List<CallbackTuple> callbackTuples() { + ASTState state = state(); + if (OpenAPIObject_callbackTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_callbackTuples_computed == state().cycle()) { + return OpenAPIObject_callbackTuples_value; + } + if (OpenAPIObject_callbackTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.callbackTuples()."); + } + OpenAPIObject_callbackTuples_visited = true; + OpenAPIObject_callbackTuples_value = callbackTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_callbackTuples_computed = state().cycle(); + + } else { + OpenAPIObject_callbackTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_callbackTuples_visited = false; + return OpenAPIObject_callbackTuples_value; + } + /** @apilevel internal */ + private List<CallbackTuple> callbackTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_callbackTuples(); + List<CallbackTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_callbackTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_callbackTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_callbackTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_callbackTuples_computed = null; + + /** @apilevel internal */ + protected List<CallbackTuple> OpenAPIObject_callbackTuples_value; } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java deleted file mode 100644 index e4a48bdc..00000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java +++ /dev/null @@ -1,125 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:43 - * @astdecl OperationOb : ASTNode; - * @production OperationOb : {@link ASTNode}; - - */ -public abstract class OperationOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @declaredat ASTNode:1 - */ - public OperationOb() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** @apilevel low-level - * @declaredat ASTNode:13 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:19 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:23 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:27 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:31 - */ - public OperationOb clone() throws CloneNotSupportedException { - OperationOb node = (OperationOb) super.clone(); - return node; - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:42 - */ - @Deprecated - public abstract OperationOb fullCopy(); - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:50 - */ - public abstract OperationOb treeCopyNoTransform(); - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:58 - */ - public abstract OperationOb treeCopy(); - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public abstract String inferRandomUrl(String pathRef, OperationObject operationObject); - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public abstract String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses); - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java index 37781338..b388aca6 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,15 +21,15 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:44 - * @astdecl OperationObject : OperationOb ::= Tag* <Summary:String> <Description:String> [ExternalDocObject] <OperationID:String> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; - * @production OperationObject : {@link OperationOb} ::= <span class="component">{@link Tag}*</span> <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><OperationID:String></span> <span class="component">{@link ParameterOb}*</span> <span class="component">[{@link RequestBodyOb}]</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link ServerObject}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:42 + * @astdecl OperationObject : ASTNode ::= Tag* <Summary:String> <Description:String> [ExternalDocObject] <OperationID:String> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; + * @production OperationObject : {@link ASTNode} ::= <span class="component">{@link Tag}*</span> <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><OperationID:String></span> <span class="component">{@link ParameterOb}*</span> <span class="component">[{@link RequestBodyOb}]</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link ServerObject}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; */ -public class OperationObject extends OperationOb implements Cloneable { +public class OperationObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:312 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:302 */ public static Operation composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); @@ -80,9 +83,51 @@ public class OperationObject extends OperationOb implements Cloneable { return operation; } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:129 + */ + public void writeDictionary (SchemaOb schema, String resp) throws Exception{ + String schemaName = schema.getClass().getName(); + ObjectMapper mapper = new ObjectMapper(); + JsonNode respNode = mapper.readTree(resp); + String value; + + if (schemaName.substring(schemaName.lastIndexOf(".") + 1).equals("SchemaReference")) { + for (PropertyItem p : schema.schemaObject().getPropertyItems()) { + String infName = ((SchemaReference) schema).getRef().substring(((SchemaReference) schema).getRef().lastIndexOf("/") + 1) + p.getName(); + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(infName + "?" + value)); + root().addInferredParameter(new InferredParameter(p.getName() + "?" + value)); + } + } else { + for (PropertyItem p : schema.schemaObject().getPropertyItems()){ + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(p.getName() + "?" + respNode.get(p.getName()).textValue())); + } + } + + } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:155 + */ + public void writeDictionaryWithArray (SchemaOb schema, String resp) throws Exception{ + ObjectMapper mapper = new ObjectMapper(); + ArrayNode respNode = ((ArrayNode) mapper.readTree(resp)); + Iterator<JsonNode> props = respNode.elements(); + + while( props.hasNext() ) + writeDictionary(schema.schemaObject().getItemsSchema().getSchemaOb(), props.next().toString()); + + } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:261 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:289 */ public static OperationObject parseOperation(Operation operation, OAIContext context, Map<Object, ASTNode> map) throws DecodeException{ OperationObject operationObject = new OperationObject(); @@ -136,7 +181,7 @@ public class OperationObject extends OperationOb implements Cloneable { } /** * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:377 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:364 */ public String generateRandomString(Random rand, JastAddList<EnumObj> objs) { if( objs.getNumChild() != 0 ) @@ -150,7 +195,7 @@ public class OperationObject extends OperationOb implements Cloneable { } /** * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:388 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:375 */ public String generateRandomInt(Random rand, int minimum, int maximum){ if( minimum > -1 && maximum > 0 ) @@ -160,7 +205,7 @@ public class OperationObject extends OperationOb implements Cloneable { else if( maximum > 0 ) return String.valueOf(rand.nextInt(maximum)); return String.valueOf(rand.nextInt()); - } + } /** * @declaredat ASTNode:1 */ @@ -1288,82 +1333,6 @@ public class OperationObject extends OperationOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set addDict_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:64 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:64") - public Map<String, List<String>> addDict(Map<ResponseObject, String> responses) { - Object _parameters = responses; - if (addDict_Map_ResponseObject__String__visited == null) addDict_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (addDict_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationObject.addDict(Map_ResponseObject__String_)."); - } - addDict_Map_ResponseObject__String__visited.add(_parameters); - try { - Map<String, List<String>> map = new HashMap<>(); - - return map; - } - finally { - addDict_Map_ResponseObject__String__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } - } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java index c98cb099..3368d8be 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java index 95f709cd..c5733589 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:49 - * @astdecl Options : OperationOb ::= <OperationObject:OperationObject>; - * @production Options : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:47 + * @astdecl Options : ASTNode ::= OperationObject; + * @production Options : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Options extends OperationOb implements Cloneable { +public class Options extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Options extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Options(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Options clone() throws CloneNotSupportedException { Options node = (Options) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Options copy() { try { @@ -103,7 +107,7 @@ public class Options extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Options fullCopy() { @@ -114,7 +118,7 @@ public class Options extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Options treeCopyNoTransform() { Options tree = (Options) copy(); @@ -135,7 +139,7 @@ public class Options extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Options treeCopy() { Options tree = (Options) copy(); @@ -151,81 +155,36 @@ public class Options extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Options) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java index 2727a42f..273890ba 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:59 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:57 * @astdecl ParameterOb : ASTNode; * @production ParameterOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:329 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:357 */ public static ParameterOb parseParameter(Parameter parameter, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ParameterObject parameterObject = new ParameterObject(); @@ -34,7 +37,6 @@ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable if( parameter.isRef() ){ ParameterReference p = new ParameterReference(); p.setRef(parameter.getRef()); - p.setParameterOb(parseParameter(parameter.getReference(context).getMappedContent(Parameter.class), context, map)); return p; } else { if( parameter.getName() != null ) @@ -151,18 +153,18 @@ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public abstract Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public abstract ParameterObject parameterObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java index e352fe27..b2ca36a0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:61 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:59 * @astdecl ParameterObject : ParameterOb ::= <Name:String> <In:String> <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; * @production ParameterObject : {@link ParameterOb} ::= <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Description:String></span> <span class="component"><Required:Boolean></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component"><AllowEmptyValue:Boolean></span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -760,10 +763,10 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(parameterOb); @@ -828,11 +831,11 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite protected boolean parameterObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:4 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:4 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public ParameterObject parameterObject() { if (parameterObject_visited) { throw new RuntimeException("Circular definition of attribute ParameterOb.parameterObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java index f2e1a36e..56da5984 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:60 - * @astdecl ParameterReference : ParameterOb ::= <Ref:String> <ParameterOb:ParameterOb>; - * @production ParameterReference : {@link ParameterOb} ::= <span class="component"><Ref:String></span> <span class="component"><ParameterOb:ParameterOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:58 + * @astdecl ParameterReference : ParameterOb ::= <Ref:String>; + * @production ParameterReference : {@link ParameterOb} ::= <span class="component"><Ref:String></span>; */ public class ParameterReference extends ParameterOb implements Cloneable { @@ -43,48 +46,47 @@ public class ParameterReference extends ParameterOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "ParameterOb"}, - type = {"String", "ParameterOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public ParameterReference(String p0, ParameterOb p1) { + public ParameterReference(String p0) { setRef(p0); - setParameterOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public ParameterReference clone() throws CloneNotSupportedException { ParameterReference node = (ParameterReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public ParameterReference copy() { try { @@ -104,7 +106,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public ParameterReference fullCopy() { @@ -115,7 +117,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public ParameterReference treeCopyNoTransform() { ParameterReference tree = (ParameterReference) copy(); @@ -136,7 +138,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public ParameterReference treeCopy() { ParameterReference tree = (ParameterReference) copy(); @@ -152,10 +154,10 @@ public class ParameterReference extends ParameterOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((ParameterReference) node).tokenString_Ref) && (tokenParameterOb_ParameterOb == ((ParameterReference) node).tokenParameterOb_ParameterOb); + return super.is$Equal(node) && (tokenString_Ref == ((ParameterReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class ParameterReference extends ParameterOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme ParameterOb. - * @param value The new value for the lexeme ParameterOb. - * @apilevel high-level - */ - public void setParameterOb(ParameterOb value) { - tokenParameterOb_ParameterOb = value; - } - /** @apilevel internal - */ - protected ParameterOb tokenParameterOb_ParameterOb; - /** - * Retrieves the value for the lexeme ParameterOb. - * @return The value for the lexeme ParameterOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="ParameterOb") - public ParameterOb getParameterOb() { - return tokenParameterOb_ParameterOb; - } /** @apilevel internal */ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(parameterOb); @@ -232,21 +214,22 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite protected boolean parameterObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public ParameterObject parameterObject() { if (parameterObject_visited) { throw new RuntimeException("Circular definition of attribute ParameterOb.parameterObject()."); } parameterObject_visited = true; try { - if( getParameterOb() instanceof ParameterObject ) - return (ParameterObject) getParameterOb(); - else - return getParameterOb().parameterObject(); + for( ParameterTuple t : root().parameterTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getParameterOb().parameterObject(); + } + return new ParameterObject(); } finally { parameterObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java index c24e9955..5b5c260d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:25 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:26 * @astdecl ParameterTuple : ASTNode ::= <Key:String> ParameterOb; * @production ParameterTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ParameterOb}</span>; @@ -212,4 +215,22 @@ public class ParameterTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_parameterTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:17 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_parameterTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_parameterTuples(List<ParameterTuple> collection) { + super.contributeTo_OpenAPIObject_parameterTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java index d8f1b0c4..7807b4bb 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:134 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:132 * @astdecl Password : ASTNode ::= OAuthFlowObject; * @production Password : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java index f70f6436..86726a7c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:51 - * @astdecl Patch : OperationOb ::= <OperationObject:OperationObject>; - * @production Patch : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:49 + * @astdecl Patch : ASTNode ::= OperationObject; + * @production Patch : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Patch extends OperationOb implements Cloneable { +public class Patch extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Patch extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Patch(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Patch clone() throws CloneNotSupportedException { Patch node = (Patch) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Patch copy() { try { @@ -103,7 +107,7 @@ public class Patch extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Patch fullCopy() { @@ -114,7 +118,7 @@ public class Patch extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Patch treeCopyNoTransform() { Patch tree = (Patch) copy(); @@ -135,7 +139,7 @@ public class Patch extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Patch treeCopy() { Patch tree = (Patch) copy(); @@ -151,81 +155,36 @@ public class Patch extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Patch) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java deleted file mode 100644 index 50fddea0..00000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java +++ /dev/null @@ -1,199 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:38 - * @astdecl PathItemOb : ASTNode; - * @production PathItemOb : {@link ASTNode}; - - */ -public abstract class PathItemOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:190 - */ - public static PathItemOb parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { - PathItemObject pathItem = new PathItemObject(); - - if( path.isRef() ){ - PathItemReference p = new PathItemReference(); - p.setRef(path.getRef()); - p.setPathItemOb((PathItemObject) parsePath(path.getReference(context).getMappedContent(Path.class), context, map)); - return p; - } 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); - } - if( path.getPut() != null ){ - Put put = new Put(); - put.setOperationObject( OperationObject.parseOperation( path.getPut(), context, map ) ); - pathItem.setPut(put); - } - if( path.getPost() != null ){ - Post post = new Post(); - post.setOperationObject( OperationObject.parseOperation( path.getPost(), context, map ) ); - pathItem.setPost(post); - } - if( path.getDelete() != null ){ - Delete delete = new Delete(); - delete.setOperationObject( OperationObject.parseOperation( path.getDelete(), context, map ) ); - pathItem.setDelete(delete); - } - if( path.getOptions() != null ){ - Options options = new Options(); - options.setOperationObject( OperationObject.parseOperation( path.getOptions(), context, map ) ); - pathItem.setOptions(options); - } - if( path.getHead() != null ){ - Head head = new Head(); - head.setOperationObject( OperationObject.parseOperation( path.getHead(), context, map ) ); - pathItem.setHead(head); - } - if( path.getPatch() != null ){ - Patch patch = new Patch(); - patch.setOperationObject( OperationObject.parseOperation( path.getPatch(), context, map ) ); - pathItem.setPatch(patch); - } - if( path.getTrace() != null ){ - Trace trace = new Trace(); - trace.setOperationObject( OperationObject.parseOperation( path.getTrace(), context, map ) ); - pathItem.setTrace(trace); - } - if( path.getServers() != null ){ - for(Server s : path.getServers()) - pathItem.addServerObject( ServerObject.parseServer(s, map)); - } - if( path.getParameters() != null ){ - for(Parameter p : path.getParameters()) - pathItem.addParameterOb(ParameterOb.parseParameter(p, context, map)); - } - if( path.getExtensions() != null ){ - for( String key : path.getExtensions().keySet() ) - pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); - } - } - - map.put(path, pathItem); - return pathItem; - } - /** - * @declaredat ASTNode:1 - */ - public PathItemOb() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** @apilevel low-level - * @declaredat ASTNode:13 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:19 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:23 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:27 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:31 - */ - public PathItemOb clone() throws CloneNotSupportedException { - PathItemOb node = (PathItemOb) super.clone(); - return node; - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:42 - */ - @Deprecated - public abstract PathItemOb fullCopy(); - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:50 - */ - public abstract PathItemOb treeCopyNoTransform(); - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:58 - */ - public abstract PathItemOb treeCopy(); - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public abstract Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map); - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public abstract PathItemObject pathItemObject(); - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java index 56eda0f0..bc9c1db3 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,122 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:40 - * @astdecl PathItemObject : PathItemOb ::= <Summary:String> <Description:String> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; - * @production PathItemObject : {@link PathItemOb} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link Get}]</span> <span class="component">[{@link Put}]</span> <span class="component">[{@link Post}]</span> <span class="component">[{@link Delete}]</span> <span class="component">[{@link Options}]</span> <span class="component">[{@link Head}]</span> <span class="component">[{@link Patch}]</span> <span class="component">[{@link Trace}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link ParameterOb}*</span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:39 + * @astdecl PathItemObject : ASTNode ::= <Summary:String> <Description:String> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; + * @production PathItemObject : {@link ASTNode} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link Get}]</span> <span class="component">[{@link Put}]</span> <span class="component">[{@link Post}]</span> <span class="component">[{@link Delete}]</span> <span class="component">[{@link Options}]</span> <span class="component">[{@link Head}]</span> <span class="component">[{@link Patch}]</span> <span class="component">[{@link Trace}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link ParameterOb}*</span> <span class="component">{@link Extension}*</span>; */ -public class PathItemObject extends PathItemOb implements Cloneable { +public class PathItemObject extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 + */ + public static Path composePath (PathItemObject pathItem, Map<Object, ASTNode> map){ + Path path = new Path(); + PathItemObject p = (PathItemObject) pathItem; + + if( !p.getSummary().isEmpty()) + path.setSummary(p.getSummary()); + if( !p.getDescription().isEmpty() ) + path.setDescription(p.getDescription()); + if( p.hasGet() ) + path.setGet( OperationObject.composeOperation(p.getGet().getOperationObject(), map) ); + if( p.hasPut() ) + path.setPut( OperationObject.composeOperation(p.getPut().getOperationObject(), map) ); + if( p.hasPost() ) + path.setPost( OperationObject.composeOperation(p.getPost().getOperationObject(), map) ); + if( p.hasDelete() ) + path.setDelete( OperationObject.composeOperation(p.getDelete().getOperationObject(), map) ); + if( p.hasOptions() ) + path.setOptions( OperationObject.composeOperation(p.getOptions().getOperationObject(), map) ); + if( p.hasHead() ) + path.setHead( OperationObject.composeOperation(p.getHead().getOperationObject(), map) ); + if( p.hasPatch() ) + path.setPatch( OperationObject.composeOperation(p.getPatch().getOperationObject(), map) ); + if( p.getNumServerObject() != 0 ){ + for( ServerObject s : p.getServerObjects() ) + path.addServer( ServerObject.composeServer(s, map) ); + } + if( p.getNumParameterOb() != 0 ){ + for( ParameterOb e : p.getParameterObs() ) + path.addParameter( e.composeParameter(e, map) ); + } + if( p.getNumExtension() != 0 ){ + Map<String, Object> extensionMap = new HashMap<>(); + for( Extension e : p.getExtensions() ) + extensionMap.put(e.getKey(), e.getValue()); + path.setExtensions(extensionMap); + } + + return path; + } + /** + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:225 + */ + public static PathItemObject parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { + PathItemObject pathItem = new PathItemObject(); + + 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); + } + if( path.getPut() != null ){ + Put put = new Put(); + put.setOperationObject( OperationObject.parseOperation( path.getPut(), context, map ) ); + pathItem.setPut(put); + } + if( path.getPost() != null ){ + Post post = new Post(); + post.setOperationObject( OperationObject.parseOperation( path.getPost(), context, map ) ); + pathItem.setPost(post); + } + if( path.getDelete() != null ){ + Delete delete = new Delete(); + delete.setOperationObject( OperationObject.parseOperation( path.getDelete(), context, map ) ); + pathItem.setDelete(delete); + } + if( path.getOptions() != null ){ + Options options = new Options(); + options.setOperationObject( OperationObject.parseOperation( path.getOptions(), context, map ) ); + pathItem.setOptions(options); + } + if( path.getHead() != null ){ + Head head = new Head(); + head.setOperationObject( OperationObject.parseOperation( path.getHead(), context, map ) ); + pathItem.setHead(head); + } + if( path.getPatch() != null ){ + Patch patch = new Patch(); + patch.setOperationObject( OperationObject.parseOperation( path.getPatch(), context, map ) ); + pathItem.setPatch(patch); + } + if( path.getTrace() != null ){ + Trace trace = new Trace(); + trace.setOperationObject( OperationObject.parseOperation( path.getTrace(), context, map ) ); + pathItem.setTrace(trace); + } + if( path.getServers() != null ){ + for(Server s : path.getServers()) + pathItem.addServerObject( ServerObject.parseServer(s, map)); + } + if( path.getParameters() != null ){ + for(Parameter p : path.getParameters()) + pathItem.addParameterOb(ParameterOb.parseParameter(p, context, map)); + } + if( path.getExtensions() != null ){ + for( String key : path.getExtensions().keySet() ) + pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); + } + + map.put(path, pathItem); + return pathItem; + } /** * @declaredat ASTNode:1 */ @@ -958,85 +1071,6 @@ public class PathItemObject extends PathItemOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } -/** @apilevel internal */ -protected java.util.Set composePath_PathItemOb_Map_Object__ASTNode__visited; - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathItem); - _parameters.add(map); - if (composePath_PathItemOb_Map_Object__ASTNode__visited == null) composePath_PathItemOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); - if (composePath_PathItemOb_Map_Object__ASTNode__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute PathItemOb.composePath(PathItemOb,Map_Object__ASTNode_)."); - } - composePath_PathItemOb_Map_Object__ASTNode__visited.add(_parameters); - try { - Path path = new Path(); - PathItemObject p = (PathItemObject) pathItem; - - if( !p.getSummary().isEmpty()) - path.setSummary(p.getSummary()); - if( !p.getDescription().isEmpty() ) - path.setDescription(p.getDescription()); - if( p.hasGet() ) - path.setGet( OperationObject.composeOperation(p.getGet().getOperationObject(), map) ); - if( p.hasPut() ) - path.setPut( OperationObject.composeOperation(p.getPut().getOperationObject(), map) ); - if( p.hasPost() ) - path.setPost( OperationObject.composeOperation(p.getPost().getOperationObject(), map) ); - if( p.hasDelete() ) - path.setDelete( OperationObject.composeOperation(p.getDelete().getOperationObject(), map) ); - if( p.hasOptions() ) - path.setOptions( OperationObject.composeOperation(p.getOptions().getOperationObject(), map) ); - if( p.hasHead() ) - path.setHead( OperationObject.composeOperation(p.getHead().getOperationObject(), map) ); - if( p.hasPatch() ) - path.setPatch( OperationObject.composeOperation(p.getPatch().getOperationObject(), map) ); - if( p.getNumServerObject() != 0 ){ - for( ServerObject s : p.getServerObjects() ) - path.addServer( ServerObject.composeServer(s, map) ); - } - if( p.getNumParameterOb() != 0 ){ - for( ParameterOb e : p.getParameterObs() ) - path.addParameter( e.composeParameter(e, map) ); - } - if( p.getNumExtension() != 0 ){ - Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : p.getExtensions() ) - extensionMap.put(e.getKey(), e.getValue()); - path.setExtensions(extensionMap); - } - - return path; - } - finally { - composePath_PathItemOb_Map_Object__ASTNode__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected boolean pathItemObject_visited = false; - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:22 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public PathItemObject pathItemObject() { - if (pathItemObject_visited) { - throw new RuntimeException("Circular definition of attribute PathItemOb.pathItemObject()."); - } - pathItemObject_visited = true; - PathItemObject pathItemObject_value = this; - pathItemObject_visited = false; - return pathItemObject_value; - } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java deleted file mode 100644 index 8de8ae09..00000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java +++ /dev/null @@ -1,263 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:39 - * @astdecl PathItemReference : PathItemOb ::= <Ref:String> <PathItemOb:PathItemOb>; - * @production PathItemReference : {@link PathItemOb} ::= <span class="component"><Ref:String></span> <span class="component"><PathItemOb:PathItemOb></span>; - - */ -public class PathItemReference extends PathItemOb implements Cloneable { - /** - * @declaredat ASTNode:1 - */ - public PathItemReference() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** - * @declaredat ASTNode:12 - */ - @ASTNodeAnnotation.Constructor( - name = {"Ref", "PathItemOb"}, - type = {"String", "PathItemOb"}, - kind = {"Token", "Token"} - ) - public PathItemReference(String p0, PathItemOb p1) { - setRef(p0); - setPathItemOb(p1); - } - /** @apilevel low-level - * @declaredat ASTNode:22 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:28 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:32 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:36 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:40 - */ - public PathItemReference clone() throws CloneNotSupportedException { - PathItemReference node = (PathItemReference) super.clone(); - return node; - } - /** @apilevel internal - * @declaredat ASTNode:45 - */ - public PathItemReference copy() { - try { - PathItemReference node = (PathItemReference) clone(); - node.parent = null; - if (children != null) { - node.children = (ASTNode[]) children.clone(); - } - return node; - } catch (CloneNotSupportedException e) { - throw new Error("Error: clone not supported for " + getClass().getName()); - } - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 - */ - @Deprecated - public PathItemReference fullCopy() { - return treeCopyNoTransform(); - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:74 - */ - public PathItemReference treeCopyNoTransform() { - PathItemReference tree = (PathItemReference) copy(); - if (children != null) { - for (int i = 0; i < children.length; ++i) { - ASTNode child = (ASTNode) children[i]; - if (child != null) { - child = child.treeCopyNoTransform(); - tree.setChild(child, i); - } - } - } - return tree; - } - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:94 - */ - public PathItemReference treeCopy() { - PathItemReference tree = (PathItemReference) copy(); - if (children != null) { - for (int i = 0; i < children.length; ++i) { - ASTNode child = (ASTNode) getChild(i); - if (child != null) { - child = child.treeCopy(); - tree.setChild(child, i); - } - } - } - return tree; - } - /** @apilevel internal - * @declaredat ASTNode:108 - */ - protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((PathItemReference) node).tokenString_Ref) && (tokenPathItemOb_PathItemOb == ((PathItemReference) node).tokenPathItemOb_PathItemOb); - } - /** - * Replaces the lexeme Ref. - * @param value The new value for the lexeme Ref. - * @apilevel high-level - */ - public void setRef(String value) { - tokenString_Ref = value; - } - /** @apilevel internal - */ - protected String tokenString_Ref; - /** - * Retrieves the value for the lexeme Ref. - * @return The value for the lexeme Ref. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="Ref") - public String getRef() { - return tokenString_Ref != null ? tokenString_Ref : ""; - } - /** - * Replaces the lexeme PathItemOb. - * @param value The new value for the lexeme PathItemOb. - * @apilevel high-level - */ - public void setPathItemOb(PathItemOb value) { - tokenPathItemOb_PathItemOb = value; - } - /** @apilevel internal - */ - protected PathItemOb tokenPathItemOb_PathItemOb; - /** - * Retrieves the value for the lexeme PathItemOb. - * @return The value for the lexeme PathItemOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="PathItemOb") - public PathItemOb getPathItemOb() { - return tokenPathItemOb_PathItemOb; - } -/** @apilevel internal */ -protected java.util.Set composePath_PathItemOb_Map_Object__ASTNode__visited; - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathItem); - _parameters.add(map); - if (composePath_PathItemOb_Map_Object__ASTNode__visited == null) composePath_PathItemOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); - if (composePath_PathItemOb_Map_Object__ASTNode__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute PathItemOb.composePath(PathItemOb,Map_Object__ASTNode_)."); - } - composePath_PathItemOb_Map_Object__ASTNode__visited.add(_parameters); - try { - Path path = new Path(); - PathItemReference p = (PathItemReference) pathItem; - - if( !p.getRef().isEmpty() ) - path.setRef(p.getRef()); - - return path; - } - finally { - composePath_PathItemOb_Map_Object__ASTNode__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected boolean pathItemObject_visited = false; - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public PathItemObject pathItemObject() { - if (pathItemObject_visited) { - throw new RuntimeException("Circular definition of attribute PathItemOb.pathItemObject()."); - } - pathItemObject_visited = true; - try { - if( getPathItemOb() instanceof PathItemObject ) - return (PathItemObject) getPathItemOb(); - else - return getPathItemOb().pathItemObject(); - } - finally { - pathItemObject_visited = false; - } - } - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java index a160031a..28da2b90 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:35 - * @astdecl PathsObject : ASTNode ::= <Ref:String> PathItemOb; - * @production PathsObject : {@link ASTNode} ::= <span class="component"><Ref:String></span> <span class="component">{@link PathItemOb}</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:36 + * @astdecl PathsObject : ASTNode ::= <Ref:String> PathItemObject; + * @production PathsObject : {@link ASTNode} ::= <span class="component"><Ref:String></span> <span class="component">{@link PathItemObject}</span>; */ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { @@ -44,11 +47,11 @@ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "PathItemOb"}, - type = {"String", "PathItemOb"}, + name = {"Ref", "PathItemObject"}, + type = {"String", "PathItemObject"}, kind = {"Token", "Child"} ) - public PathsObject(String p0, PathItemOb p1) { + public PathsObject(String p0, PathItemObject p1) { setRef(p0); setChild(p1, 0); } @@ -179,38 +182,38 @@ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { return tokenString_Ref != null ? tokenString_Ref : ""; } /** - * Replaces the PathItemOb child. - * @param node The new node to replace the PathItemOb child. + * Replaces the PathItemObject child. + * @param node The new node to replace the PathItemObject child. * @apilevel high-level */ - public void setPathItemOb(PathItemOb node) { + public void setPathItemObject(PathItemObject node) { setChild(node, 0); } /** - * Retrieves the PathItemOb child. - * @return The current node used as the PathItemOb child. + * Retrieves the PathItemObject child. + * @return The current node used as the PathItemObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="PathItemOb") - public PathItemOb getPathItemOb() { - return (PathItemOb) getChild(0); + @ASTNodeAnnotation.Child(name="PathItemObject") + public PathItemObject getPathItemObject() { + return (PathItemObject) getChild(0); } /** - * Retrieves the PathItemOb child. + * Retrieves the PathItemObject child. * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the PathItemOb child. + * @return The current node used as the PathItemObject child. * @apilevel low-level */ - public PathItemOb getPathItemObNoTransform() { - return (PathItemOb) getChildNoTransform(0); + public PathItemObject getPathItemObjectNoTransform() { + return (PathItemObject) getChildNoTransform(0); } /** * @attribute inh - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25") public Set<String> inferUrl(Set<String> urls) { Object _parameters = urls; if (inferUrl_Set_String__visited == null) inferUrl_Set_String__visited = new java.util.HashSet(4); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java index ddab0d5b..0b27455a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,38 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:47 - * @astdecl Post : OperationOb ::= <OperationObject:OperationObject>; - * @production Post : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:45 + * @astdecl Post : ASTNode ::= OperationObject; + * @production Post : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Post extends OperationOb implements Cloneable { +public class Post extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:187 + */ + public void connectPOST (String path) throws Exception{ + URL url = new URL(path); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + con.setDoOutput(true); // POST + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (POST) : " + responseCode); + } /** * @declaredat ASTNode:1 */ @@ -38,52 +67,53 @@ public class Post extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Post(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Post clone() throws CloneNotSupportedException { Post node = (Post) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Post copy() { try { @@ -103,7 +133,7 @@ public class Post extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Post fullCopy() { @@ -114,7 +144,7 @@ public class Post extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Post treeCopyNoTransform() { Post tree = (Post) copy(); @@ -135,7 +165,7 @@ public class Post extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Post treeCopy() { Post tree = (Post) copy(); @@ -151,53 +181,98 @@ public class Post extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Post) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); + } + /** + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:85 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:85") public String inferRandomUrl(String pathRef, OperationObject operationObject) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(pathRef); _parameters.add(operationObject); if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); + throw new RuntimeException("Circular definition of attribute Post.inferRandomUrl(String,OperationObject)."); } inferRandomUrl_String_OperationObject_visited.add(_parameters); try { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + + for( String path : paths ){ + System.out.println(path); + //connectPOST(path); + } + + } + return pathRef; + }catch (Exception e) { return ""; } + } finally { inferRandomUrl_String_OperationObject_visited.remove(_parameters); } @@ -207,10 +282,10 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj /** * @attribute syn * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:285 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") + @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:285") public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { java.util.List _parameters = new java.util.ArrayList(3); _parameters.add(pathRef); @@ -218,13 +293,12 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj _parameters.add(responses); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); + throw new RuntimeException("Circular definition of attribute Post.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); } generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); try { - Random rand = new Random(); - try{ + Random rand = new Random(); for( ParameterOb o : operationObject.getParameterObs() ){ ParameterObject p = o.parameterObject(); SchemaObject s = p.getSchemaOb().schemaObject(); @@ -268,7 +342,9 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj URL url = new URL(pathRef); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setDoOutput(true); // POST int responseCode = con.getResponseCode(); @@ -283,19 +359,21 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj // print result System.out.println("HTTP status code (POST) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } else if ( t.getKey().equals("default") && responseCode == 200 ){ - System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } - return pathRef;} catch (Exception e) { + return pathRef;} + } catch (Exception e) { return ""; - } - } + } return ""; + } finally { generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java index 3cb1b6bb..35dc442c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:113 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:111 * @astdecl PropertyItem : ASTNode ::= <Name:String> SchemaOb; * @production PropertyItem : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java index 24bd11ab..17a78c15 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:46 - * @astdecl Put : OperationOb ::= <OperationObject:OperationObject>; - * @production Put : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:44 + * @astdecl Put : ASTNode ::= OperationObject; + * @production Put : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Put extends OperationOb implements Cloneable { +public class Put extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Put extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Put(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Put clone() throws CloneNotSupportedException { Put node = (Put) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Put copy() { try { @@ -103,7 +107,7 @@ public class Put extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Put fullCopy() { @@ -114,7 +118,7 @@ public class Put extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Put treeCopyNoTransform() { Put tree = (Put) copy(); @@ -135,7 +139,7 @@ public class Put extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Put treeCopy() { Put tree = (Put) copy(); @@ -151,81 +155,36 @@ public class Put extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Put) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java index b0e2c945..9fe53a04 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:65 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:63 * @astdecl RequestBodyOb : ASTNode; * @production RequestBodyOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:376 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:403 */ public static RequestBodyOb parseRequestBody(org.openapi4j.parser.model.v3.RequestBody requestBody, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { RequestBodyObject requestBodyObject = new RequestBodyObject(); @@ -34,7 +37,6 @@ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneabl if( requestBody.isRef() ){ RequestBodyReference r = new RequestBodyReference(); r.setRef(requestBody.getRef()); - r.setRequestBodyOb(parseRequestBody(requestBody.getReference(context).getMappedContent(RequestBody.class), context, map)); return r; } else { if( requestBody.getContentMediaTypes() != null ) { @@ -131,18 +133,18 @@ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneabl /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public abstract RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public abstract RequestBodyObject requestBodyObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java index f2edc6a4..75f25bad 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:67 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:65 * @astdecl RequestBodyObject : RequestBodyOb ::= <Description:String> ContentTuple* <Required:Boolean> Extension*; * @production RequestBodyObject : {@link RequestBodyOb} ::= <span class="component"><Description:String></span> <span class="component">{@link ContentTuple}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -427,10 +430,10 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(requestBodyOb); @@ -465,11 +468,11 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi protected boolean requestBodyObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:31 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:24 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public RequestBodyObject requestBodyObject() { if (requestBodyObject_visited) { throw new RuntimeException("Circular definition of attribute RequestBodyOb.requestBodyObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java index 9eaeb360..ed5fe060 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:66 - * @astdecl RequestBodyReference : RequestBodyOb ::= <Ref:String> <RequestBodyOb:RequestBodyOb>; - * @production RequestBodyReference : {@link RequestBodyOb} ::= <span class="component"><Ref:String></span> <span class="component"><RequestBodyOb:RequestBodyOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:64 + * @astdecl RequestBodyReference : RequestBodyOb ::= <Ref:String>; + * @production RequestBodyReference : {@link RequestBodyOb} ::= <span class="component"><Ref:String></span>; */ public class RequestBodyReference extends RequestBodyOb implements Cloneable { @@ -43,48 +46,47 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "RequestBodyOb"}, - type = {"String", "RequestBodyOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public RequestBodyReference(String p0, RequestBodyOb p1) { + public RequestBodyReference(String p0) { setRef(p0); - setRequestBodyOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public RequestBodyReference clone() throws CloneNotSupportedException { RequestBodyReference node = (RequestBodyReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public RequestBodyReference copy() { try { @@ -104,7 +106,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public RequestBodyReference fullCopy() { @@ -115,7 +117,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public RequestBodyReference treeCopyNoTransform() { RequestBodyReference tree = (RequestBodyReference) copy(); @@ -136,7 +138,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public RequestBodyReference treeCopy() { RequestBodyReference tree = (RequestBodyReference) copy(); @@ -152,10 +154,10 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((RequestBodyReference) node).tokenString_Ref) && (tokenRequestBodyOb_RequestBodyOb == ((RequestBodyReference) node).tokenRequestBodyOb_RequestBodyOb); + return super.is$Equal(node) && (tokenString_Ref == ((RequestBodyReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme RequestBodyOb. - * @param value The new value for the lexeme RequestBodyOb. - * @apilevel high-level - */ - public void setRequestBodyOb(RequestBodyOb value) { - tokenRequestBodyOb_RequestBodyOb = value; - } - /** @apilevel internal - */ - protected RequestBodyOb tokenRequestBodyOb_RequestBodyOb; - /** - * Retrieves the value for the lexeme RequestBodyOb. - * @return The value for the lexeme RequestBodyOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="RequestBodyOb") - public RequestBodyOb getRequestBodyOb() { - return tokenRequestBodyOb_RequestBodyOb; - } /** @apilevel internal */ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(requestBodyOb); @@ -232,21 +214,22 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi protected boolean requestBodyObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public RequestBodyObject requestBodyObject() { if (requestBodyObject_visited) { throw new RuntimeException("Circular definition of attribute RequestBodyOb.requestBodyObject()."); } requestBodyObject_visited = true; try { - if( getRequestBodyOb() instanceof RequestBodyObject ) - return (RequestBodyObject) getRequestBodyOb(); - else - return getRequestBodyOb().requestBodyObject(); + for( RequestBodyTuple t : root().requestBodyTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getRequestBodyOb().requestBodyObject(); + } + return new RequestBodyObject(); } finally { requestBodyObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java index de0d31a7..adeabda1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:27 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:28 * @astdecl RequestBodyTuple : ASTNode ::= <Key:String> RequestBodyOb; * @production RequestBodyTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link RequestBodyOb}</span>; @@ -212,4 +215,22 @@ public class RequestBodyTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_requestBodyTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:21 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_requestBodyTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_requestBodyTuples(List<RequestBodyTuple> collection) { + super.contributeTo_OpenAPIObject_requestBodyTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java index 5d6f2c1a..2d6063f1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:114 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:112 * @astdecl RequiredField : ASTNode ::= <Value:String>; * @production RequiredField : {@link ASTNode} ::= <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java index d0beabef..658cc764 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:77 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:75 * @astdecl ResponseOb : ASTNode; * @production ResponseOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:449 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:475 */ public static ResponseOb parseResponse(Response response, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ResponseObject responseObject = new ResponseObject(); @@ -34,7 +37,6 @@ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { if( response.isRef() ){ ResponseReference r = new ResponseReference(); r.setRef(response.getRef()); - r.setResponseOb(parseResponse(response.getReference(context).getMappedContent(Response.class), context, map)); return r; } else { if( response.getDescription() != null ) @@ -137,18 +139,18 @@ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public abstract Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public abstract ResponseObject responseObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java index 4be4fd26..759f0237 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:79 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:77 * @astdecl ResponseObject : ResponseOb ::= <Description:String> HeaderTuple* ContentTuple* LinkTuple* Extension*; * @production ResponseObject : {@link ResponseOb} ::= <span class="component"><Description:String></span> <span class="component">{@link HeaderTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link LinkTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -630,10 +633,10 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(responseOb); @@ -678,11 +681,11 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; protected boolean responseObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:40 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:34 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public ResponseObject responseObject() { if (responseObject_visited) { throw new RuntimeException("Circular definition of attribute ResponseOb.responseObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java index 2df54e4c..6fecd09b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:78 - * @astdecl ResponseReference : ResponseOb ::= <Ref:String> <ResponseOb:ResponseOb>; - * @production ResponseReference : {@link ResponseOb} ::= <span class="component"><Ref:String></span> <span class="component"><ResponseOb:ResponseOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:76 + * @astdecl ResponseReference : ResponseOb ::= <Ref:String>; + * @production ResponseReference : {@link ResponseOb} ::= <span class="component"><Ref:String></span>; */ public class ResponseReference extends ResponseOb implements Cloneable { @@ -43,48 +46,47 @@ public class ResponseReference extends ResponseOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "ResponseOb"}, - type = {"String", "ResponseOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public ResponseReference(String p0, ResponseOb p1) { + public ResponseReference(String p0) { setRef(p0); - setResponseOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public ResponseReference clone() throws CloneNotSupportedException { ResponseReference node = (ResponseReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public ResponseReference copy() { try { @@ -104,7 +106,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public ResponseReference fullCopy() { @@ -115,7 +117,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public ResponseReference treeCopyNoTransform() { ResponseReference tree = (ResponseReference) copy(); @@ -136,7 +138,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public ResponseReference treeCopy() { ResponseReference tree = (ResponseReference) copy(); @@ -152,10 +154,10 @@ public class ResponseReference extends ResponseOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((ResponseReference) node).tokenString_Ref) && (tokenResponseOb_ResponseOb == ((ResponseReference) node).tokenResponseOb_ResponseOb); + return super.is$Equal(node) && (tokenString_Ref == ((ResponseReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class ResponseReference extends ResponseOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme ResponseOb. - * @param value The new value for the lexeme ResponseOb. - * @apilevel high-level - */ - public void setResponseOb(ResponseOb value) { - tokenResponseOb_ResponseOb = value; - } - /** @apilevel internal - */ - protected ResponseOb tokenResponseOb_ResponseOb; - /** - * Retrieves the value for the lexeme ResponseOb. - * @return The value for the lexeme ResponseOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="ResponseOb") - public ResponseOb getResponseOb() { - return tokenResponseOb_ResponseOb; - } /** @apilevel internal */ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(responseOb); @@ -232,21 +214,22 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; protected boolean responseObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public ResponseObject responseObject() { if (responseObject_visited) { throw new RuntimeException("Circular definition of attribute ResponseOb.responseObject()."); } responseObject_visited = true; try { - if( getResponseOb() instanceof ResponseObject ) - return (ResponseObject) getResponseOb(); - else - return getResponseOb().responseObject(); + for( ResponseTuple t : root().responseTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getResponseOb().responseObject(); + } + return new ResponseObject(); } finally { responseObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java index 0cb216ff..4aab6a94 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:24 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:25 * @astdecl ResponseTuple : ASTNode ::= <Key:String> ResponseOb; * @production ResponseTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ResponseOb}</span>; @@ -212,4 +215,22 @@ public class ResponseTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_responseTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:13 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_responseTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_responseTuples(List<ResponseTuple> collection) { + super.contributeTo_OpenAPIObject_responseTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java index 4d286e94..a88426f1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:106 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:104 * @astdecl SchemaOb : ASTNode; * @production SchemaOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:626 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:648 */ public static SchemaOb parseSchema (org.openapi4j.parser.model.v3.Schema schema, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { SchemaObject schemaObject = new SchemaObject(); @@ -34,7 +37,6 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { if( schema.isRef() ){ SchemaReference s = new SchemaReference(); s.setRef(schema.getRef()); - s.setSchemaOb(parseSchema(schema.getReference(context).getMappedContent(Schema.class), context, map)); return s; } else { if( schema.getAdditionalProperties() != null ) @@ -230,18 +232,18 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public abstract org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public abstract SchemaObject schemaObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java index b33a59dc..0a6e30b2 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:108 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:106 * @astdecl SchemaObject : SchemaOb ::= [AdditionalProperties] <AdditionalPropertiesAllowed:Boolean> <DefaultValue:Object> <Description:String> <DeprecatedBoolean:Boolean> [DiscriminatorObject] EnumObj* <Example:Object> <ExclusiveMaximum:Boolean> <ExclusiveMinimum:Boolean> [ExternalDocObject] <Format:String> [ItemsSchema] <Maximum:Number> <Minimum:Number> <MaxItems:Integer> <MinItems:Integer> <MaxLength:Integer> <MinLength:Integer> <MaxProperties:Integer> <MinProperties:Integer> <MultipleOf:Number> [NotSchema] <Nullable:Boolean> <Pattern:String> PropertyItem* RequiredField* AllOfSchema* AnyOfSchema* OneOfSchema* <ReadOnly:Boolean> <WriteOnly:Boolean> <Type:String> <Title:String> <UniqueItems:Boolean> [XmlObject] Extension*; * @production SchemaObject : {@link SchemaOb} ::= <span class="component">[{@link AdditionalProperties}]</span> <span class="component"><AdditionalPropertiesAllowed:Boolean></span> <span class="component"><DefaultValue:Object></span> <span class="component"><Description:String></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">[{@link DiscriminatorObject}]</span> <span class="component">{@link EnumObj}*</span> <span class="component"><Example:Object></span> <span class="component"><ExclusiveMaximum:Boolean></span> <span class="component"><ExclusiveMinimum:Boolean></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Format:String></span> <span class="component">[{@link ItemsSchema}]</span> <span class="component"><Maximum:Number></span> <span class="component"><Minimum:Number></span> <span class="component"><MaxItems:Integer></span> <span class="component"><MinItems:Integer></span> <span class="component"><MaxLength:Integer></span> <span class="component"><MinLength:Integer></span> <span class="component"><MaxProperties:Integer></span> <span class="component"><MinProperties:Integer></span> <span class="component"><MultipleOf:Number></span> <span class="component">[{@link NotSchema}]</span> <span class="component"><Nullable:Boolean></span> <span class="component"><Pattern:String></span> <span class="component">{@link PropertyItem}*</span> <span class="component">{@link RequiredField}*</span> <span class="component">{@link AllOfSchema}*</span> <span class="component">{@link AnyOfSchema}*</span> <span class="component">{@link OneOfSchema}*</span> <span class="component"><ReadOnly:Boolean></span> <span class="component"><WriteOnly:Boolean></span> <span class="component"><Type:String></span> <span class="component"><Title:String></span> <span class="component"><UniqueItems:Boolean></span> <span class="component">[{@link XmlObject}]</span> <span class="component">{@link Extension}*</span>; @@ -1767,10 +1770,10 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(schemaOb); @@ -1916,11 +1919,11 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; protected boolean schemaObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:13 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:14 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public SchemaObject schemaObject() { if (schemaObject_visited) { throw new RuntimeException("Circular definition of attribute SchemaOb.schemaObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java index d394cde3..be968d87 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:107 - * @astdecl SchemaReference : SchemaOb ::= <Ref:String> <SchemaOb:SchemaOb>; - * @production SchemaReference : {@link SchemaOb} ::= <span class="component"><Ref:String></span> <span class="component"><SchemaOb:SchemaOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:105 + * @astdecl SchemaReference : SchemaOb ::= <Ref:String>; + * @production SchemaReference : {@link SchemaOb} ::= <span class="component"><Ref:String></span>; */ public class SchemaReference extends SchemaOb implements Cloneable { @@ -43,48 +46,47 @@ public class SchemaReference extends SchemaOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "SchemaOb"}, - type = {"String", "SchemaOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public SchemaReference(String p0, SchemaOb p1) { + public SchemaReference(String p0) { setRef(p0); - setSchemaOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public SchemaReference clone() throws CloneNotSupportedException { SchemaReference node = (SchemaReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public SchemaReference copy() { try { @@ -104,7 +106,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public SchemaReference fullCopy() { @@ -115,7 +117,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public SchemaReference treeCopyNoTransform() { SchemaReference tree = (SchemaReference) copy(); @@ -136,7 +138,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public SchemaReference treeCopy() { SchemaReference tree = (SchemaReference) copy(); @@ -152,10 +154,10 @@ public class SchemaReference extends SchemaOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((SchemaReference) node).tokenString_Ref) && (tokenSchemaOb_SchemaOb == ((SchemaReference) node).tokenSchemaOb_SchemaOb); + return super.is$Equal(node) && (tokenString_Ref == ((SchemaReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class SchemaReference extends SchemaOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme SchemaOb. - * @param value The new value for the lexeme SchemaOb. - * @apilevel high-level - */ - public void setSchemaOb(SchemaOb value) { - tokenSchemaOb_SchemaOb = value; - } - /** @apilevel internal - */ - protected SchemaOb tokenSchemaOb_SchemaOb; - /** - * Retrieves the value for the lexeme SchemaOb. - * @return The value for the lexeme SchemaOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="SchemaOb") - public SchemaOb getSchemaOb() { - return tokenSchemaOb_SchemaOb; - } /** @apilevel internal */ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(schemaOb); @@ -232,21 +214,22 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; protected boolean schemaObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public SchemaObject schemaObject() { if (schemaObject_visited) { throw new RuntimeException("Circular definition of attribute SchemaOb.schemaObject()."); } schemaObject_visited = true; try { - if( getSchemaOb() instanceof SchemaObject ) - return (SchemaObject) getSchemaOb(); - else - return getSchemaOb().schemaObject(); + for( SchemaTuple t : root().schemaTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSchemaOb().schemaObject(); + } + return new SchemaObject(); } finally { schemaObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java index 2529060d..b5e7f185 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:23 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:24 * @astdecl SchemaTuple : ASTNode ::= <Key:String> SchemaOb; * @production SchemaTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link SchemaOb}</span>; @@ -214,7 +217,7 @@ public class SchemaTuple extends ASTNode<ASTNode> implements Cloneable { } /** @apilevel internal */ protected void collect_contributors_OpenAPIObject_schemaTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { - // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:17 + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:9 { java.util.Set<ASTNode> contributors = _map.get(_root); if (contributors == null) { @@ -226,7 +229,7 @@ public class SchemaTuple extends ASTNode<ASTNode> implements Cloneable { super.collect_contributors_OpenAPIObject_schemaTuples(_root, _map); } /** @apilevel internal */ - protected void contributeTo_OpenAPIObject_schemaTuples(Set<SchemaTuple> collection) { + protected void contributeTo_OpenAPIObject_schemaTuples(List<SchemaTuple> collection) { super.contributeTo_OpenAPIObject_schemaTuples(collection); collection.add(this); } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java index 3b63598e..06be7cc1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:140 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:138 * @astdecl ScopesTuple : ASTNode ::= <ScopesKey:String> <ScopesValue:String>; * @production ScopesTuple : {@link ASTNode} ::= <span class="component"><ScopesKey:String></span> <span class="component"><ScopesValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java index 36a250d2..ddb4cc12 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:143 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:141 * @astdecl SecurityRequirementObject : ASTNode ::= SecurityRequirementTuple*; * @production SecurityRequirementObject : {@link ASTNode} ::= <span class="component">{@link SecurityRequirementTuple}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class SecurityRequirementObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:945 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:935 */ public static SecurityRequirement composeSecurityRequirement (SecurityRequirementObject securityRequirementObject, Map<Object, ASTNode> map){ SecurityRequirement securityRequirement = new SecurityRequirement(); @@ -46,7 +49,7 @@ public class SecurityRequirementObject extends ASTNode<ASTNode> implements Clone } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:893 */ public static SecurityRequirementObject parseSecurityRequirement(SecurityRequirement securityRequirement, Map<Object, ASTNode> map){ SecurityRequirementObject securityRequirementObject = new SecurityRequirementObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java index aa0abfdf..842e9aae 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:144 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:142 * @astdecl SecurityRequirementTuple : ASTNode ::= <Name:String> SecurityRequirementValue*; * @production SecurityRequirementTuple : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link SecurityRequirementValue}*</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java index 78e17b7a..0294d2ec 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:145 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:143 * @astdecl SecurityRequirementValue : ASTNode ::= <Value:String>; * @production SecurityRequirementValue : {@link ASTNode} ::= <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java index 14d9ff79..dcdce635 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:127 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:125 * @astdecl SecuritySchemeOb : ASTNode; * @production SecuritySchemeOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:792 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:813 */ public static SecuritySchemeOb parseSecurityScheme(SecurityScheme securityScheme, OAIContext context, Map<Object, ASTNode> map){ SecuritySchemeObject securitySchemeObject = new SecuritySchemeObject(); @@ -132,18 +135,18 @@ public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Clone /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public abstract SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public abstract SecuritySchemeObject securitySchemeObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java index 33ebf5ce..c705e875 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:129 - * @astdecl SecuritySchemeObject : SecuritySchemeOb ::= <Type:String> <Description:String> <Name:String> <In:String> <Scheme:String> <BearerFormat:String> OAuthFlowsObject <OpenIdConnectUrl:String> Extension*; - * @production SecuritySchemeObject : {@link SecuritySchemeOb} ::= <span class="component"><Type:String></span> <span class="component"><Description:String></span> <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Scheme:String></span> <span class="component"><BearerFormat:String></span> <span class="component">{@link OAuthFlowsObject}</span> <span class="component"><OpenIdConnectUrl:String></span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:127 + * @astdecl SecuritySchemeObject : SecuritySchemeOb ::= <Type:String> <Description:String> <Name:String> <In:String> <Scheme:String> <BearerFormat:String> [OAuthFlowsObject] <OpenIdConnectUrl:String> Extension*; + * @production SecuritySchemeObject : {@link SecuritySchemeOb} ::= <span class="component"><Type:String></span> <span class="component"><Description:String></span> <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Scheme:String></span> <span class="component"><BearerFormat:String></span> <span class="component">[{@link OAuthFlowsObject}]</span> <span class="component"><OpenIdConnectUrl:String></span> <span class="component">{@link Extension}*</span>; */ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable { @@ -39,17 +42,18 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable */ public void init$Children() { children = new ASTNode[2]; + setChild(new Opt(), 0); setChild(new JastAddList(), 1); } /** - * @declaredat ASTNode:14 + * @declaredat ASTNode:15 */ @ASTNodeAnnotation.Constructor( name = {"Type", "Description", "Name", "In", "Scheme", "BearerFormat", "OAuthFlowsObject", "OpenIdConnectUrl", "Extension"}, - type = {"String", "String", "String", "String", "String", "String", "OAuthFlowsObject", "String", "JastAddList<Extension>"}, - kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Child", "Token", "List"} + type = {"String", "String", "String", "String", "String", "String", "Opt<OAuthFlowsObject>", "String", "JastAddList<Extension>"}, + kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "List"} ) - public SecuritySchemeObject(String p0, String p1, String p2, String p3, String p4, String p5, OAuthFlowsObject p6, String p7, JastAddList<Extension> p8) { + public SecuritySchemeObject(String p0, String p1, String p2, String p3, String p4, String p5, Opt<OAuthFlowsObject> p6, String p7, JastAddList<Extension> p8) { setType(p0); setDescription(p1); setName(p2); @@ -61,39 +65,39 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable setChild(p8, 1); } /** @apilevel low-level - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ protected int numChildren() { return 2; } /** * @apilevel internal - * @declaredat ASTNode:37 + * @declaredat ASTNode:38 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:41 + * @declaredat ASTNode:42 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:46 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:49 + * @declaredat ASTNode:50 */ public SecuritySchemeObject clone() throws CloneNotSupportedException { SecuritySchemeObject node = (SecuritySchemeObject) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:54 + * @declaredat ASTNode:55 */ public SecuritySchemeObject copy() { try { @@ -113,7 +117,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ @Deprecated public SecuritySchemeObject fullCopy() { @@ -124,7 +128,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:83 + * @declaredat ASTNode:84 */ public SecuritySchemeObject treeCopyNoTransform() { SecuritySchemeObject tree = (SecuritySchemeObject) copy(); @@ -145,7 +149,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:103 + * @declaredat ASTNode:104 */ public SecuritySchemeObject treeCopy() { SecuritySchemeObject tree = (SecuritySchemeObject) copy(); @@ -161,7 +165,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable return tree; } /** @apilevel internal - * @declaredat ASTNode:117 + * @declaredat ASTNode:118 */ protected boolean is$Equal(ASTNode node) { return super.is$Equal(node) && (tokenString_Type == ((SecuritySchemeObject) node).tokenString_Type) && (tokenString_Description == ((SecuritySchemeObject) node).tokenString_Description) && (tokenString_Name == ((SecuritySchemeObject) node).tokenString_Name) && (tokenString_In == ((SecuritySchemeObject) node).tokenString_In) && (tokenString_Scheme == ((SecuritySchemeObject) node).tokenString_Scheme) && (tokenString_BearerFormat == ((SecuritySchemeObject) node).tokenString_BearerFormat) && (tokenString_OpenIdConnectUrl == ((SecuritySchemeObject) node).tokenString_OpenIdConnectUrl); @@ -287,30 +291,55 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable return tokenString_BearerFormat != null ? tokenString_BearerFormat : ""; } /** - * Replaces the OAuthFlowsObject child. - * @param node The new node to replace the OAuthFlowsObject child. + * Replaces the optional node for the OAuthFlowsObject child. This is the <code>Opt</code> + * node containing the child OAuthFlowsObject, not the actual child! + * @param opt The new node to be used as the optional node for the OAuthFlowsObject child. + * @apilevel low-level + */ + public void setOAuthFlowsObjectOpt(Opt<OAuthFlowsObject> opt) { + setChild(opt, 0); + } + /** + * Replaces the (optional) OAuthFlowsObject child. + * @param node The new node to be used as the OAuthFlowsObject child. * @apilevel high-level */ public void setOAuthFlowsObject(OAuthFlowsObject node) { - setChild(node, 0); + getOAuthFlowsObjectOpt().setChild(node, 0); } /** - * Retrieves the OAuthFlowsObject child. - * @return The current node used as the OAuthFlowsObject child. + * Check whether the optional OAuthFlowsObject child exists. + * @return {@code true} if the optional OAuthFlowsObject child exists, {@code false} if it does not. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OAuthFlowsObject") + public boolean hasOAuthFlowsObject() { + return getOAuthFlowsObjectOpt().getNumChild() != 0; + } + /** + * Retrieves the (optional) OAuthFlowsObject child. + * @return The OAuthFlowsObject child, if it exists. Returns {@code null} otherwise. + * @apilevel low-level + */ public OAuthFlowsObject getOAuthFlowsObject() { - return (OAuthFlowsObject) getChild(0); + return (OAuthFlowsObject) getOAuthFlowsObjectOpt().getChild(0); + } + /** + * Retrieves the optional node for the OAuthFlowsObject child. This is the <code>Opt</code> node containing the child OAuthFlowsObject, not the actual child! + * @return The optional node for child the OAuthFlowsObject child. + * @apilevel low-level + */ + @ASTNodeAnnotation.OptChild(name="OAuthFlowsObject") + public Opt<OAuthFlowsObject> getOAuthFlowsObjectOpt() { + return (Opt<OAuthFlowsObject>) getChild(0); } /** - * Retrieves the OAuthFlowsObject child. + * Retrieves the optional node for child OAuthFlowsObject. This is the <code>Opt</code> node containing the child OAuthFlowsObject, not the actual child! * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the OAuthFlowsObject child. + * @return The optional node for child OAuthFlowsObject. * @apilevel low-level */ - public OAuthFlowsObject getOAuthFlowsObjectNoTransform() { - return (OAuthFlowsObject) getChildNoTransform(0); + public Opt<OAuthFlowsObject> getOAuthFlowsObjectOptNoTransform() { + return (Opt<OAuthFlowsObject>) getChildNoTransform(0); } /** * Replaces the lexeme OpenIdConnectUrl. @@ -447,10 +476,10 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(securitySchemeOb); @@ -497,11 +526,11 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo protected boolean securitySchemeObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:76 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:74 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public SecuritySchemeObject securitySchemeObject() { if (securitySchemeObject_visited) { throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.securitySchemeObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java index 090f64e0..096824df 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:128 - * @astdecl SecuritySchemeReference : SecuritySchemeOb ::= <Ref:String> <SecuritySchemeOb:SecuritySchemeOb>; - * @production SecuritySchemeReference : {@link SecuritySchemeOb} ::= <span class="component"><Ref:String></span> <span class="component"><SecuritySchemeOb:SecuritySchemeOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:126 + * @astdecl SecuritySchemeReference : SecuritySchemeOb ::= <Ref:String>; + * @production SecuritySchemeReference : {@link SecuritySchemeOb} ::= <span class="component"><Ref:String></span>; */ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneable { @@ -43,48 +46,47 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "SecuritySchemeOb"}, - type = {"String", "SecuritySchemeOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public SecuritySchemeReference(String p0, SecuritySchemeOb p1) { + public SecuritySchemeReference(String p0) { setRef(p0); - setSecuritySchemeOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public SecuritySchemeReference clone() throws CloneNotSupportedException { SecuritySchemeReference node = (SecuritySchemeReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public SecuritySchemeReference copy() { try { @@ -104,7 +106,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public SecuritySchemeReference fullCopy() { @@ -115,7 +117,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public SecuritySchemeReference treeCopyNoTransform() { SecuritySchemeReference tree = (SecuritySchemeReference) copy(); @@ -136,7 +138,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public SecuritySchemeReference treeCopy() { SecuritySchemeReference tree = (SecuritySchemeReference) copy(); @@ -152,10 +154,10 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((SecuritySchemeReference) node).tokenString_Ref) && (tokenSecuritySchemeOb_SecuritySchemeOb == ((SecuritySchemeReference) node).tokenSecuritySchemeOb_SecuritySchemeOb); + return super.is$Equal(node) && (tokenString_Ref == ((SecuritySchemeReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme SecuritySchemeOb. - * @param value The new value for the lexeme SecuritySchemeOb. - * @apilevel high-level - */ - public void setSecuritySchemeOb(SecuritySchemeOb value) { - tokenSecuritySchemeOb_SecuritySchemeOb = value; - } - /** @apilevel internal - */ - protected SecuritySchemeOb tokenSecuritySchemeOb_SecuritySchemeOb; - /** - * Retrieves the value for the lexeme SecuritySchemeOb. - * @return The value for the lexeme SecuritySchemeOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="SecuritySchemeOb") - public SecuritySchemeOb getSecuritySchemeOb() { - return tokenSecuritySchemeOb_SecuritySchemeOb; - } /** @apilevel internal */ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(securitySchemeOb); @@ -232,21 +214,22 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo protected boolean securitySchemeObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public SecuritySchemeObject securitySchemeObject() { if (securitySchemeObject_visited) { throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.securitySchemeObject()."); } securitySchemeObject_visited = true; try { - if( getSecuritySchemeOb() instanceof SecuritySchemeObject ) - return (SecuritySchemeObject) getSecuritySchemeOb(); - else - return getSecuritySchemeOb().securitySchemeObject(); + for( SecuritySchemeTuple t : root().securitySchemeTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSecuritySchemeOb().securitySchemeObject(); + } + return new SecuritySchemeObject(); } finally { securitySchemeObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java index a27af994..31e17db1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:29 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:30 * @astdecl SecuritySchemeTuple : ASTNode ::= <Key:String> SecuritySchemeOb; * @production SecuritySchemeTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link SecuritySchemeOb}</span>; @@ -212,4 +215,22 @@ public class SecuritySchemeTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_securitySchemeTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:29 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_securitySchemeTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_securitySchemeTuples(List<SecuritySchemeTuple> collection) { + super.contributeTo_OpenAPIObject_securitySchemeTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java index 90d2d560..e9efc8ba 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:14 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:15 * @astdecl ServerObject : ASTNode ::= <Url:String> <Description:String> ServerVariablesTuple* Extension*; * @production ServerObject : {@link ASTNode} ::= <span class="component"><Url:String></span> <span class="component"><Description:String></span> <span class="component">{@link ServerVariablesTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -53,7 +56,7 @@ public class ServerObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:102 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:137 */ public static ServerObject parseServer(Server server, Map<Object, ASTNode> map){ ServerObject serverObject = new ServerObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java index 5c0cf497..2e50e947 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:18 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:19 * @astdecl ServerVariableObject : ASTNode ::= Enum* <Default:String> <Description:String> Extension*; * @production ServerVariableObject : {@link ASTNode} ::= <span class="component">{@link Enum}*</span> <span class="component"><Default:String></span> <span class="component"><Description:String></span> <span class="component">{@link Extension}*</span>; @@ -53,7 +56,7 @@ public class ServerVariableObject extends ASTNode<ASTNode> implements Cloneable } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:122 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:157 */ public static ServerVariableObject parseServerVariable(ServerVariable serverVariable, Map<Object, ASTNode> map){ ServerVariableObject serverVariableObject = new ServerVariableObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java index 16878d74..1464b959 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:15 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:16 * @astdecl ServerVariablesTuple : ASTNode ::= <Name:String> ServerVariableObject; * @production ServerVariablesTuple : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link ServerVariableObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java index 3469ec20..74c26974 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:53 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:51 * @astdecl Tag : ASTNode ::= <Tag:String>; * @production Tag : {@link ASTNode} ::= <span class="component"><Tag:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java index 2a1e5c57..0969712b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:103 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:101 * @astdecl TagObject : ASTNode ::= <Name:String> <Description:String> [ExternalDocObject] Extension*; * @production TagObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class TagObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:682 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:672 */ public static org.openapi4j.parser.model.v3.Tag composeTag (TagObject tagObject, Map<Object, ASTNode> map){ org.openapi4j.parser.model.v3.Tag tag = new org.openapi4j.parser.model.v3.Tag(); @@ -48,7 +51,7 @@ public class TagObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:604 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:626 */ public static TagObject parseTag(org.openapi4j.parser.model.v3.Tag tag, Map<Object, ASTNode> map){ TagObject tagObject = new TagObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java index 88c142f2..19eb6eef 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:52 - * @astdecl Trace : OperationOb ::= <OperationObject:OperationObject>; - * @production Trace : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:50 + * @astdecl Trace : ASTNode ::= OperationObject; + * @production Trace : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Trace extends OperationOb implements Cloneable { +public class Trace extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Trace extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Trace(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Trace clone() throws CloneNotSupportedException { Trace node = (Trace) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Trace copy() { try { @@ -103,7 +107,7 @@ public class Trace extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Trace fullCopy() { @@ -114,7 +118,7 @@ public class Trace extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Trace treeCopyNoTransform() { Trace tree = (Trace) copy(); @@ -135,7 +139,7 @@ public class Trace extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Trace treeCopy() { Trace tree = (Trace) copy(); @@ -151,81 +155,36 @@ public class Trace extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Trace) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java index d546aa15..fb462727 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:124 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:122 * @astdecl XmlObject : ASTNode ::= <Name:String> <Namespace:String> <Prefix:String> <Attribute:Boolean> <Wrapped:Boolean> Extension*; * @production XmlObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Namespace:String></span> <span class="component"><Prefix:String></span> <span class="component"><Attribute:Boolean></span> <span class="component"><Wrapped:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class XmlObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:855 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:845 */ public static Xml composeXml (XmlObject xmlObject, Map<Object, ASTNode> map) { Xml xml = new Xml(); @@ -46,7 +49,7 @@ public class XmlObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:770 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:791 */ public static XmlObject parseXml (Xml xml, Map<Object, ASTNode> map) { XmlObject xmlObject = new XmlObject(); diff --git a/src/main/jastadd/Composer.jrag b/src/main/jastadd/Composer.jrag index 40b8e29d..e18c9c1d 100644 --- a/src/main/jastadd/Composer.jrag +++ b/src/main/jastadd/Composer.jrag @@ -27,7 +27,7 @@ aspect Composer { if( openapi.getNumPathsObject() != 0 ){ Map<String, Path> paths = new HashMap<>(); for( PathsObject p : openapi.getPathsObjects() ) - paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), PathItemObject.composePath(p.getPathItemObject(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -259,17 +259,7 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co return components; } - syn Path PathItemOb.composePath (PathItemOb pathItem, Map<Object, ASTNode> map); - eq PathItemReference.composePath (PathItemOb pathItem, Map<Object, ASTNode> map) { - Path path = new Path(); - PathItemReference p = (PathItemReference) pathItem; - - if( !p.getRef().isEmpty() ) - path.setRef(p.getRef()); - - return path; - } - eq PathItemObject.composePath (PathItemOb pathItem, Map<Object, ASTNode> map) { +public static Path PathItemObject.composePath (PathItemObject pathItem, Map<Object, ASTNode> map){ Path path = new Path(); PathItemObject p = (PathItemObject) pathItem; @@ -307,7 +297,7 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co } return path; - } + } public static Operation OperationObject.composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); @@ -571,9 +561,9 @@ public static EncodingProperty EncodingObject.composeEncodingProperty (EncodingO if( c.getNumExpression() != 0 ){ Map<String, Path> paths = new HashMap<>(); - PathItemOb p; + PathItemObject p; for( Expression e : c.getExpressions() ) { - p = e.getPathItemOb(); + p = e.getPathItemObject(); paths.put(e.getName(), p.composePath(p, map)); } callback.setCallbackPaths(paths); diff --git a/src/main/jastadd/InfSchema.jrag b/src/main/jastadd/InfSchema.jrag deleted file mode 100644 index 13750b83..00000000 --- a/src/main/jastadd/InfSchema.jrag +++ /dev/null @@ -1,69 +0,0 @@ -aspect InfSchema { - - // syn Set<SchemaObject> ResponseObject.schemaObject () = for( ContentTuple c : getContentTuples() ) add.SchemaObject(); - - - /* - coll Set<SchemaOb> OpenAPIObject.collectSchemaObs() [new HashSet<>()] root OpenAPIObject; - SchemaOb contributes this - when schemaObject() - to OpenAPIObject.collectSchemaObs(); - */ - - inh OpenAPIObject ASTNode.root(); - eq OpenAPIObject.getChild().root() = this; - - coll Set<SchemaTuple> OpenAPIObject.schemaTuples() [new HashSet<>()] root OpenAPIObject; - SchemaTuple contributes this - to OpenAPIObject.schemaTuples(); - - inh Set<String> PathsObject.inferUrl(Set<String> urls); - eq OpenAPIObject.getPathsObject(int i).inferUrl(Set<String> urls) { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); - String path = ((OpenAPIObject) getParent()).getServerObject(0).getUrl(); - - if( p.hasGet() ) - urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); - else if( p.hasPost() ) - urls.add(p.getPost().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getPost().getOperationObject())); - - return urls; - } - - syn String OperationOb.inferRandomUrl(String pathRef, OperationObject operationObject); - eq Get.inferRandomUrl(String pathRef, OperationObject operationObject) { - - return ""; - } - eq Post.inferRandomUrl(String pathRef, OperationObject operationObject) { - - return ""; - } - eq Put.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Delete.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Options.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Head.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Patch.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Trace.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq OperationObject.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - - syn Map<String, List<String>> OperationObject.addDict (Map<ResponseObject, String> responses){ - Map<String, List<String>> map = new HashMap<>(); - - return map; - } -} \ No newline at end of file diff --git a/src/main/jastadd/InferParameter.jrag b/src/main/jastadd/InferParameter.jrag new file mode 100644 index 00000000..664da427 --- /dev/null +++ b/src/main/jastadd/InferParameter.jrag @@ -0,0 +1,209 @@ +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; + +aspect InferParameter { + + syn Set<String> OpenAPIObject.collectInferredParameters () { + Set<String> collect = new HashSet<>(); + + for( InferredParameter i : getInferredParameters() ) + collect.add(i.getParameter()); + + return collect; + } + + public void OpenAPIObject.generateRequestsWithInferredParameters () throws Exception { + Set<String> urls = new HashSet<>(); + + generateRequests(); + + for( PathsObject p : getPathsObjects() ) + p.inferUrl(urls); + } + + inh Set<String> PathsObject.inferUrl(Set<String> urls); + eq OpenAPIObject.getPathsObject(int i).inferUrl(Set<String> urls) { + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); + String path = getServerObject(0).getUrl(); + + if( p.hasGet() ) + urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); + else if( p.hasPost() ) + urls.add(p.getPost().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getPost().getOperationObject())); + + return urls; + } + + syn String Get.inferRandomUrl(String pathRef, OperationObject operationObject) { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + //System.out.println(p.getName() + " ---------- " + str.substring(0, str.indexOf("?")) + " -------- " + p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?")))); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ){ + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + //System.out.println(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + System.out.println(paths.size() + " Paths are inferred."); + + for( String path : paths ){ + System.out.println(path); + //connectGET(path); + } + } + return pathRef; + }catch (Exception e) { + return ""; + } + } + + syn String Post.inferRandomUrl(String pathRef, OperationObject operationObject) { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + + for( String path : paths ){ + System.out.println(path); + //connectPOST(path); + } + + } + return pathRef; + }catch (Exception e) { + return ""; + } + } + + public void OperationObject.writeDictionary (SchemaOb schema, String resp) throws Exception{ + String schemaName = schema.getClass().getName(); + ObjectMapper mapper = new ObjectMapper(); + JsonNode respNode = mapper.readTree(resp); + String value; + + if (schemaName.substring(schemaName.lastIndexOf(".") + 1).equals("SchemaReference")) { + for (PropertyItem p : schema.schemaObject().getPropertyItems()) { + String infName = ((SchemaReference) schema).getRef().substring(((SchemaReference) schema).getRef().lastIndexOf("/") + 1) + p.getName(); + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(infName + "?" + value)); + root().addInferredParameter(new InferredParameter(p.getName() + "?" + value)); + } + } else { + for (PropertyItem p : schema.schemaObject().getPropertyItems()){ + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(p.getName() + "?" + respNode.get(p.getName()).textValue())); + } + } + + } + + public void OperationObject.writeDictionaryWithArray (SchemaOb schema, String resp) throws Exception{ + ObjectMapper mapper = new ObjectMapper(); + ArrayNode respNode = ((ArrayNode) mapper.readTree(resp)); + Iterator<JsonNode> props = respNode.elements(); + + while( props.hasNext() ) + writeDictionary(schema.schemaObject().getItemsSchema().getSchemaOb(), props.next().toString()); + + } + + public void Get.connectGET (String path) throws Exception{ + URL url = new URL(path); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + + con.setRequestMethod("GET"); // optional default is GET + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (GET) : " + responseCode); + } + + public void Post.connectPOST (String path) throws Exception{ + URL url = new URL(path); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + con.setDoOutput(true); // POST + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (POST) : " + responseCode); + } +} \ No newline at end of file diff --git a/src/main/jastadd/OpenAPISpecification.ast b/src/main/jastadd/OpenAPISpecification.ast index 1d9ac86b..9ae3e3ee 100644 --- a/src/main/jastadd/OpenAPISpecification.ast +++ b/src/main/jastadd/OpenAPISpecification.ast @@ -1,5 +1,6 @@ //OpenAPI Object -OpenAPIObject ::= <OpenAPI> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension*; +OpenAPIObject ::= <OpenAPI> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension* InferredParameter*; +InferredParameter ::= <Parameter>; //Info Object InfoObject ::= <Title> <Description> <TermsOfService> [ContactObject] [LicenseObject] <Version> Extension*; @@ -32,24 +33,21 @@ CallbackTuple ::= <Key> CallbackOb; //Paths Object -PathsObject ::= <Ref> PathItemOb; +PathsObject ::= <Ref> PathItemObject; //Path Item Object -abstract PathItemOb; -PathItemReference : PathItemOb ::= <Ref> <PathItemOb:PathItemOb>; -PathItemObject : PathItemOb ::= <Summary> <Description> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; +PathItemObject ::= <Summary> <Description> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; //Operation Object -abstract OperationOb; -OperationObject : OperationOb ::= Tag* <Summary> <Description> [ExternalDocObject] <OperationID> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; -Get : OperationOb ::= <OperationObject:OperationObject>; -Put : OperationOb ::= <OperationObject:OperationObject>; -Post : OperationOb ::= <OperationObject:OperationObject>; -Delete : OperationOb ::= <OperationObject:OperationObject>; -Options : OperationOb ::= <OperationObject:OperationObject>; -Head : OperationOb ::= <OperationObject:OperationObject>; -Patch : OperationOb ::= <OperationObject:OperationObject>; -Trace : OperationOb ::= <OperationObject:OperationObject>; +OperationObject ::= Tag* <Summary> <Description> [ExternalDocObject] <OperationID> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; +Get ::= OperationObject; +Put ::= OperationObject; +Post ::= OperationObject; +Delete ::= OperationObject; +Options ::= OperationObject; +Head ::= OperationObject; +Patch ::= OperationObject; +Trace ::= OperationObject; Tag ::= <Tag:String>; //External Documentation Object @@ -57,13 +55,13 @@ ExternalDocObject ::= <Description> <Url> Extension*; //Parameter Object abstract ParameterOb; -ParameterReference : ParameterOb ::= <Ref> <ParameterOb:ParameterOb>; +ParameterReference : ParameterOb ::= <Ref>; ParameterObject : ParameterOb ::= <Name> <In> <Description> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; ContentTuple ::= <Key> MediaTypeObject; //Request Body Object abstract RequestBodyOb; -RequestBodyReference : RequestBodyOb ::= <Ref> <RequestBodyOb:RequestBodyOb>; +RequestBodyReference : RequestBodyOb ::= <Ref>; RequestBodyObject : RequestBodyOb ::= <Description> ContentTuple* <Required:Boolean> Extension*; //Media Type Object @@ -75,14 +73,14 @@ EncodingObject ::= <ContentType> HeaderTuple* <Style> <Explode:Boolean> <AllowRe //Response Object abstract ResponseOb; -ResponseReference : ResponseOb ::= <Ref> <ResponseOb:ResponseOb>; +ResponseReference : ResponseOb ::= <Ref>; ResponseObject : ResponseOb ::= <Description> HeaderTuple* ContentTuple* LinkTuple* Extension*; //Callback Object abstract CallbackOb; -CallbackReference : CallbackOb ::= <Ref> <CallbackOb:CallbackOb>; +CallbackReference : CallbackOb ::= <Ref>; CallbackObject : CallbackOb ::= Expression* Extension*; -Expression ::= <Name> PathItemOb; +Expression ::= <Name> PathItemObject; Extension ::= <Key> <Value:Object>; //Example Object @@ -90,13 +88,13 @@ ExampleObject ::= <Summary> <Description> <Value:Object> <ExternalValue> Extensi //Link Object abstract LinkOb; -LinkReference : LinkOb ::= <Ref> <LinkOb:LinkOb>; +LinkReference : LinkOb ::= <Ref>; LinkObject : LinkOb ::= <OperationRef> <OperationID> LinkParameterTuple* HeaderTuple* <Description> [ServerObject] Extension*; LinkParameterTuple ::= <LinkParameterKey> <LinkParameterValue>; //Header Object abstract HeaderOb; -HeaderReference : HeaderOb ::= <Ref> <HeaderOb:HeaderOb>; +HeaderReference : HeaderOb ::= <Ref>; HeaderObject : HeaderOb ::= <Description> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; //Tag Object @@ -104,7 +102,7 @@ TagObject ::= <Name> <Description> [ExternalDocObject] Extension*; //Schema Object abstract SchemaOb; -SchemaReference : SchemaOb ::= <Ref> <SchemaOb:SchemaOb>; +SchemaReference : SchemaOb ::= <Ref>; SchemaObject : SchemaOb ::= [AdditionalProperties] <AdditionalPropertiesAllowed:Boolean> <DefaultValue:Object> <Description> <DeprecatedBoolean:Boolean> [DiscriminatorObject] EnumObj* <Example:Object> <ExclusiveMaximum:Boolean> <ExclusiveMinimum:Boolean> [ExternalDocObject] <Format> [ItemsSchema] <Maximum:Number> <Minimum:Number> <MaxItems:Integer> <MinItems:Integer> <MaxLength:Integer> <MinLength:Integer> <MaxProperties:Integer> <MinProperties:Integer> <MultipleOf:Number> [NotSchema] <Nullable:Boolean> <Pattern> PropertyItem* RequiredField* AllOfSchema* AnyOfSchema* OneOfSchema* <ReadOnly:Boolean> <WriteOnly:Boolean> <Type> <Title> <UniqueItems:Boolean> [XmlObject] Extension*; AdditionalProperties ::= SchemaOb; EnumObj ::= <EnumOb:Object>; @@ -125,8 +123,8 @@ XmlObject ::= <Name> <Namespace> <Prefix> <Attribute:Boolean> <Wrapped:Boolean> //Security Scheme Object abstract SecuritySchemeOb; -SecuritySchemeReference : SecuritySchemeOb ::= <Ref> <SecuritySchemeOb:SecuritySchemeOb>; -SecuritySchemeObject : SecuritySchemeOb ::= <Type> <Description> <Name> <In> <Scheme> <BearerFormat> OAuthFlowsObject <OpenIdConnectUrl> Extension*; +SecuritySchemeReference : SecuritySchemeOb ::= <Ref>; +SecuritySchemeObject : SecuritySchemeOb ::= <Type> <Description> <Name> <In> <Scheme> <BearerFormat> [OAuthFlowsObject] <OpenIdConnectUrl> Extension*; //OAuth Flows Object OAuthFlowsObject ::= [Implicit] [Password] [ClientCredentials] [AuthorizationCode] Extension*; diff --git a/src/main/jastadd/Parser.jrag b/src/main/jastadd/Parser.jrag index f432f5a7..79f18208 100644 --- a/src/main/jastadd/Parser.jrag +++ b/src/main/jastadd/Parser.jrag @@ -2,6 +2,41 @@ import org.openapi4j.core.exception.DecodeException; 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 { OpenAPIObject openapi = new OpenAPIObject(); Map<Object, ASTNode> map = new HashMap<>(); @@ -14,7 +49,7 @@ public static OpenAPIObject OpenAPIObject.parseOpenAPI(OpenApi3 api) throws IOEx openapi.setInfoObject(InfoObject.parseInfo(api.getInfo(), map)); if( api.getPaths() != null ){ for( String key : api.getPaths().keySet() ) - openapi.addPathsObject(new PathsObject( key, PathItemOb.parsePath(api.getPath(key), api.getContext(), map))); + openapi.addPathsObject(new PathsObject( key, PathItemObject.parsePath(api.getPath(key), api.getContext(), map))); } if( api.getServers() != null ){ for( Server s : api.getServers() ) @@ -187,15 +222,9 @@ public static ComponentsObject ComponentsObject.parseComponents(Components compo return componentsObject; } -public static PathItemOb PathItemOb.parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { +public static PathItemObject PathItemObject.parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { PathItemObject pathItem = new PathItemObject(); - if( path.isRef() ){ - PathItemReference p = new PathItemReference(); - p.setRef(path.getRef()); - p.setPathItemOb((PathItemObject) parsePath(path.getReference(context).getMappedContent(Path.class), context, map)); - return p; - } else { if( path.getSummary() != null ) pathItem.setSummary(path.getSummary()); if( path.getDescription() != null ) @@ -252,7 +281,6 @@ public static PathItemOb PathItemOb.parsePath(Path path, OAIContext context, Map for( String key : path.getExtensions().keySet() ) pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); } - } map.put(path, pathItem); return pathItem; @@ -332,7 +360,6 @@ public static ParameterOb ParameterOb.parseParameter(Parameter parameter, OAICon if( parameter.isRef() ){ ParameterReference p = new ParameterReference(); p.setRef(parameter.getRef()); - p.setParameterOb(parseParameter(parameter.getReference(context).getMappedContent(Parameter.class), context, map)); return p; } else { if( parameter.getName() != null ) @@ -379,7 +406,6 @@ public static RequestBodyOb RequestBodyOb.parseRequestBody(org.openapi4j.parser. if( requestBody.isRef() ){ RequestBodyReference r = new RequestBodyReference(); r.setRef(requestBody.getRef()); - r.setRequestBodyOb(parseRequestBody(requestBody.getReference(context).getMappedContent(RequestBody.class), context, map)); return r; } else { if( requestBody.getContentMediaTypes() != null ) { @@ -452,7 +478,6 @@ public static ResponseOb ResponseOb.parseResponse(Response response, OAIContext if( response.isRef() ){ ResponseReference r = new ResponseReference(); r.setRef(response.getRef()); - r.setResponseOb(parseResponse(response.getReference(context).getMappedContent(Response.class), context, map)); return r; } else { if( response.getDescription() != null ) @@ -485,12 +510,11 @@ public static CallbackOb CallbackOb.parseCallback(Callback callback, OAIContext if( callback.isRef() ){ CallbackReference c = new CallbackReference(); c.setRef(callback.getRef()); - c.setCallbackOb(parseCallback(callback.getReference(context).getMappedContent(Callback.class), context, map)); return c; } else { if( callback.getCallbackPaths() != null ){ for( String key : callback.getCallbackPaths().keySet() ) - callbackObject.addExpression(new Expression(key, PathItemOb.parsePath(callback.getCallbackPath(key), context, map))); + callbackObject.addExpression(new Expression(key, PathItemObject.parsePath(callback.getCallbackPath(key), context, map))); } if( callback.getExtensions() != null ){ for( String key : callback.getExtensions().keySet() ) @@ -533,7 +557,6 @@ public static LinkOb LinkOb.parseLink(Link link, OAIContext context, Map<Object, if( link.isRef() ){ LinkReference l = new LinkReference(); l.setRef(link.getRef()); - l.setLinkOb(parseLink(link.getReference(context).getMappedContent(Link.class), context, map)); return l; } else { if( link.getOperationRef() != null ) @@ -564,7 +587,6 @@ public static HeaderOb HeaderOb.parseHeader(Header header, OAIContext context, M if( header.isRef() ){ HeaderReference h = new HeaderReference(); h.setRef(header.getRef()); - h.setHeaderOb(parseHeader(header.getReference(context).getMappedContent(Header.class), context, map)); return h; } else { if( header.getRequired() != null ) @@ -629,7 +651,6 @@ public static SchemaOb SchemaOb.parseSchema (org.openapi4j.parser.model.v3.Schem if( schema.isRef() ){ SchemaReference s = new SchemaReference(); s.setRef(schema.getRef()); - s.setSchemaOb(parseSchema(schema.getReference(context).getMappedContent(Schema.class), context, map)); return s; } else { if( schema.getAdditionalProperties() != null ) diff --git a/src/main/jastadd/RandomRequestGenerator.jrag b/src/main/jastadd/RandomRequestGenerator.jrag index bc620077..1212d584 100644 --- a/src/main/jastadd/RandomRequestGenerator.jrag +++ b/src/main/jastadd/RandomRequestGenerator.jrag @@ -13,7 +13,7 @@ aspect RandomRequestGenerator { Set<String> urls = new HashSet<>(); Map<ResponseObject, String> responses = new HashMap<>(); - for( PathsObject p : this.getPathsObjects() ) + for( PathsObject p : getPathsObjects() ) p.generateUrl(responses); System.out.println(responses.size()); @@ -82,7 +82,7 @@ aspect RandomRequestGenerator { inh Map<ResponseObject, String> PathsObject.generateUrl(Map<ResponseObject, String> responses); eq OpenAPIObject.getPathsObject(int i).generateUrl(Map<ResponseObject, String> responses) { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); String path = getServerObject(0).getUrl(); if( p.hasGet() ) @@ -94,7 +94,6 @@ aspect RandomRequestGenerator { return responses; } - syn String OperationOb.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses); /* eq Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { Random rand = new Random(); @@ -204,7 +203,8 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje } */ - eq Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { + + syn String Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { try { Random rand = new Random(); @@ -250,6 +250,7 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje URL url = new URL(pathRef); HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setRequestMethod("GET"); // optional default is GET @@ -265,10 +266,15 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje // print result System.out.println("HTTP status code (GET) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } } return pathRef; @@ -276,10 +282,9 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje return ""; } } - eq Post.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - Random rand = new Random(); - + syn String Post.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ try{ + Random rand = new Random(); for( ParameterOb o : operationObject.getParameterObs() ){ ParameterObject p = o.parameterObject(); SchemaObject s = p.getSchemaOb().schemaObject(); @@ -323,7 +328,9 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje URL url = new URL(pathRef); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setDoOutput(true); // POST int responseCode = con.getResponseCode(); @@ -338,41 +345,21 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje // print result System.out.println("HTTP status code (POST) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } else if ( t.getKey().equals("default") && responseCode == 200 ){ - System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } - } - return pathRef;} catch (Exception e) { + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); + } + return pathRef;} + } catch (Exception e) { return ""; - } - } - - eq Put.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Delete.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Options.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Head.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Patch.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Trace.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq OperationObject.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } + } return ""; + } public String OperationObject.generateRandomString(Random rand, JastAddList<EnumObj> objs) { if( objs.getNumChild() != 0 ) @@ -393,5 +380,5 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje else if( maximum > 0 ) return String.valueOf(rand.nextInt(maximum)); return String.valueOf(rand.nextInt()); - } + } } \ No newline at end of file diff --git a/src/main/jastadd/RefGet.jrag b/src/main/jastadd/RefGet.jrag deleted file mode 100644 index 15579fda..00000000 --- a/src/main/jastadd/RefGet.jrag +++ /dev/null @@ -1,84 +0,0 @@ -aspect RefGet { - - syn ParameterObject ParameterOb.parameterObject(); - eq ParameterObject.parameterObject() = this; - eq ParameterReference.parameterObject() { - if( getParameterOb() instanceof ParameterObject ) - return (ParameterObject) getParameterOb(); - else - return getParameterOb().parameterObject(); - } - - syn SchemaObject SchemaOb.schemaObject(); - eq SchemaObject.schemaObject() = this; - eq SchemaReference.schemaObject() { - if( getSchemaOb() instanceof SchemaObject ) - return (SchemaObject) getSchemaOb(); - else - return getSchemaOb().schemaObject(); - } - - syn PathItemObject PathItemOb.pathItemObject(); - eq PathItemObject.pathItemObject() = this; - eq PathItemReference.pathItemObject() { - if( getPathItemOb() instanceof PathItemObject ) - return (PathItemObject) getPathItemOb(); - else - return getPathItemOb().pathItemObject(); - } - - syn RequestBodyObject RequestBodyOb.requestBodyObject(); - eq RequestBodyObject.requestBodyObject() = this; - eq RequestBodyReference.requestBodyObject() { - if( getRequestBodyOb() instanceof RequestBodyObject ) - return (RequestBodyObject) getRequestBodyOb(); - else - return getRequestBodyOb().requestBodyObject(); - } - - syn ResponseObject ResponseOb.responseObject(); - eq ResponseObject.responseObject() = this; - eq ResponseReference.responseObject() { - if( getResponseOb() instanceof ResponseObject ) - return (ResponseObject) getResponseOb(); - else - return getResponseOb().responseObject(); - } - - syn CallbackObject CallbackOb.callbackObject(); - eq CallbackObject.callbackObject() = this; - eq CallbackReference.callbackObject() { - if( getCallbackOb() instanceof CallbackObject ) - return (CallbackObject) getCallbackOb(); - else - return getCallbackOb().callbackObject(); - } - - syn LinkObject LinkOb.linkObject(); - eq LinkObject.linkObject() = this; - eq LinkReference.linkObject() { - if( getLinkOb() instanceof LinkObject ) - return (LinkObject) getLinkOb(); - else - return getLinkOb().linkObject(); - } - - syn HeaderObject HeaderOb.headerObject(); - eq HeaderObject.headerObject() = this; - eq HeaderReference.headerObject() { - if( getHeaderOb() instanceof HeaderObject ) - return (HeaderObject) getHeaderOb(); - else - return getHeaderOb().headerObject(); - } - - syn SecuritySchemeObject SecuritySchemeOb.securitySchemeObject(); - eq SecuritySchemeObject.securitySchemeObject() = this; - eq SecuritySchemeReference.securitySchemeObject() { - if( getSecuritySchemeOb() instanceof SecuritySchemeObject ) - return (SecuritySchemeObject) getSecuritySchemeOb(); - else - return getSecuritySchemeOb().securitySchemeObject(); - } - -} \ No newline at end of file diff --git a/src/main/jastadd/Reference.jrag b/src/main/jastadd/Reference.jrag new file mode 100644 index 00000000..5cb3d504 --- /dev/null +++ b/src/main/jastadd/Reference.jrag @@ -0,0 +1,83 @@ +aspect Reference { + + syn ParameterObject ParameterOb.parameterObject(); + eq ParameterObject.parameterObject() = this; + eq ParameterReference.parameterObject() { + for( ParameterTuple t : root().parameterTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getParameterOb().parameterObject(); + } + return new ParameterObject(); + } + + syn SchemaObject SchemaOb.schemaObject(); + eq SchemaObject.schemaObject() = this; + eq SchemaReference.schemaObject() { + for( SchemaTuple t : root().schemaTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSchemaOb().schemaObject(); + } + return new SchemaObject(); + } + + syn RequestBodyObject RequestBodyOb.requestBodyObject(); + eq RequestBodyObject.requestBodyObject() = this; + eq RequestBodyReference.requestBodyObject() { + for( RequestBodyTuple t : root().requestBodyTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getRequestBodyOb().requestBodyObject(); + } + return new RequestBodyObject(); + } + + syn ResponseObject ResponseOb.responseObject(); + eq ResponseObject.responseObject() = this; + eq ResponseReference.responseObject() { + for( ResponseTuple t : root().responseTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getResponseOb().responseObject(); + } + return new ResponseObject(); + } + + syn CallbackObject CallbackOb.callbackObject(); + eq CallbackObject.callbackObject() = this; + eq CallbackReference.callbackObject() { + for( CallbackTuple t : root().callbackTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getCallbackOb().callbackObject(); + } + return new CallbackObject(); + } + + syn LinkObject LinkOb.linkObject(); + eq LinkObject.linkObject() = this; + eq LinkReference.linkObject() { + for( LinkTuple t : root().linkTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getLinkOb().linkObject(); + } + return new LinkObject(); + } + + syn HeaderObject HeaderOb.headerObject(); + eq HeaderObject.headerObject() = this; + eq HeaderReference.headerObject() { + for( HeaderTuple t : root().headerTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getHeaderOb().headerObject(); + } + return new HeaderObject(); + } + + syn SecuritySchemeObject SecuritySchemeOb.securitySchemeObject(); + eq SecuritySchemeObject.securitySchemeObject() = this; + eq SecuritySchemeReference.securitySchemeObject() { + for( SecuritySchemeTuple t : root().securitySchemeTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSecuritySchemeOb().securitySchemeObject(); + } + return new SecuritySchemeObject(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java index ecddff6a..59253086 100644 --- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java +++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java @@ -30,7 +30,7 @@ public class OpenAPIMain { /** main-method, calls the set of methods to test the OpenAPI-Generator with JastAdd **/ public static void main(String[] args) throws Exception { - OpenAPIObject openApi; + OpenAPIObject openApi = new OpenAPIObject(); OpenApi3 api3; ValidationResults results; List<String> filenames = new ArrayList<>(); @@ -76,8 +76,8 @@ public class OpenAPIMain { OpenApi3 api = new OpenApi3Parser().parse(expUrl, new ArrayList<>(), true); System.out.println("Loading expression DSL file '" + fileName + "'."); - openApi = OpenAPIObject.parseOpenAPI(api); - openApi.generateRequests(); + openApi = openApi.parseOpenAPI(api); + openApi.generateRequestsWithInferredParameters(); //writer.write(api3.toNode().toPrettyString()); //writer.close(); diff --git a/src/test/java/openapi/OpenAPIMain_test.java b/src/test/java/openapi/OpenAPIMain_test.java index 786273e0..05f2a9c9 100644 --- a/src/test/java/openapi/OpenAPIMain_test.java +++ b/src/test/java/openapi/OpenAPIMain_test.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.flipkart.zjsonpatch.JsonDiff; import de.tudresden.inf.st.openapi.ast.*; +import org.graalvm.compiler.lir.amd64.AMD64BinaryConsumer; import org.junit.jupiter.api.Assertions; import org.openapi4j.core.exception.DecodeException; import org.openapi4j.core.exception.EncodeException; @@ -26,6 +27,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import org.junit.jupiter.api.Test; @@ -36,8 +38,8 @@ import static org.junit.jupiter.api.Assertions.*; public class OpenAPIMain_test { @Test - public void test() throws IOException, ResolutionException, ValidationException, EncodeException, DecodeException { - OpenAPIObject openApi; + public void test() throws Exception { + OpenAPIObject openApi = new OpenAPIObject(); OpenApi3 api3; ValidationResults results; List<String> filenames = new ArrayList<>(); @@ -68,9 +70,10 @@ public class OpenAPIMain_test { //System.out.println(results.isValid()); // openAPI object is integrated in JastAdd grammar - openApi = OpenAPIObject.parseOpenAPI(api); - Set<SchemaTuple> s = openApi.schemaTuples(); - System.out.println(s.size()); + openApi = openApi.parseOpenAPI(api); + System.out.println(openApi.getPathsObject(0).getPathItemObject().getPost().getOperationObject().getResponseTuple(0).getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb().getClass().getName()); + + //Map<ResponseObject, String> map = openApi.generateRequests(); // composed openAPI object, it is expected to be equivalent to parsed source object api3 = OpenAPIObject.composeOpenAPI(openApi); -- GitLab