diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin index b0f8fa06d7042159b56b76923ed39f37999d6cf1..567b9475ced1e91ffc14457422e1b68c71b94191 100644 Binary files a/.gradle/6.8/executionHistory/executionHistory.bin and b/.gradle/6.8/executionHistory/executionHistory.bin differ diff --git a/.gradle/6.8/executionHistory/executionHistory.lock b/.gradle/6.8/executionHistory/executionHistory.lock index 75759160706ccfca8842ae6881f3863616c9ea9a..f82e7b15d4341af21b9edf049452ee38747f9be5 100644 Binary files a/.gradle/6.8/executionHistory/executionHistory.lock and b/.gradle/6.8/executionHistory/executionHistory.lock differ diff --git a/.gradle/6.8/fileHashes/fileHashes.bin b/.gradle/6.8/fileHashes/fileHashes.bin index 40f07f5b8fbdb1e4512cc7884c9d78ffc785e502..c4ed14887785e82d091e10e394c0f99baacaefc0 100644 Binary files a/.gradle/6.8/fileHashes/fileHashes.bin and b/.gradle/6.8/fileHashes/fileHashes.bin differ diff --git a/.gradle/6.8/fileHashes/fileHashes.lock b/.gradle/6.8/fileHashes/fileHashes.lock index 097def7561c010211d4f6826f2e401c600b66db5..38de8f6dee95cb023e0818f9007a830136aeedf0 100644 Binary files a/.gradle/6.8/fileHashes/fileHashes.lock and b/.gradle/6.8/fileHashes/fileHashes.lock differ diff --git a/.gradle/6.8/fileHashes/resourceHashesCache.bin b/.gradle/6.8/fileHashes/resourceHashesCache.bin index 86ece78beeff721703fd037a2818542065894c56..df89e0dc0836dec9d4e86d3d5a71b45b28b1d736 100644 Binary files a/.gradle/6.8/fileHashes/resourceHashesCache.bin and b/.gradle/6.8/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/6.8/javaCompile/classAnalysis.bin b/.gradle/6.8/javaCompile/classAnalysis.bin index 2b82f0d61aaaf6bf44cdf3e74edcc22d88d1ff73..22c44c0448d6ba672e8350d60b2c8834bad4d24f 100644 Binary files a/.gradle/6.8/javaCompile/classAnalysis.bin and b/.gradle/6.8/javaCompile/classAnalysis.bin differ diff --git a/.gradle/6.8/javaCompile/jarAnalysis.bin b/.gradle/6.8/javaCompile/jarAnalysis.bin index 59f3e3ab4df52fc1808273d20b044c790b47b8ff..cbbc1d48efbff39848ae0ae08f7d668cfe919904 100644 Binary files a/.gradle/6.8/javaCompile/jarAnalysis.bin and b/.gradle/6.8/javaCompile/jarAnalysis.bin differ diff --git a/.gradle/6.8/javaCompile/javaCompile.lock b/.gradle/6.8/javaCompile/javaCompile.lock index 1fb439195f6356ffeadf2e3beab2ad3cba98388c..2d468154463985b80707fdbd7350b5b56142298e 100644 Binary files a/.gradle/6.8/javaCompile/javaCompile.lock and b/.gradle/6.8/javaCompile/javaCompile.lock differ diff --git a/.gradle/6.8/javaCompile/taskHistory.bin b/.gradle/6.8/javaCompile/taskHistory.bin index d54deb4b355c86a3f63401bda63cb7760d93734b..d465bbe99eff90bb40dd5de033d5aade3a5550b4 100644 Binary files a/.gradle/6.8/javaCompile/taskHistory.bin and b/.gradle/6.8/javaCompile/taskHistory.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 6d1fb7eb8fade5cb127e36213b7fb427ced07581..c75ce7abd36e9c113e2c9299648023fff6aa9989 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ 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 0af7def6717cd6a2a817e016e4d6c64e2c343649..b0c4303d8642ede6332692e6859d50f0a97d8376 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Attribute.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Attribute.class new file mode 100644 index 0000000000000000000000000000000000000000..89345c98f3c9e8bd060d71a10874505721b969af Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Attribute.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Child.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Child.class new file mode 100644 index 0000000000000000000000000000000000000000..0f514c8c80823f53dabfda990276f38e36526884 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Child.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Constructor.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Constructor.class new file mode 100644 index 0000000000000000000000000000000000000000..90ad906b470cca1df61cbcd152ff4633c4e6a930 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Constructor.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6174300b7919c6de937f1d509b8951196f9038a6 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Kind.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$ListChild.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$ListChild.class new file mode 100644 index 0000000000000000000000000000000000000000..6af23ae6b4ccadd6579eac17b84e70ca99c3b498 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$ListChild.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$OptChild.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$OptChild.class new file mode 100644 index 0000000000000000000000000000000000000000..d30eb6b958bf0bce354f3bcf92a2d0254e3f1682 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$OptChild.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Source.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Source.class new file mode 100644 index 0000000000000000000000000000000000000000..7b34741fc83d181099b1515de84dc5fa24544487 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Source.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Token.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Token.class new file mode 100644 index 0000000000000000000000000000000000000000..27ba154bd8fbb6183beb6ada07313df9b407f806 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Token.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..3f1b78730828169c64c7d190a3f127af4d89dde9 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..8767e0986079f90f0e3dcefb2e0428ceb03b8a15 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircleState.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..e6a6e5982e4a729ef0387a2107dac15054c60eff Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircularValue.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..cc3876bfb3c8b85c2ec98b731cf2ff106b9b6ba7 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$Cycle.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..0befc72dd95a63482ef1ca0ea232f4dea0946006 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..5e925f51f878c74a554d9b2edb995a35ad33f622 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AllOfSchema.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1523089899da17e3d906bba97e6cea6cc7e037e4 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AnyOfSchema.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ebac92482c9179070b16dedc13d012e1979d23bc Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AttributeValue.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..9ceba40b2469a0bf017f5a1e93211d89c86c051a Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AuthorizationCode.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..970bc58f6aadfd5c4838b4d383005cf37b9dc275 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..63648a04e1487fe2241a4024a8b93ca08045e62c Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..b541234003fbc9665af4870396f6798cfd21bed1 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6baa683417f96c1f11d1cd37f816976ea7dd8a95 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..b6c0ce9e44ea69a74f3b5e7d0378ccf67ddffe50 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ClientCredentials.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..8c38d5ba1e6e464009869f02329fb2b769bf4692 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ComponentsObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1ec670e4c50d0b588b1841ab6fb020ad4e30380e Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContactObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..69a60b96bfe44dd47c7de52721ef5632ca49e515 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContentTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..34b03cd82fb4962347b9e5dbe288a3a4d7f3babe Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Delete.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..f5e8bdb4d0f8f6f43745036d5e9e27ba2b6944a4 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..4989da0795a8e0c7b37ab5b51179185e18df1352 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d2611a18ac60bd0c20b148b1086fc3d99a9b77aa Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..3420fe4b532c0b0ffa02156d77e137f51c285d92 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Enum.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..115f9ea4c64240bf5363d7775bff8cf6af9109fb Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EnumObj.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..659351d7e01a4ec979a2b48366116e7bbc58978c Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1f882a77cee7eb20ecf3d2a6fd6c1f03f5291d56 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..b310022591c4653aeee9b6bcdc54e0944262d033 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Expression.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ba40763b0a3fcbcb0111a419cd1ec372c96b7c16 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Extension.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..e36b08670e23e695429574e710f5024859da54b7 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExternalDocObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..91c49cad19eda1d0958d4eb1dbbdb65fc025588f Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..38699f9818c6599576e106ce1a65cba0395df9fb Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Head.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..c7a7bfac54442721d5ac25060bdbe5bbb16382bd Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..47d5553f8ef848a098a427c485b23b042885cba6 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..44cc8ba44f4ca5b61ad9bfc0e88ba24d01d18310 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..8705260ea74cb981669e140875ff9f15d150aaf9 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..be7d9da14cef49a592a48aa789a3eaad245ab365 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Implicit.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..90dce2ae27eb846b6f0f8bcd828a9eba31cfcd16 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InfoObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..5d1c5f7cfb5953e196759dc691f207c44652a7f7 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ItemsSchema.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..a750bbf87a493052886d3e9631cf6ff6f767f1d1 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/JastAddList.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..c696b5c333bf53955b311f953aec4e7062af1e6f Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LicenseObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ac3e3806fae0e434239c86fb114bd75e6395fbbe Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d231d19fb9a85018159c7e46d9054f1a5632ba8f Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..84d7580f6ebdf9778c4f803fadbfa78990700521 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..84a411a03be5cc5fa444860d36e3cc261e01b415 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ef21dee3c3fd21e1c2bda02f5bd8ae1c4dd2f18e Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d2d11d70e8a6c81d2ded337e8ac6c85437021e56 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MappingTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..174cc473eb6e6e00702fa23cc9246f9c607b9784 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MediaTypeObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1f4621b30600402ff5532014f2db277d14ec6f89 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/NotSchema.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..c8b5524193698a08b08f772a98c56759053c08f6 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..02411e9a3e5537dcb304fa780068306b9169d83f Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..98e28811d1f50bfd0e8d1e560564df1ad4da5211 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OneOfSchema.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1c0a1292980234b98a82ddf953c369b43940b884 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..a6c728c9c15828b106aa6221f38b5e244167c871 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6d10d5025ca5415cebb505c27efd1e254ccdb327 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..af24371584571e17008b878d857def0297aaf35c Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Opt.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..11912d6a57b1fc5acd2fd12e24aa86f45584379a Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Options.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..895df8efdd1f5f07adc31121763daa422aba05de Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..dde8ec33959d68a73e43c1fb0ba0faff7e53f93c Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..319274631499fc467fd6c00a41edbd01d7bc0924 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..bf0737db712657b384c0184ab6405e3e0f9ef2d7 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..a27cd5673b420207f9a09a1001469b9efdfe919a Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Password.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..0d02ec49c24d987f06bc8bdcaed0ba57da3b3451 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Patch.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..9dce10ddeb59a2757e2751cfbd4be475eab58ec9 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..78f3b5435aacef52d343466010f63c6539362710 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ccaeb653bc82e5cc54fc843c316addb4e0869ff8 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..900bb7d01db895eb4383ae4be63cb2631db41a4b Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathsObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1ad28193ff5d6932d506db186a91a1acc50c7a12 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d981c163e11b8a2c1cd2752ba1c325a664cf173a Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PropertyItem.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..7af25c1140c7f7d8448cfe6ba0aa11c2f3e796e6 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Put.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..90824535898c8675642db7912302cb08c77cebc2 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d1ac1030ba2ed93cf7e92f95dc96790f84a7ce03 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..24a550ffc69350f3d869371bca89ab486c8d4c69 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..985f2a3246d53b0b2fc9124ff00558cd3abc4176 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..57c0201f320b44a49685f4e21131d41948d70a05 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequiredField.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..1209e2d2e676d75d5b5f233dc580120108a82f8f Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6d17e85c513cc58b0c7d3b4c7128031b105eb7a1 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..38e64be118b5643ca7426e21b821999384f87617 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..beaad7ffd3e6b6441c40ba74c759df7381de6dda Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..464086fdf5908fe889be7fdc4e994f51eb9e0c65 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..326194d12dfd468baa77929deb00aa4731cd2dae Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..5eff814b32dd7e311983f1b983674e3323738fae Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..630614ff492f35406af5c248a4d7700b60596275 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..3b734e82ab5d2ad00f0bf1372756e1e0e693b2cf Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ScopesTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..40245e5a2152bb1df6a844161241c2eeb9020347 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..bd40c25ab01899cb67f45232a7f1579c60192b1d Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..59c9af6c5c2816a27d8b0efb4467d3f5012a34f3 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..4f726c24cf188f7d5f640ff67e62fcb57ce34a31 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..07c696931a034c4ff683957fcfc0154ff58408fa Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..f393b7d254ce8fb166781c5c5be4f2e2fcf08619 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..fc981036f7ebc07ba272bc536f7a3b8e696c2df3 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..611c37b29e2d6c73528f74e5da588de9dc028a34 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..e48cc5f7e219052148141aca51ee820e9dcea851 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariableObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..a84d7b1be5b7c75266467a3760dfe156fc1e97e1 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6931ce2492a0feff2afde253b2fd88e0d9ae51be Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Tag.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..cb336da10990f80c4669ea4b6b5673675259c9cf Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/TagObject.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..c075be5ee6cef999f67394049a505c0ef71b55f2 Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Trace.class differ 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 new file mode 100644 index 0000000000000000000000000000000000000000..8988bc5dc6f163b29460098019b0c3c30e4b3f4d Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/XmlObject.class differ diff --git a/build/classes/java/test/openapi/OpenAPIMain_test.class b/build/classes/java/test/openapi/OpenAPIMain_test.class index 04775ae8ce77223a231a3e39668a9611e0b4b92a..35ecb72048ec09e359f5caff6592ed689a9fd214 100644 Binary files a/build/classes/java/test/openapi/OpenAPIMain_test.class and b/build/classes/java/test/openapi/OpenAPIMain_test.class differ diff --git a/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html b/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html index 54f3c15e604bfe6457f07d0a251d5a855e9d8e83..09cf38a3173ac2bb07de7cb050ef9cb16ea2d318 100644 --- a/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html +++ b/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html @@ -41,7 +41,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">11.952s</div> +<div class="counter">0.620s</div> <p>duration</p> </div> </td> @@ -79,7 +79,7 @@ </thead> <tr> <td class="success">test()</td> -<td class="success">11.952s</td> +<td class="success">0.620s</td> <td class="success">passed</td> </tr> </table> @@ -87,108 +87,12 @@ <div id="tab1" class="tab"> <h2>Standard output</h2> <span class="code"> -<pre>101 +<pre>5 Loading expression DSL file '1password.com-events-1.0.0.json'. -Loading expression DSL file '1password.local-connect-1.3.0.json'. Loading expression DSL file '6-dot-authentiqio.appspot.com-6.json'. Loading expression DSL file 'abstractapi.com-geolocation-1.0.0.json'. -Loading expression DSL file 'adyen.com-AccountService-6.json'. -Loading expression DSL file 'adyen.com-BalancePlatformService-1.json'. -Loading expression DSL file 'adyen.com-BinLookupService-50.json'. -Loading expression DSL file 'adyen.com-CheckoutService-67.json'. Loading expression DSL file 'adyen.com-CheckoutUtilityService-1.json'. -Loading expression DSL file 'adyen.com-FundService-6.json'. -Loading expression DSL file 'adyen.com-HopService-6.json'. -Loading expression DSL file 'adyen.com-NotificationConfigurationService-6.json'. -Loading expression DSL file 'adyen.com-PaymentService-64.json'. -Loading expression DSL file 'adyen.com-PayoutService-64.json'. -Loading expression DSL file 'amazonaws.com-accessanalyzer-2019-11-01.json'. -Loading expression DSL file 'amazonaws.com-acm-2015-12-08.json'. -Loading expression DSL file 'amazonaws.com-acm-pca-2017-08-22.json'. -Loading expression DSL file 'amazonaws.com-alexaforbusiness-2017-11-09.json'. -Loading expression DSL file 'amazonaws.com-amp-2020-08-01.json'. -Loading expression DSL file 'amazonaws.com-amplify-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-amplifybackend-2020-08-11.json'. -Loading expression DSL file 'amazonaws.com-apigateway-2015-07-09.json'. -Loading expression DSL file 'amazonaws.com-apigatewaymanagementapi-2018-11-29.json'. -Loading expression DSL file 'amazonaws.com-apigatewayv2-2018-11-29.json'. -Loading expression DSL file 'amazonaws.com-appconfig-2019-10-09.json'. -Loading expression DSL file 'amazonaws.com-appflow-2020-08-23.json'. -Loading expression DSL file 'amazonaws.com-appintegration-2020-07-29.json'. -Loading expression DSL file 'amazonaws.com-application-autoscaling-2016-02-06.json'. -Loading expression DSL file 'amazonaws.com-application-insights-2018-11-25.json'. -Loading expression DSL file 'amazonaws.com-applicationcostprofiler-2020-09-10.json'. -Loading expression DSL file 'amazonaws.com-appmesh-2019-01-25.json'. -Loading expression DSL file 'amazonaws.com-apprunner-2020-05-15.json'. -Loading expression DSL file 'amazonaws.com-appstream-2016-12-01.json'. -Loading expression DSL file 'amazonaws.com-appsync-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-athena-2017-05-18.json'. -Loading expression DSL file 'amazonaws.com-auditmanager-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-autoscaling-2011-01-01.json'. -Loading expression DSL file 'amazonaws.com-autoscaling-plans-2018-01-06.json'. -Loading expression DSL file 'amazonaws.com-AWSMigrationHub-2017-05-31.json'. -Loading expression DSL file 'amazonaws.com-backup-2018-11-15.json'. -Loading expression DSL file 'amazonaws.com-batch-2016-08-10.json'. -Loading expression DSL file 'amazonaws.com-braket-2019-09-01.json'. -Loading expression DSL file 'amazonaws.com-budgets-2016-10-20.json'. -Loading expression DSL file 'amazonaws.com-ce-2017-10-25.json'. -Loading expression DSL file 'amazonaws.com-chime-2018-05-01.json'. -Loading expression DSL file 'amazonaws.com-cloud9-2017-09-23.json'. -Loading expression DSL file 'amazonaws.com-cloudformation-2010-05-15.json'. -Loading expression DSL file 'amazonaws.com-cloudfront-2020-05-31.json'. -Loading expression DSL file 'amazonaws.com-cloudhsm-2014-05-30.json'. -Loading expression DSL file 'amazonaws.com-cloudhsmv2-2017-04-28.json'. -Loading expression DSL file 'amazonaws.com-cloudsearch-2013-01-01.json'. -Loading expression DSL file 'amazonaws.com-cloudsearchdomain-2013-01-01.json'. -Loading expression DSL file 'amazonaws.com-cloudtrail-2013-11-01.json'. -Loading expression DSL file 'amazonaws.com-codeartifcat-2018-09-22.json'. -Loading expression DSL file 'amazonaws.com-codebuild-2016-10-06.json'. -Loading expression DSL file 'amazonaws.com-codecommit-2015-04-13.json'. -Loading expression DSL file 'amazonaws.com-codedelpoy-2014-10-06.json'. -Loading expression DSL file 'amazonaws.com-codeguru-reviewer-2019-09-19.json'. -Loading expression DSL file 'amazonaws.com-codeguruprofiler-2019-07-18.json'. -Loading expression DSL file 'amazonaws.com-codepipeline-2015-07-09.json'. -Loading expression DSL file 'amazonaws.com-codestar-2017-04-19.json'. -Loading expression DSL file 'amazonaws.com-codestar-connections-2019-12-01.json'. -Loading expression DSL file 'amazonaws.com-codestar-notifications-2019-10-15.json'. -Loading expression DSL file 'amazonaws.com-cognito-identity-2014-06-30.json'. -Loading expression DSL file 'amazonaws.com-cognito-idp-2016-04-18.json'. -Loading expression DSL file 'amazonaws.com-cognito-sync-2014-06-30.json'. -Loading expression DSL file 'amazonaws.com-comprehend-2017-11-27.json'. -Loading expression DSL file 'amazonaws.com-comprehendmedical-2018-10-30.json'. -Loading expression DSL file 'amazonaws.com-compute-optimizer-2019-11-01.json'. -Loading expression DSL file 'amazonaws.com-config-2014-11-12.json'. -Loading expression DSL file 'amazonaws.com-connect-2017-08-08.json'. -Loading expression DSL file 'amazonaws.com-connect-contact-lens-2020-08-21.json'. -Loading expression DSL file 'amazonaws.com-connectparticipant-2018-09-07.json'. -Loading expression DSL file 'amazonaws.com-cur-2017-01-06.json'. -Loading expression DSL file 'amazonaws.com-customer-profiles-2020-08-15.json'. -Loading expression DSL file 'amazonaws.com-databrew-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-dataexchange-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-datapipeline-2012-10-29.json'. -Loading expression DSL file 'amazonaws.com-datasync-2018-11-09.json'. -Loading expression DSL file 'amazonaws.com-dax-2017-04-19.json'. -Loading expression DSL file 'amazonaws.com-detective-2018-10-26.json'. -Loading expression DSL file 'amazonaws.com-devicefarm-2015-06-23.json'. -Loading expression DSL file 'amazonaws.com-devops-guru-2020-12-01.json'. -Loading expression DSL file 'amazonaws.com-directconnect-2012-10-25.json'. -Loading expression DSL file 'amazonaws.com-discovery-2015-11-01.json'. -Loading expression DSL file 'amazonaws.com-dlm-2018-01-12.json'. -Loading expression DSL file 'amazonaws.com-dms-2016-01-01.json'. -Loading expression DSL file 'amazonaws.com-docdb-2014-10-31.json'. -Loading expression DSL file 'amazonaws.com-ds-2015-04-16.json'. -Loading expression DSL file 'amazonaws.com-dynamodb.json'. -Loading expression DSL file 'amazonaws.com-ebs-2019-11-02.json'. -Loading expression DSL file 'amazonaws.com-ec2-2016-11-15.json'. -Loading expression DSL file 'amazonaws.com-ec2-instance-connect-2018-04-02.json'. -Loading expression DSL file 'amazonaws.com-ecr-2015-09-21.json'. -Loading expression DSL file 'callback-example.json'. -Loading expression DSL file 'link-example.json'. -Loading expression DSL file 'petstore-expanded.json'. Loading expression DSL file 'petstore-v2.yaml'. -Loading expression DSL file 'petstore.json'. -Loading expression DSL file 'richard_mueller4-MatchinitAPI-1-swagger.json'. -Loading expression DSL file 'uspto.json'. </pre> </span> </div> @@ -200,7 +104,7 @@ Loading expression DSL file 'uspto.json'. <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. 9. 4. 오후 11:23:32</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 9. 17. 오후 11:23:39</p> </div> </div> </body> diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index b1a9aea69fde8a02bdc186e4776eb2dc23359735..86e8ab55914626200149e4892694790bf9eb5dfa 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -38,7 +38,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">11.952s</div> +<div class="counter">0.620s</div> <p>duration</p> </div> </td> @@ -85,7 +85,7 @@ <td>1</td> <td>0</td> <td>0</td> -<td>11.952s</td> +<td>0.620s</td> <td class="success">100%</td> </tr> </tbody> @@ -112,7 +112,7 @@ <td>1</td> <td>0</td> <td>0</td> -<td>11.952s</td> +<td>0.620s</td> <td class="success">100%</td> </tr> </tbody> @@ -126,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. 9. 4. 오후 11:23:32</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 9. 17. 오후 11:23:39</p> </div> </div> </body> diff --git a/build/reports/tests/test/packages/openapi.html b/build/reports/tests/test/packages/openapi.html index 2c9b0c30e681d25968166d41f3afc4b6ff40a1ef..956d2ad3e51709762f09da8a93e0f273c4b26e00 100644 --- a/build/reports/tests/test/packages/openapi.html +++ b/build/reports/tests/test/packages/openapi.html @@ -40,7 +40,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">11.952s</div> +<div class="counter">0.620s</div> <p>duration</p> </div> </td> @@ -83,7 +83,7 @@ <td>1</td> <td>0</td> <td>0</td> -<td>11.952s</td> +<td>0.620s</td> <td class="success">100%</td> </tr> </table> @@ -96,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. 9. 4. 오후 11:23:32</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 9. 17. 오후 11:23:39</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 60b5b8b9efec1f756e0ecfb13557b1872679701c..4203a4d758f98ed0fb137551c357a0cbdfa5a6b7 100644 --- a/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml +++ b/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml @@ -1,109 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> -<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="0" errors="0" timestamp="2021-09-04T14:23:20" hostname="DESKTOP-RAH69DT" time="11.952"> +<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="0" errors="0" timestamp="2021-09-17T14:23:38" hostname="DESKTOP-RAH69DT" time="0.62"> <properties/> - <testcase name="test()" classname="openapi.OpenAPIMain_test" time="11.952"/> - <system-out><![CDATA[101 + <testcase name="test()" classname="openapi.OpenAPIMain_test" time="0.62"/> + <system-out><![CDATA[5 Loading expression DSL file '1password.com-events-1.0.0.json'. -Loading expression DSL file '1password.local-connect-1.3.0.json'. Loading expression DSL file '6-dot-authentiqio.appspot.com-6.json'. Loading expression DSL file 'abstractapi.com-geolocation-1.0.0.json'. -Loading expression DSL file 'adyen.com-AccountService-6.json'. -Loading expression DSL file 'adyen.com-BalancePlatformService-1.json'. -Loading expression DSL file 'adyen.com-BinLookupService-50.json'. -Loading expression DSL file 'adyen.com-CheckoutService-67.json'. Loading expression DSL file 'adyen.com-CheckoutUtilityService-1.json'. -Loading expression DSL file 'adyen.com-FundService-6.json'. -Loading expression DSL file 'adyen.com-HopService-6.json'. -Loading expression DSL file 'adyen.com-NotificationConfigurationService-6.json'. -Loading expression DSL file 'adyen.com-PaymentService-64.json'. -Loading expression DSL file 'adyen.com-PayoutService-64.json'. -Loading expression DSL file 'amazonaws.com-accessanalyzer-2019-11-01.json'. -Loading expression DSL file 'amazonaws.com-acm-2015-12-08.json'. -Loading expression DSL file 'amazonaws.com-acm-pca-2017-08-22.json'. -Loading expression DSL file 'amazonaws.com-alexaforbusiness-2017-11-09.json'. -Loading expression DSL file 'amazonaws.com-amp-2020-08-01.json'. -Loading expression DSL file 'amazonaws.com-amplify-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-amplifybackend-2020-08-11.json'. -Loading expression DSL file 'amazonaws.com-apigateway-2015-07-09.json'. -Loading expression DSL file 'amazonaws.com-apigatewaymanagementapi-2018-11-29.json'. -Loading expression DSL file 'amazonaws.com-apigatewayv2-2018-11-29.json'. -Loading expression DSL file 'amazonaws.com-appconfig-2019-10-09.json'. -Loading expression DSL file 'amazonaws.com-appflow-2020-08-23.json'. -Loading expression DSL file 'amazonaws.com-appintegration-2020-07-29.json'. -Loading expression DSL file 'amazonaws.com-application-autoscaling-2016-02-06.json'. -Loading expression DSL file 'amazonaws.com-application-insights-2018-11-25.json'. -Loading expression DSL file 'amazonaws.com-applicationcostprofiler-2020-09-10.json'. -Loading expression DSL file 'amazonaws.com-appmesh-2019-01-25.json'. -Loading expression DSL file 'amazonaws.com-apprunner-2020-05-15.json'. -Loading expression DSL file 'amazonaws.com-appstream-2016-12-01.json'. -Loading expression DSL file 'amazonaws.com-appsync-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-athena-2017-05-18.json'. -Loading expression DSL file 'amazonaws.com-auditmanager-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-autoscaling-2011-01-01.json'. -Loading expression DSL file 'amazonaws.com-autoscaling-plans-2018-01-06.json'. -Loading expression DSL file 'amazonaws.com-AWSMigrationHub-2017-05-31.json'. -Loading expression DSL file 'amazonaws.com-backup-2018-11-15.json'. -Loading expression DSL file 'amazonaws.com-batch-2016-08-10.json'. -Loading expression DSL file 'amazonaws.com-braket-2019-09-01.json'. -Loading expression DSL file 'amazonaws.com-budgets-2016-10-20.json'. -Loading expression DSL file 'amazonaws.com-ce-2017-10-25.json'. -Loading expression DSL file 'amazonaws.com-chime-2018-05-01.json'. -Loading expression DSL file 'amazonaws.com-cloud9-2017-09-23.json'. -Loading expression DSL file 'amazonaws.com-cloudformation-2010-05-15.json'. -Loading expression DSL file 'amazonaws.com-cloudfront-2020-05-31.json'. -Loading expression DSL file 'amazonaws.com-cloudhsm-2014-05-30.json'. -Loading expression DSL file 'amazonaws.com-cloudhsmv2-2017-04-28.json'. -Loading expression DSL file 'amazonaws.com-cloudsearch-2013-01-01.json'. -Loading expression DSL file 'amazonaws.com-cloudsearchdomain-2013-01-01.json'. -Loading expression DSL file 'amazonaws.com-cloudtrail-2013-11-01.json'. -Loading expression DSL file 'amazonaws.com-codeartifcat-2018-09-22.json'. -Loading expression DSL file 'amazonaws.com-codebuild-2016-10-06.json'. -Loading expression DSL file 'amazonaws.com-codecommit-2015-04-13.json'. -Loading expression DSL file 'amazonaws.com-codedelpoy-2014-10-06.json'. -Loading expression DSL file 'amazonaws.com-codeguru-reviewer-2019-09-19.json'. -Loading expression DSL file 'amazonaws.com-codeguruprofiler-2019-07-18.json'. -Loading expression DSL file 'amazonaws.com-codepipeline-2015-07-09.json'. -Loading expression DSL file 'amazonaws.com-codestar-2017-04-19.json'. -Loading expression DSL file 'amazonaws.com-codestar-connections-2019-12-01.json'. -Loading expression DSL file 'amazonaws.com-codestar-notifications-2019-10-15.json'. -Loading expression DSL file 'amazonaws.com-cognito-identity-2014-06-30.json'. -Loading expression DSL file 'amazonaws.com-cognito-idp-2016-04-18.json'. -Loading expression DSL file 'amazonaws.com-cognito-sync-2014-06-30.json'. -Loading expression DSL file 'amazonaws.com-comprehend-2017-11-27.json'. -Loading expression DSL file 'amazonaws.com-comprehendmedical-2018-10-30.json'. -Loading expression DSL file 'amazonaws.com-compute-optimizer-2019-11-01.json'. -Loading expression DSL file 'amazonaws.com-config-2014-11-12.json'. -Loading expression DSL file 'amazonaws.com-connect-2017-08-08.json'. -Loading expression DSL file 'amazonaws.com-connect-contact-lens-2020-08-21.json'. -Loading expression DSL file 'amazonaws.com-connectparticipant-2018-09-07.json'. -Loading expression DSL file 'amazonaws.com-cur-2017-01-06.json'. -Loading expression DSL file 'amazonaws.com-customer-profiles-2020-08-15.json'. -Loading expression DSL file 'amazonaws.com-databrew-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-dataexchange-2017-07-25.json'. -Loading expression DSL file 'amazonaws.com-datapipeline-2012-10-29.json'. -Loading expression DSL file 'amazonaws.com-datasync-2018-11-09.json'. -Loading expression DSL file 'amazonaws.com-dax-2017-04-19.json'. -Loading expression DSL file 'amazonaws.com-detective-2018-10-26.json'. -Loading expression DSL file 'amazonaws.com-devicefarm-2015-06-23.json'. -Loading expression DSL file 'amazonaws.com-devops-guru-2020-12-01.json'. -Loading expression DSL file 'amazonaws.com-directconnect-2012-10-25.json'. -Loading expression DSL file 'amazonaws.com-discovery-2015-11-01.json'. -Loading expression DSL file 'amazonaws.com-dlm-2018-01-12.json'. -Loading expression DSL file 'amazonaws.com-dms-2016-01-01.json'. -Loading expression DSL file 'amazonaws.com-docdb-2014-10-31.json'. -Loading expression DSL file 'amazonaws.com-ds-2015-04-16.json'. -Loading expression DSL file 'amazonaws.com-dynamodb.json'. -Loading expression DSL file 'amazonaws.com-ebs-2019-11-02.json'. -Loading expression DSL file 'amazonaws.com-ec2-2016-11-15.json'. -Loading expression DSL file 'amazonaws.com-ec2-instance-connect-2018-04-02.json'. -Loading expression DSL file 'amazonaws.com-ecr-2015-09-21.json'. -Loading expression DSL file 'callback-example.json'. -Loading expression DSL file 'link-example.json'. -Loading expression DSL file 'petstore-expanded.json'. Loading expression DSL file 'petstore-v2.yaml'. -Loading expression DSL file 'petstore.json'. -Loading expression DSL file 'richard_mueller4-MatchinitAPI-1-swagger.json'. -Loading expression DSL file 'uspto.json'. ]]></system-out> <system-err><![CDATA[]]></system-err> </testsuite> diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin index 7733d79747166478cde470020ef23336413bf8fa..bceca37f94bc52ad4780ec096d8c86c45c973a5a 100644 --- a/build/test-results/test/binary/output.bin +++ b/build/test-results/test/binary/output.bin @@ -1,102 +1,6 @@ -101 +5 @Loading expression DSL file '1password.com-events-1.0.0.json'. -CLoading expression DSL file '1password.local-connect-1.3.0.json'. ELoading expression DSL file '6-dot-authentiqio.appspot.com-6.json'. GLoading expression DSL file 'abstractapi.com-geolocation-1.0.0.json'. -@Loading expression DSL file 'adyen.com-AccountService-6.json'. -HLoading expression DSL file 'adyen.com-BalancePlatformService-1.json'. -CLoading expression DSL file 'adyen.com-BinLookupService-50.json'. -BLoading expression DSL file 'adyen.com-CheckoutService-67.json'. HLoading expression DSL file 'adyen.com-CheckoutUtilityService-1.json'. -=Loading expression DSL file 'adyen.com-FundService-6.json'. -<Loading expression DSL file 'adyen.com-HopService-6.json'. -RLoading expression DSL file 'adyen.com-NotificationConfigurationService-6.json'. -ALoading expression DSL file 'adyen.com-PaymentService-64.json'. -@Loading expression DSL file 'adyen.com-PayoutService-64.json'. -MLoading expression DSL file 'amazonaws.com-accessanalyzer-2019-11-01.json'. -BLoading expression DSL file 'amazonaws.com-acm-2015-12-08.json'. -FLoading expression DSL file 'amazonaws.com-acm-pca-2017-08-22.json'. -OLoading expression DSL file 'amazonaws.com-alexaforbusiness-2017-11-09.json'. -BLoading expression DSL file 'amazonaws.com-amp-2020-08-01.json'. -FLoading expression DSL file 'amazonaws.com-amplify-2017-07-25.json'. -MLoading expression DSL file 'amazonaws.com-amplifybackend-2020-08-11.json'. -ILoading expression DSL file 'amazonaws.com-apigateway-2015-07-09.json'. -VLoading expression DSL file 'amazonaws.com-apigatewaymanagementapi-2018-11-29.json'. -KLoading expression DSL file 'amazonaws.com-apigatewayv2-2018-11-29.json'. -HLoading expression DSL file 'amazonaws.com-appconfig-2019-10-09.json'. -FLoading expression DSL file 'amazonaws.com-appflow-2020-08-23.json'. -MLoading expression DSL file 'amazonaws.com-appintegration-2020-07-29.json'. -VLoading expression DSL file 'amazonaws.com-application-autoscaling-2016-02-06.json'. -SLoading expression DSL file 'amazonaws.com-application-insights-2018-11-25.json'. -VLoading expression DSL file 'amazonaws.com-applicationcostprofiler-2020-09-10.json'. -FLoading expression DSL file 'amazonaws.com-appmesh-2019-01-25.json'. -HLoading expression DSL file 'amazonaws.com-apprunner-2020-05-15.json'. -HLoading expression DSL file 'amazonaws.com-appstream-2016-12-01.json'. -FLoading expression DSL file 'amazonaws.com-appsync-2017-07-25.json'. -ELoading expression DSL file 'amazonaws.com-athena-2017-05-18.json'. -KLoading expression DSL file 'amazonaws.com-auditmanager-2017-07-25.json'. -JLoading expression DSL file 'amazonaws.com-autoscaling-2011-01-01.json'. -PLoading expression DSL file 'amazonaws.com-autoscaling-plans-2018-01-06.json'. -NLoading expression DSL file 'amazonaws.com-AWSMigrationHub-2017-05-31.json'. -ELoading expression DSL file 'amazonaws.com-backup-2018-11-15.json'. -DLoading expression DSL file 'amazonaws.com-batch-2016-08-10.json'. -ELoading expression DSL file 'amazonaws.com-braket-2019-09-01.json'. -FLoading expression DSL file 'amazonaws.com-budgets-2016-10-20.json'. -ALoading expression DSL file 'amazonaws.com-ce-2017-10-25.json'. -DLoading expression DSL file 'amazonaws.com-chime-2018-05-01.json'. -ELoading expression DSL file 'amazonaws.com-cloud9-2017-09-23.json'. -MLoading expression DSL file 'amazonaws.com-cloudformation-2010-05-15.json'. -ILoading expression DSL file 'amazonaws.com-cloudfront-2020-05-31.json'. -GLoading expression DSL file 'amazonaws.com-cloudhsm-2014-05-30.json'. -ILoading expression DSL file 'amazonaws.com-cloudhsmv2-2017-04-28.json'. -JLoading expression DSL file 'amazonaws.com-cloudsearch-2013-01-01.json'. -PLoading expression DSL file 'amazonaws.com-cloudsearchdomain-2013-01-01.json'. -ILoading expression DSL file 'amazonaws.com-cloudtrail-2013-11-01.json'. -KLoading expression DSL file 'amazonaws.com-codeartifcat-2018-09-22.json'. -HLoading expression DSL file 'amazonaws.com-codebuild-2016-10-06.json'. -ILoading expression DSL file 'amazonaws.com-codecommit-2015-04-13.json'. -ILoading expression DSL file 'amazonaws.com-codedelpoy-2014-10-06.json'. -PLoading expression DSL file 'amazonaws.com-codeguru-reviewer-2019-09-19.json'. -OLoading expression DSL file 'amazonaws.com-codeguruprofiler-2019-07-18.json'. -KLoading expression DSL file 'amazonaws.com-codepipeline-2015-07-09.json'. -GLoading expression DSL file 'amazonaws.com-codestar-2017-04-19.json'. -SLoading expression DSL file 'amazonaws.com-codestar-connections-2019-12-01.json'. -ULoading expression DSL file 'amazonaws.com-codestar-notifications-2019-10-15.json'. -OLoading expression DSL file 'amazonaws.com-cognito-identity-2014-06-30.json'. -JLoading expression DSL file 'amazonaws.com-cognito-idp-2016-04-18.json'. -KLoading expression DSL file 'amazonaws.com-cognito-sync-2014-06-30.json'. -ILoading expression DSL file 'amazonaws.com-comprehend-2017-11-27.json'. -PLoading expression DSL file 'amazonaws.com-comprehendmedical-2018-10-30.json'. -PLoading expression DSL file 'amazonaws.com-compute-optimizer-2019-11-01.json'. -ELoading expression DSL file 'amazonaws.com-config-2014-11-12.json'. -FLoading expression DSL file 'amazonaws.com-connect-2017-08-08.json'. -SLoading expression DSL file 'amazonaws.com-connect-contact-lens-2020-08-21.json'. -QLoading expression DSL file 'amazonaws.com-connectparticipant-2018-09-07.json'. -BLoading expression DSL file 'amazonaws.com-cur-2017-01-06.json'. -PLoading expression DSL file 'amazonaws.com-customer-profiles-2020-08-15.json'. -GLoading expression DSL file 'amazonaws.com-databrew-2017-07-25.json'. -KLoading expression DSL file 'amazonaws.com-dataexchange-2017-07-25.json'. -KLoading expression DSL file 'amazonaws.com-datapipeline-2012-10-29.json'. -GLoading expression DSL file 'amazonaws.com-datasync-2018-11-09.json'. -BLoading expression DSL file 'amazonaws.com-dax-2017-04-19.json'. -HLoading expression DSL file 'amazonaws.com-detective-2018-10-26.json'. -ILoading expression DSL file 'amazonaws.com-devicefarm-2015-06-23.json'. -JLoading expression DSL file 'amazonaws.com-devops-guru-2020-12-01.json'. -LLoading expression DSL file 'amazonaws.com-directconnect-2012-10-25.json'. -HLoading expression DSL file 'amazonaws.com-discovery-2015-11-01.json'. -BLoading expression DSL file 'amazonaws.com-dlm-2018-01-12.json'. -BLoading expression DSL file 'amazonaws.com-dms-2016-01-01.json'. -DLoading expression DSL file 'amazonaws.com-docdb-2014-10-31.json'. -ALoading expression DSL file 'amazonaws.com-ds-2015-04-16.json'. -<Loading expression DSL file 'amazonaws.com-dynamodb.json'. -BLoading expression DSL file 'amazonaws.com-ebs-2019-11-02.json'. -BLoading expression DSL file 'amazonaws.com-ec2-2016-11-15.json'. -SLoading expression DSL file 'amazonaws.com-ec2-instance-connect-2018-04-02.json'. -BLoading expression DSL file 'amazonaws.com-ecr-2015-09-21.json'. -6Loading expression DSL file 'callback-example.json'. -2Loading expression DSL file 'link-example.json'. -7Loading expression DSL file 'petstore-expanded.json'. 1Loading expression DSL file 'petstore-v2.yaml'. -.Loading expression DSL file 'petstore.json'. -MLoading expression DSL file 'richard_mueller4-MatchinitAPI-1-swagger.json'. -+Loading expression DSL file 'uspto.json'. diff --git a/build/test-results/test/binary/output.bin.idx b/build/test-results/test/binary/output.bin.idx index 4f5d5e86f3c326acf82407bd4c63696bcd6da902..75802f971af7f4f8a18ea7f2f23e65d594486cbf 100644 Binary files a/build/test-results/test/binary/output.bin.idx and b/build/test-results/test/binary/output.bin.idx differ diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin index 478d4760456864b81712d1923848a1406ea31f19..ac68dcd16cad203c123299193c693b74ea4e1537 100644 Binary files a/build/test-results/test/binary/results.bin and b/build/test-results/test/binary/results.bin differ 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 9696828e0205362584f7b57fa45c7e47bed31a5b..27be982686283a8fd8ba61a72e95de617b3f9a51 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @astdecl ASTNode; 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 5b30111d8687a3eb044a0097b145af3526c32542..e5b762c97fb83504f26a3e9978d5409d6b5c1025 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast class * @declaredat ASTNode:221 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 5d3191d769d2598e12eb4a8a6b3470b83838710f..5c6d56119397b77b61a9b0ad03782695e14a2cfe 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** @apilevel internal * @ast class * @declaredat ASTState:34 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 f3e5604cedf4b3f07d3d57b2ff99efaeef80fc4f..33c0d6feafa4610e2c2199b1d28db0f668c16e75 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:109 * @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 7245edfbdfffebb0921cf84d58bd493d0fb3dd63..5a39a789afbdd1aac66039267f62198429ec175a 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:115 * @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 83bcbd0425ca9bc3fbbf5355db9f7b389bd7e7d6..4ac5ae8d10b4f810e97187da4c4fd39aa82b2736 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:116 * @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 7bf0478a2d9c0822378d791329471e446382abea..69e53dc8656c697ab4bbb34f1b9bb06644b8029d 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** Wrapper class for storing nullable attribute values. * @ast class * @declaredat ASTState:2 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 d7a817ffa8f19358b42e14852ed37d1640194c9a..adec7a03dc9bf14885cdfd3e8b740e7d104abdd9 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:136 * @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 1b795f1461465d80abd0ef3de1cd885afab6a125..a158a1667015e43dbec7f21b622fe34ddd7147e6 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,7 @@ 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; @@ -15,34 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:81 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:82 * @astdecl CallbackOb : ASTNode; * @production CallbackOb : {@link ASTNode}; */ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:504 - */ - public static Callback composeCallback (CallbackObject callbackObject, Map<Object, ASTNode> map){ - Callback callback = new Callback(); - - if( callbackObject.getNumExpression() != 0 ){ - Map<String, Path> paths = new HashMap<>(); - for( Expression e : callbackObject.getExpressions() ) - paths.put( e.getName(), PathItem.composePath( e.getPathItem() )); - callback.setCallbackPaths(paths); - } - - return callback; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:509 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:482 */ public static CallbackOb parseCallback(Callback callback, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { CallbackObject callbackObject = new CallbackObject(); @@ -140,6 +124,14 @@ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:58 */ public abstract CallbackOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + public abstract Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 f647a7a2875054445ab1953297c293a82c1e2557..4e287ced018f9d35a74b3ea2dd701b73554efe94 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:83 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:84 * @astdecl CallbackObject : CallbackOb ::= Expression* Extension*; * @production CallbackObject : {@link CallbackOb} ::= <span class="component">{@link Expression}*</span> <span class="component">{@link Extension}*</span>; @@ -380,6 +380,44 @@ public class CallbackObject extends CallbackOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(callbackOb); + _parameters.add(map); + if (composeCallback_CallbackOb_Map_Object__ASTNode__visited == null) composeCallback_CallbackOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeCallback_CallbackOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute CallbackOb.composeCallback(CallbackOb,Map_Object__ASTNode_)."); + } + composeCallback_CallbackOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Callback callback = new Callback(); + CallbackObject c = (CallbackObject) callbackOb; + + if( c.getNumExpression() != 0 ){ + Map<String, Path> paths = new HashMap<>(); + PathItemOb p; + for( Expression e : c.getExpressions() ) { + p = e.getPathItemOb(); + paths.put(e.getName(), p.composePath(p, map)); + } + callback.setCallbackPaths(paths); + } + + return callback; + } + finally { + composeCallback_CallbackOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 857ee09f76969b971736c7dfd80d390474dc10e5..fbe5a083118c538fae2be9f4466fd0992529c716 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:83 * @astdecl CallbackReference : CallbackOb ::= <Ref:String> <CallbackOb:CallbackOb>; * @production CallbackReference : {@link CallbackOb} ::= <span class="component"><Ref:String></span> <span class="component"><CallbackOb:CallbackOb></span>; @@ -197,6 +197,37 @@ public class CallbackReference extends CallbackOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(callbackOb); + _parameters.add(map); + if (composeCallback_CallbackOb_Map_Object__ASTNode__visited == null) composeCallback_CallbackOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeCallback_CallbackOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute CallbackOb.composeCallback(CallbackOb,Map_Object__ASTNode_)."); + } + composeCallback_CallbackOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Callback callback = new Callback(); + CallbackReference c = (CallbackReference) callbackOb; + + if( !c.getRef().isEmpty() ) + callback.setRef(c.getRef()); + + return callback; + } + finally { + composeCallback_CallbackOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 94eac9edd255a794779fb4276869948d21be4bb7..7035a5e139264fb632caa36794ea5dee956e9af7 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:31 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 cf339e64ac5590a0aaa090e51289630f9a3be4c9..adbc890b2e41664fbaaa1e283d93869b827e1f1d 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:135 * @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 34be42e3e520e2acaacea32d8d72fcadb981c701..7dc5938f86894e054f17d62f94b4d3c3536ae01a 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:22 @@ -26,27 +26,39 @@ import org.openapi4j.core.exception.DecodeException; public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:173 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:173 */ public static Components composeComponents (ComponentsObject componentsObject, Map<Object, ASTNode> map){ Components components = new Components(); if( componentsObject.getNumSchemaTuple() != 0 ){ Map<String, org.openapi4j.parser.model.v3.Schema> schemaMap = new HashMap<>(); - for( SchemaTuple t : componentsObject.getSchemaTuples() ) - schemaMap.put(t.getKey(), SchemaOb.composeSchema(t.getSchemaOb(), map)); + SchemaOb s; + for( SchemaTuple t : componentsObject.getSchemaTuples() ){ + s = t.getSchemaOb(); + if( s instanceof SchemaObject ) + schemaMap.put(t.getKey(), ((SchemaObject)s).composeSchema(s, map)); + else + schemaMap.put(t.getKey(), ((SchemaReference)s).composeSchema(s, map)); + } components.setSchemas(schemaMap); } if( componentsObject.getNumResponseTuple() != 0 ){ Map<String, Response> responseMap = new HashMap<>(); - for( ResponseTuple t : componentsObject.getResponseTuples() ) - responseMap.put(t.getKey(), ResponseOb.composeResponse(t.getResponseOb(), map)); + ResponseOb r; + for( ResponseTuple t : componentsObject.getResponseTuples() ) { + r = t.getResponseOb(); + responseMap.put(t.getKey(), r.composeResponse(r, map)); + } components.setResponses(responseMap); } if( componentsObject.getNumParameterTuple() != 0 ){ Map<String, Parameter> parameterMap = new HashMap<>(); - for( ParameterTuple t : componentsObject.getParameterTuples() ) - parameterMap.put(t.getKey(), ParameterOb.composeParameter(t.getParameterOb(), map)); + ParameterOb p; + for( ParameterTuple t : componentsObject.getParameterTuples() ) { + p = t.getParameterOb(); + parameterMap.put(t.getKey(), p.composeParameter(p, map)); + } components.setParameters(parameterMap); } if( componentsObject.getNumExampleTuple() != 0 ){ @@ -57,33 +69,43 @@ public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable { } if( componentsObject.getNumRequestBodyTuple() != 0 ){ Map<String, RequestBody> requestBodyMap = new HashMap<>(); - for( RequestBodyTuple t : componentsObject.getRequestBodyTuples() ) - requestBodyMap.put(t.getKey(), RequestBodyOb.composeRequestBody(t.getRequestBodyOb(), map)); - components.setRequestBodies(requestBodyMap); + RequestBodyOb r; + for( RequestBodyTuple t : componentsObject.getRequestBodyTuples() ) { + r = t.getRequestBodyOb(); + requestBodyMap.put(t.getKey(), r.composeRequestBody(r, map)); + } components.setRequestBodies(requestBodyMap); } if( componentsObject.getNumHeaderTuple() != 0 ){ Map<String, Header> headerMap = new HashMap<>(); - for( HeaderTuple t : componentsObject.getHeaderTuples() ) - headerMap.put(t.getKey(), HeaderOb.composeHeader(t.getHeaderOb(), map)); - components.setHeaders(headerMap); + HeaderOb h; + for( HeaderTuple t : componentsObject.getHeaderTuples() ) { + h = t.getHeaderOb(); + headerMap.put(t.getKey(), h.composeHeader(h, map)); + } components.setHeaders(headerMap); } if( componentsObject.getNumSecuritySchemeTuple() != 0 ){ Map<String, SecurityScheme> securitySchemeMap = new HashMap<>(); - for( SecuritySchemeTuple t : componentsObject.getSecuritySchemeTuples() ) - securitySchemeMap.put(t.getKey(), SecuritySchemeOb.composeSecurityScheme(t.getSecuritySchemeOb(), map)); - components.setSecuritySchemes(securitySchemeMap); + SecuritySchemeOb s; + for( SecuritySchemeTuple t : componentsObject.getSecuritySchemeTuples() ) { + s = t.getSecuritySchemeOb(); + securitySchemeMap.put(t.getKey(), s.composeSecurityScheme(s, map)); + } components.setSecuritySchemes(securitySchemeMap); } if( componentsObject.getNumLinkTuple() != 0 ){ Map<String, Link> linkMap = new HashMap<>(); - for( LinkTuple t : componentsObject.getLinkTuples() ) - linkMap.put(t.getKey(), LinkOb.composeLink(t.getLinkOb(), map)); - components.setLinks(linkMap); + LinkOb l; + for( LinkTuple t : componentsObject.getLinkTuples() ) { + l = t.getLinkOb(); + linkMap.put(t.getKey(), l.composeLink(l, map)); + } components.setLinks(linkMap); } if( componentsObject.getNumCallbackTuple() != 0 ){ Map<String, Callback> callbackMap = new HashMap<>(); - for( CallbackTuple t : componentsObject.getCallbackTuples() ) - callbackMap.put(t.getKey(), CallbackOb.composeCallback(t.getCallbackOb(), map)); - components.setCallbacks(callbackMap); + CallbackOb c; + for( CallbackTuple t : componentsObject.getCallbackTuples() ) { + c = t.getCallbackOb(); + callbackMap.put(t.getKey(), c.composeCallback(c, map)); + } components.setCallbacks(callbackMap); } if( componentsObject.getNumExtension() != 0 ){ Map<String, Object> extensions = new HashMap<>(); @@ -102,67 +124,40 @@ public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable { ComponentsObject componentsObject = new ComponentsObject(); if( components.getSchemas() != null ){ - for( String key : components.getSchemas().keySet() ){ - SchemaTuple schemaTuple = new SchemaTuple(); - schemaTuple.setKey(key); - schemaTuple.setSchemaOb(SchemaOb.parseSchema(components.getSchema(key), context, map)); - } + for( String key : components.getSchemas().keySet() ) + componentsObject.addSchemaTuple(new SchemaTuple(key, SchemaOb.parseSchema(components.getSchema(key), context, map))); } if( components.getResponses() != null ){ - for( String key : components.getResponses().keySet() ){ - ResponseTuple responseTuple = new ResponseTuple(); - responseTuple.setKey(key); - responseTuple.setResponseOb(ResponseOb.parseResponse(components.getResponse(key), context, map)); - } + for( String key : components.getResponses().keySet() ) + componentsObject.addResponseTuple(new ResponseTuple(key, ResponseOb.parseResponse(components.getResponse(key), context, map))); } if( components.getParameters() != null ){ - for( String key : components.getParameters().keySet() ){ - ParameterTuple parameterTuple = new ParameterTuple(); - parameterTuple.setKey(key); - parameterTuple.setParameterOb(ParameterOb.parseParameter(components.getParameter(key), context, map)); - } + for( String key : components.getParameters().keySet() ) + componentsObject.addParameterTuple(new ParameterTuple(key, ParameterOb.parseParameter(components.getParameter(key), context, map))); } if( components.getExamples() != null ){ - for( String key : components.getExamples().keySet() ){ - ExampleTuple exampleTuple = new ExampleTuple(); - exampleTuple.setKey(key); - exampleTuple.setExampleObject(ExampleObject.parseExample(components.getExample(key), context, map)); - } + for( String key : components.getExamples().keySet() ) + componentsObject.addExampleTuple(new ExampleTuple(key, ExampleObject.parseExample(components.getExample(key), context, map))); } if( components.getRequestBodies() != null ){ - for( String key : components.getRequestBodies().keySet() ){ - RequestBodyTuple requestBodyTuple = new RequestBodyTuple(); - requestBodyTuple.setKey(key); - requestBodyTuple.setRequestBodyOb(RequestBodyOb.parseRequestBody(components.getRequestBody(key), context, map)); - } + for( String key : components.getRequestBodies().keySet() ) + componentsObject.addRequestBodyTuple(new RequestBodyTuple(key, RequestBodyOb.parseRequestBody(components.getRequestBody(key), context, map))); } if( components.getHeaders() != null ){ - for( String key : components.getHeaders().keySet() ){ - HeaderTuple headerTuple = new HeaderTuple(); - headerTuple.setKey(key); - headerTuple.setHeaderOb(HeaderOb.parseHeader(components.getHeader(key), context, map)); - } + for( String key : components.getHeaders().keySet() ) + componentsObject.addHeaderTuple(new HeaderTuple(key, HeaderOb.parseHeader(components.getHeader(key), context, map))); } if( components.getSecuritySchemes() != null ){ - for( String key : components.getSecuritySchemes().keySet() ){ - SecuritySchemeTuple securitySchemeTuple = new SecuritySchemeTuple(); - securitySchemeTuple.setKey(key); - securitySchemeTuple.setSecuritySchemeOb(SecuritySchemeOb.parseSecurityScheme(components.getSecurityScheme(key), context, map)); - } + for( String key : components.getSecuritySchemes().keySet() ) + componentsObject.addSecuritySchemeTuple(new SecuritySchemeTuple(key, SecuritySchemeOb.parseSecurityScheme(components.getSecurityScheme(key), context, map))); } if( components.getLinks() != null ){ - for( String key : components.getLinks().keySet() ){ - LinkTuple linkTuple = new LinkTuple(); - linkTuple.setKey(key); - linkTuple.setLinkOb(LinkOb.parseLink(components.getLink(key), context, map)); - } + for( String key : components.getLinks().keySet() ) + componentsObject.addLinkTuple(new LinkTuple(key, LinkOb.parseLink(components.getLink(key), context, map))); } if( components.getCallbacks() != null ){ - for( String key : components.getCallbacks().keySet() ){ - CallbackTuple callbackTuple = new CallbackTuple(); - callbackTuple.setKey(key); - callbackTuple.setCallbackOb(CallbackOb.parseCallback(components.getCallback(key), context, map)); - } + for( String key : components.getCallbacks().keySet() ) + componentsObject.addCallbackTuple(new CallbackTuple(key, CallbackOb.parseCallback(components.getCallback(key), context, map))); } if( components.getExtensions() != null ){ for( String key : components.getExtensions().keySet() ) 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 b7dc8f8fa09135269077caa25593bdf0928ac0d5..510b65891fcf856fe8d9bad42e3c417960d1ff26 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:8 @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class ContactObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:87 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:87 */ public static Contact composeContact (ContactObject contactObject, Map<Object, ASTNode> map){ Contact contact = new Contact(); 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 79e5d80e98de73851a61f3b03a8e283702010732..16f49cb079da89a2cf9c904ca525b9c5d0a87970 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:62 * @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 af7e0f42e2b4ff5d24015b15067b59f269ae64c4..bf3baaf8c325968b02c12517391a1b9c590c40f1 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:44 - * @astdecl Delete : ASTNode ::= OperationObject; - * @production Delete : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Delete extends ASTNode<ASTNode> implements Cloneable { +public class Delete extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Delete extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Delete(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Delete clone() throws CloneNotSupportedException { Delete node = (Delete) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Delete copy() { try { @@ -104,7 +103,7 @@ public class Delete 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Delete fullCopy() { @@ -115,7 +114,7 @@ public class Delete 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:74 + * @declaredat ASTNode:73 */ public Delete treeCopyNoTransform() { Delete tree = (Delete) copy(); @@ -136,7 +135,7 @@ public class Delete 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:94 + * @declaredat ASTNode:93 */ public Delete treeCopy() { Delete tree = (Delete) copy(); @@ -152,36 +151,30 @@ public class Delete extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Delete) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 1d18dc7820f9357c82d1b1ef3bb7ea07e2e571e5..a4fdd64dcd6fa494bf68b788a5a4ade47744468e 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:119 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:120 * @astdecl DiscriminatorObject : ASTNode ::= <PropertyName:String> MappingTuple*; * @production DiscriminatorObject : {@link ASTNode} ::= <span class="component"><PropertyName:String></span> <span class="component">{@link MappingTuple}*</span>; @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:717 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:840 */ public static Discriminator composeDiscriminator (DiscriminatorObject discriminatorObject, Map<Object, ASTNode> map) { Discriminator discriminator = new Discriminator(); @@ -44,7 +44,7 @@ public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:891 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:752 */ 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 9db9df1476b702176541d5d2ecc95a92a43b76cb..65618cf6050c5793d9c7111e8ccca858bea9cd0c 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:73 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:74 * @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,18 +26,20 @@ import org.openapi4j.core.exception.DecodeException; public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:450 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:493 */ public static EncodingProperty composeEncodingProperty (EncodingObject encodingObject, Map<Object, ASTNode> map){ EncodingProperty encodingProperty = new EncodingProperty(); + HeaderOb h; if( !encodingObject.getContentType().isEmpty() ) encodingProperty.setContentType( encodingObject.getContentType() ); if( encodingObject.getNumHeaderTuple() != 0 ){ Map<String, Header> headers = new HashMap<>(); - for( HeaderTuple t : encodingObject.getHeaderTuples() ) - headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject())); - encodingProperty.setHeaders(headers); + for( HeaderTuple t : encodingObject.getHeaderTuples() ) { + h = t.getHeaderOb(); + headers.put(t.getKey(), h.composeHeader(h, map)); + } encodingProperty.setHeaders(headers); } if( !encodingObject.getStyle().isEmpty() ) encodingProperty.setStyle(encodingObject.getStyle()); @@ -54,7 +56,7 @@ public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:454 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:427 */ 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 637372192be4cc73bced59f7501f24c99223b83d..8404db7eff735a2de92aefe58e639fa69280585c 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:71 * @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 6638e03f1ec50ec6333e885e706dc7172f7875c9..2f2aead6c403452f0e06dd99c97a9517dae60e99 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:19 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 f07007b612e9ececbe49807526543616b9e516d6..e6d5bba9532613359943729610f324a036d54c38 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:110 * @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 4edb2d1c614ef99fa95ff4cfd088e969193e2067..bfa74789c2292227fcb883a313d92520efdb3db0 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:88 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:89 * @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 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:517 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:585 */ public static Example composeExample (ExampleObject exampleObject, Map<Object, ASTNode> map){ Example example = new Example(); @@ -50,7 +50,7 @@ public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:532 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:505 */ 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 541c579d3d1467eda78bfa06522777c6460ee1c0..268a8669559d8a9bf7a1d9453c85de9bb148d579 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:26 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 116984d96a2f718cb88d778249166cb7c2171eaa..f82ffed88240247b700a9b02f9d91e98c898704b 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:85 * @astdecl Expression : ASTNode ::= <Name:String> PathItemOb; * @production Expression : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link PathItemOb}</span>; 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 472d55a24e419a69d6888b98546e749013e929b3..3562f3fa87076389afd30433d50b79a9bb4275b3 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:85 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:86 * @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 9fb1a74889206c5274e556c1deeca8c5ee13b625..67056a7f178c0d39e28ad19ec031eb741298b837 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:55 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:56 * @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 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:342 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:365 */ public static ExternalDocs composeExternalDocs (ExternalDocObject externalDocObject, Map<Object, ASTNode> map){ ExternalDocs externalDocs = new ExternalDocs(); @@ -46,7 +46,7 @@ public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:339 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:312 */ 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 28b7bc253bc7cfe5983ef1bd83e916ab635d7766..8331ff41cdad9cba8eb55c71c7540e9804fd7fd2 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:41 - * @astdecl Get : ASTNode ::= OperationObject; - * @production Get : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Get extends ASTNode<ASTNode> implements Cloneable { +public class Get extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Get extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Get(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Get clone() throws CloneNotSupportedException { Get node = (Get) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Get copy() { try { @@ -104,7 +103,7 @@ public class Get 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Get fullCopy() { @@ -115,7 +114,7 @@ public class Get 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:74 + * @declaredat ASTNode:73 */ public Get treeCopyNoTransform() { Get tree = (Get) copy(); @@ -136,7 +135,7 @@ public class Get 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:94 + * @declaredat ASTNode:93 */ public Get treeCopy() { Get tree = (Get) copy(); @@ -152,36 +151,30 @@ public class Get extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Get) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @apilevel internal */ public ASTNode rewriteTo() { 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 9c01e39dbf2a7da14bc451c236b7576b22c4a6ef..4f9aafb4dcea6c1401fa8f2c9aa30533ad3c3de0 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:46 - * @astdecl Head : ASTNode ::= OperationObject; - * @production Head : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Head extends ASTNode<ASTNode> implements Cloneable { +public class Head extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Head extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Head(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Head clone() throws CloneNotSupportedException { Head node = (Head) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Head copy() { try { @@ -104,7 +103,7 @@ public class Head 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Head fullCopy() { @@ -115,7 +114,7 @@ public class Head 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:74 + * @declaredat ASTNode:73 */ public Head treeCopyNoTransform() { Head tree = (Head) copy(); @@ -136,7 +135,7 @@ public class Head 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:94 + * @declaredat ASTNode:93 */ public Head treeCopy() { Head tree = (Head) copy(); @@ -152,36 +151,30 @@ public class Head extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Head) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 874f7a4fa6eeb964318fde3fe203298790411c34..31756e12dca0515497df80e94323e0faba24e7a5 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,7 @@ 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; @@ -15,56 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:97 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:98 * @astdecl HeaderOb : ASTNode; * @production HeaderOb : {@link ASTNode}; */ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:562 - */ - public static Header composeHeader (HeaderObject headerObject, Map<Object, ASTNode> map){ - Header header = new Header(); - - if( !headerObject.getRef().isEmpty() ) - header.setRef(headerObject.getRef()); - if( headerObject.getRequired() != null ) - header.setRequired(headerObject.getRequired()); - if( !headerObject.getDescription().isEmpty() ) - header.setDescription( headerObject.getDescription() ); - if( !headerObject.getStyle().isEmpty() ) - header.setStyle(headerObject.getStyle()); - if( headerObject.getExplode() != null ) - header.setExplode(headerObject.getExplode()); - if( headerObject.getAllowReserved() != null ) - header.setAllowReserved(headerObject.getAllowReserved()); - if( headerObject.getExample() != null ) - header.setExample(headerObject.getExample()); - if( headerObject.getNumExampleTuple() != 0 ){ - Map<String, Example> examples = new HashMap<>(); - for( ExampleTuple t : headerObject.getExampleTuples() ) - examples.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); - header.setExample(examples); - } - if( headerObject.getNumContentTuple() != 0 ){ - Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : headerObject.getContentTuples() ) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); - header.setContentMediaTypes(contents); - } - if( headerObject.hasSchemaObject() ) - header.setSchema(SchemaObject.composeSchema(headerObject.getSchemaObject())); - - return header; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:588 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:561 */ public static HeaderOb parseHeader(Header header, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { HeaderObject headerObject = new HeaderObject(); @@ -182,6 +144,14 @@ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:58 */ public abstract HeaderOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + public abstract Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 cb262f8640b51a8634ed56ab66ffb2749cf4d166..72f22bdcb7acd114a07ecb102abdd166959329f0 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:99 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:100 * @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>; @@ -713,6 +713,61 @@ public class HeaderObject extends HeaderOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(headerOb); + _parameters.add(map); + if (composeHeader_HeaderOb_Map_Object__ASTNode__visited == null) composeHeader_HeaderOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeHeader_HeaderOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute HeaderOb.composeHeader(HeaderOb,Map_Object__ASTNode_)."); + } + composeHeader_HeaderOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Header header = new Header(); + HeaderObject h = (HeaderObject) headerOb; + + if( h.getRequired() != null ) + header.setRequired(h.getRequired()); + if( !h.getDescription().isEmpty() ) + header.setDescription( h.getDescription() ); + if( !h.getStyle().isEmpty() ) + header.setStyle(h.getStyle()); + if( h.getExplode() != null ) + header.setExplode(h.getExplode()); + if( h.getAllowReserved() != null ) + header.setAllowReserved(h.getAllowReserved()); + if( h.getExample() != null ) + header.setExample(h.getExample()); + if( h.getNumExampleTuple() != 0 ){ + Map<String, Example> examples = new HashMap<>(); + for( ExampleTuple t : h.getExampleTuples() ) + examples.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); + header.setExample(examples); + } + if( h.getNumContentTuple() != 0 ){ + Map<String, MediaType> contents = new HashMap<>(); + for( ContentTuple t : h.getContentTuples() ) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); + header.setContentMediaTypes(contents); + } + if( h.hasSchemaOb() ) + header.setSchema(h.getSchemaOb().composeSchema(h.getSchemaOb(), map)); + + return header; + } + finally { + composeHeader_HeaderOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 998cb765cd455bda607527667d4272bee38f2a3f..930c373a05dac758edbefbad00b56cbac397ddda 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:99 * @astdecl HeaderReference : HeaderOb ::= <Ref:String> <HeaderOb:HeaderOb>; * @production HeaderReference : {@link HeaderOb} ::= <span class="component"><Ref:String></span> <span class="component"><HeaderOb:HeaderOb></span>; @@ -197,6 +197,37 @@ public class HeaderReference extends HeaderOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(headerOb); + _parameters.add(map); + if (composeHeader_HeaderOb_Map_Object__ASTNode__visited == null) composeHeader_HeaderOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeHeader_HeaderOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute HeaderOb.composeHeader(HeaderOb,Map_Object__ASTNode_)."); + } + composeHeader_HeaderOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Header header = new Header(); + HeaderReference h = new HeaderReference(); + + if( !h.getRef().isEmpty() ) + header.setRef(h.getRef()); + + return header; + } + finally { + composeHeader_HeaderOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 853e8013aee76dcc526f233224e0bf40ef09f7f6..f42e29120900e5c14e20d24c142fe0e8b309e41f 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:28 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 b75810f8a1bc4b8887190a680032e0bfc8e92296..b477bbae9b52559357ef52efb127be6b3a5b3147 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:133 * @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/InfoObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java index 3ae1c0d13c55ebe761fbfd7fa2ba99109b70f17c..981174b22438e4d77cd3fe683fbef23c4c46ca7a 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:5 @@ -26,23 +26,23 @@ import org.openapi4j.core.exception.DecodeException; public class InfoObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:61 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:61 */ public static Info composeInfo (InfoObject infoObject, Map<Object, ASTNode> map){ Info info = new Info(); if( !infoObject.getTitle().isEmpty() ) - info.setTitle(infoObject.getTitle()); + info.setTitle(infoObject.getTitle()); if( !infoObject.getVersion().isEmpty() ) - info.setVersion(infoObject.getVersion()); + info.setVersion(infoObject.getVersion()); if( !infoObject.getDescription().isEmpty() ) info.setDescription(infoObject.getDescription()); if( !infoObject.getTermsOfService().isEmpty() ) info.setTermsOfService(infoObject.getTermsOfService()); if( infoObject.hasContactObject() ) - info.setContact(ContactObject.composeContact(infoObject.getContactObject())); + info.setContact(ContactObject.composeContact(infoObject.getContactObject(), map)); if( infoObject.hasLicenseObject() ) - info.setLicense(LicenseObject.composeLicense(infoObject.getLicenseObject())); + info.setLicense(LicenseObject.composeLicense(infoObject.getLicenseObject(), map)); if( infoObject.getNumExtension() != 0 ){ Map<String, Object> extension = new HashMap<>(); for( Extension e : infoObject.getExtensions() ) 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 9f8db58d551a5c34304482c22b9305b32e747456..87a3c379e2d0807f83465cdc1b283425e972c53d 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:111 * @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 a0b94ece68c775488556cb7636439a28c0968146..8c97e780341394c293a60c14f96318ff72dc59e6 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @astdecl JastAddList : ASTNode; 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 556db9032fbd1b397d7c1cf5d0828904782040ef..000bc13e1d756881b660760c5ff587415a0000ad 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:11 @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class LicenseObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:107 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:107 */ public static License composeLicense (LicenseObject licenseObject, Map<Object, ASTNode> map){ License license = new License(); 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 cd44ab261d965f87b27944711811fc659c7fd939..b76ca69f65bb82b1eb951f9fe4d71510b1b30a58 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,7 @@ 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; @@ -15,45 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:91 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:92 * @astdecl LinkOb : ASTNode; * @production LinkOb : {@link ASTNode}; */ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:538 - */ - public static Link composeLink (LinkObject linkObject, Map<Object, ASTNode> map){ - Link link = new Link(); - - - if( !linkObject.getRef().isEmpty() ) - link.setRef(linkObject.getRef()); - if( !linkObject.getOperationRef().isEmpty() ) - link.setOperationRef( linkObject.getOperationRef() ); - if( !linkObject.getOperationID().isEmpty() ) - link.setOperationId( linkObject.getOperationID() ); - if( linkObject.getNumLinkParameterTuple() != 0 ){ - Map<String, String> parameters = new HashMap<>(); - for( LinkParameterTuple t : linkObject.getLinkParameterTuples() ) - parameters.put( t.getLinkParameterKey(), t.getLinkParameterValue() ); - link.setParameters(parameters); - } - if( !linkObject.getDescription().isEmpty() ) - link.setDescription( linkObject.getDescription() ); - if( linkObject.hasServerObject() ) - link.setServer( ServerObject.composeServer(linkObject.getServerObject()) ); - - return link; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:557 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:530 */ public static LinkOb parseLink(Link link, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { LinkObject linkObject = new LinkObject(); @@ -159,6 +132,14 @@ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:58 */ public abstract LinkOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + public abstract Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 f6b0a1fa8328610916e3cb739374c99a5599e340..098bfc36e9e07aafe88ad95daacd9e346ca2057b 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:93 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:94 * @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>; @@ -608,6 +608,49 @@ public class LinkObject extends LinkOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(linkOb); + _parameters.add(map); + if (composeLink_LinkOb_Map_Object__ASTNode__visited == null) composeLink_LinkOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeLink_LinkOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute LinkOb.composeLink(LinkOb,Map_Object__ASTNode_)."); + } + composeLink_LinkOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Link link = new Link(); + LinkObject l = (LinkObject) linkOb; + + if( !l.getOperationRef().isEmpty() ) + link.setOperationRef( l.getOperationRef() ); + if( !l.getOperationID().isEmpty() ) + link.setOperationId( l.getOperationID() ); + if( l.getNumLinkParameterTuple() != 0 ){ + Map<String, String> parameters = new HashMap<>(); + for( LinkParameterTuple t : l.getLinkParameterTuples() ) + parameters.put( t.getLinkParameterKey(), t.getLinkParameterValue() ); + link.setParameters(parameters); + } + if( !l.getDescription().isEmpty() ) + link.setDescription( l.getDescription() ); + if( l.hasServerObject() ) + link.setServer( ServerObject.composeServer(l.getServerObject(), map) ); + + return link; + } + finally { + composeLink_LinkOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 c5ae2f3ef1dd64e7280dac84028136897cca4279..cb7ca6835b9c0dcb834490a857697140425fdca3 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:95 * @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 3873f68e216ec7acf4e6aeee4a80b3346044e51c..dce5b148708d762701f4e2f7e76b86f4512787a2 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:93 * @astdecl LinkReference : LinkOb ::= <Ref:String> <LinkOb:LinkOb>; * @production LinkReference : {@link LinkOb} ::= <span class="component"><Ref:String></span> <span class="component"><LinkOb:LinkOb></span>; @@ -197,6 +197,37 @@ public class LinkReference extends LinkOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(linkOb); + _parameters.add(map); + if (composeLink_LinkOb_Map_Object__ASTNode__visited == null) composeLink_LinkOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeLink_LinkOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute LinkOb.composeLink(LinkOb,Map_Object__ASTNode_)."); + } + composeLink_LinkOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Link link = new Link(); + LinkReference l = (LinkReference) linkOb; + + if( !l.getRef().isEmpty() ) + link.setRef(l.getRef()); + + return link; + } + finally { + composeLink_LinkOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 26e00bf71242c7f09da2c4767b7fd9173c452464..129378c8486cc20738486ab374d6a624cf18498a 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:30 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 ec92ee2ec34464378c11a0199a382048d138deb2..8a0c2d31e4906a25296f475b411e5bb4f3b323d0 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:121 * @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 b540eecc650b04eb6003cf9a5fad162b4028fbd2..b1d926441ad3a74dbd073a031c0d481f3f3acaaa 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:69 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:70 * @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,25 +26,27 @@ import org.openapi4j.core.exception.DecodeException; public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:427 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:468 */ public static MediaType composeMediaType (MediaTypeObject mediaTypeObject, Map<Object, ASTNode> map){ MediaType mediaType = new MediaType(); + SchemaOb s; - if( mediaTypeObject.getSchemaObject() != null ) - mediaType.setSchema(SchemaObject.composeSchema(mediaTypeObject.getSchemaObject())); + if( mediaTypeObject.getSchemaOb() != null ){ + s = mediaTypeObject.getSchemaOb(); + mediaType.setSchema(s.composeSchema(s, map));} if( mediaTypeObject.getExample() != null ) mediaType.setExample(mediaTypeObject.getExample()); if( mediaTypeObject.getNumExampleTuple() != 0 ){ Map<String, Example> exampleMap = new HashMap<>(); for( ExampleTuple t : mediaTypeObject.getExampleTuples() ) - exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); + exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); mediaType.setExamples(exampleMap); } if( mediaTypeObject.getNumEncodingTuple() != 0 ){ Map<String, EncodingProperty> encodingMap = new HashMap<>(); for( EncodingTuple t : mediaTypeObject.getEncodingTuples() ) - encodingMap.put(t.getKey(), EncodingObject.composeEncodingProperty(t.getEncodingObject())); + encodingMap.put(t.getKey(), EncodingObject.composeEncodingProperty(t.getEncodingObject(), map)); mediaType.setEncodings(encodingMap); } @@ -52,7 +54,7 @@ public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:430 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:403 */ 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 9604b485c02d9b5e0bee95311a4699a38e306d46..7df53b01f42db2734c560c5dc1bf2dd49188bd03 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:112 * @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 5d1c557737f49104173c7597cd0fca6aec086796..0c7cfd0720b9d9a59758951e9f7e6d8563319d52 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:138 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:139 * @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 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:798 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:927 */ public static OAuthFlow composeOAuthFlow (OAuthFlowObject oAuthFlowObject, Map<Object, ASTNode> map){ OAuthFlow oAuthFlow = new OAuthFlow(); @@ -47,7 +47,7 @@ public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:991 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:852 */ 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 f229e734b45c841d23230ad6e04ce247efa7280a..15faf4ab2a0366d858d90324d5802b9543ad2c2b 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:131 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:132 * @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,30 +26,25 @@ import org.openapi4j.core.exception.DecodeException; public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:778 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:912 */ public static OAuthFlows composeOAuthFlows (OAuthFlowsObject oAuthFlowsObject, Map<Object, ASTNode> map){ OAuthFlows oAuthFlows = new OAuthFlows(); if( oAuthFlowsObject.hasImplicit() ) - oAuthFlows.setImplicit( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getImplicit().getOAuthFlowObject()) ); - if( oAuthFlowsObject.hasPassword() ){ - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getAuthorizationUrl() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getConfiguration() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getTokenUrl() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getRefreshUrl() ); - oAuthFlows.setPassword( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getPassword().getOAuthFlowObject()) ); - } + oAuthFlows.setImplicit( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getImplicit().getOAuthFlowObject(), map) ); + if( oAuthFlowsObject.hasPassword() ) + oAuthFlows.setPassword( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getPassword().getOAuthFlowObject(), map) ); if( oAuthFlowsObject.hasClientCredentials() ) - oAuthFlows.setClientCredentials( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getClientCredentials().getOAuthFlowObject()) ); + oAuthFlows.setClientCredentials( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getClientCredentials().getOAuthFlowObject(), map) ); if( oAuthFlowsObject.hasAuthorizationCode() ) - oAuthFlows.setAuthorizationCode( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getAuthorizationCode().getOAuthFlowObject()) ); + oAuthFlows.setAuthorizationCode( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getAuthorizationCode().getOAuthFlowObject(), map) ); return oAuthFlows; } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:959 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:820 */ 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 dec3b02987171616182f6b9878933a39f4f663cd..c16177ec2b37f554db27e7a8a32dd1175f4129bf 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:117 * @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 6cb8aa2ee6fbb7fe2ab56380579dade8b9b95ae2..317efd5bb04ca71bf4e25ec7bef06d84fa335549 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:2 @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:13 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:13 */ public static OpenApi3 composeOpenAPI (OpenAPIObject openapi){ OpenApi3 api3 = new OpenApi3(); @@ -45,7 +45,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(), PathItemOb.composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -117,6 +117,17 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { map.put(api, openapi); return openapi; } + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:25 + */ + public String generateRequests() throws Exception { + String baseUrl = this.getServerObject(0).getUrl(); + + for( PathsObject p : this.getPathsObjects() ) + p.sendRandomRequests(baseUrl); + return ""; + } /** * @declaredat ASTNode:1 */ 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 new file mode 100644 index 0000000000000000000000000000000000000000..bcf7c57ff42c3277c5cfa51060c9a0e3bc9c7d81 --- /dev/null +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java @@ -0,0 +1,109 @@ +/* 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(); + /** @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 91d4aa02ac0d1dba6b068d789055a720869329ec..6a9eebd876e51e8a9b7ac9d6aa2b9a6f3b459b1e 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,7 @@ 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; @@ -15,23 +16,21 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:51 - * @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>; + * @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>; */ -public class OperationObject extends ASTNode<ASTNode> implements Cloneable { +public class OperationObject extends OperationOb implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:281 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:312 */ public static Operation composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); - if( operationObject.getNumTag() != 0 ){ for( de.tudresden.inf.st.openapi.ast.Tag t : operationObject.getTags() ) operation.addTag(t.getTag()); @@ -41,43 +40,36 @@ public class OperationObject extends ASTNode<ASTNode> implements Cloneable { if( !operationObject.getDescription().isEmpty() ) operation.setDescription( operationObject.getDescription() ); if( operationObject.hasExternalDocObject() ) - operation.setExternalDocs( ExternalDocObject.composeExternalDocs(operationObject.getExternalDocObject()) ); + operation.setExternalDocs( ExternalDocObject.composeExternalDocs(operationObject.getExternalDocObject(), map) ); if( !operationObject.getOperationID().isEmpty() ) operation.setOperationId( operationObject.getOperationID() ); - if( operationObject.getNumParameterObject() != 0 ){ - for( ParameterObject p : operationObject.getParameterObjects() ) - operation.addParameter( ParameterObject.composeParameter(p) ); + if( operationObject.getNumParameterOb() != 0 ){ + for( ParameterOb p : operationObject.getParameterObs() ) + operation.addParameter(p.composeParameter(p, map)); } - if( operationObject.hasRequestBodyObject() ) - operation.setRequestBody( RequestBodyObject.composeRequestBody(operationObject.getRequestBodyObject())); + if( operationObject.hasRequestBodyOb() ) + operation.setRequestBody(operationObject.getRequestBodyOb().composeRequestBody(operationObject.getRequestBodyOb(), map)); if( operationObject.getNumResponseTuple() != 0){ Map<String, Response> responseMap = new HashMap<>(); for( ResponseTuple t : operationObject.getResponseTuples() ) - responseMap.put(t.getKey(), ResponseObject.composeResponse(t.getResponseObject())); + responseMap.put(t.getKey(), t.getResponseOb().composeResponse(t.getResponseOb(), map)); operation.setResponses(responseMap); } if( operationObject.getNumCallbackTuple() != 0 ){ Map<String, Callback> callbacks = new HashMap<>(); - for( CallbackTuple t : operationObject.getCallbackTuples() ) { - if( !t.getCallbackObject().getRef().isEmpty() ){ - Callback callback = new Callback(); - callback.setRef(t.getCallbackObject().getRef()); - callbacks.put(t.getKey(), callback); - } - else - callbacks.put(t.getKey(), CallbackObject.composeCallback(t.getCallbackObject())); + for( CallbackTuple t : operationObject.getCallbackTuples() ) + callbacks.put(t.getKey(), t.getCallbackOb().composeCallback(t.getCallbackOb(), map)); operation.setCallbacks(callbacks); } - } if( operationObject.getDeprecatedBoolean() != null ) operation.setDeprecated(operationObject.getDeprecatedBoolean()); if( operationObject.getSecurityRequirementObjects() != null ){ for( SecurityRequirementObject s : operationObject.getSecurityRequirementObjects() ) - operation.addSecurityRequirement( SecurityRequirementObject.composeSecurityRequirement(s) ); + operation.addSecurityRequirement( SecurityRequirementObject.composeSecurityRequirement(s, map) ); } if( operationObject.getNumServerObject() != 0 ){ for( ServerObject s : operationObject.getServerObjects() ) - operation.addServer( ServerObject.composeServer(s) ); + operation.addServer( ServerObject.composeServer(s, map) ); } if( operationObject.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); @@ -90,7 +82,7 @@ public class OperationObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:288 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:261 */ public static OperationObject parseOperation(Operation operation, OAIContext context, Map<Object, ASTNode> map) throws DecodeException{ OperationObject operationObject = new OperationObject(); @@ -142,6 +134,148 @@ public class OperationObject extends ASTNode<ASTNode> implements Cloneable { map.put(operation, operationObject); return operationObject; } + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:53 + */ + public void sendRandomGET(String targetUrl) throws Exception { + Random rand = new Random(); + + for( ParameterOb o : this.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + if( p.getIn().equals("path") ){ + String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1); + + if( s.getType().equals("string") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, s.getEnumObjs())); + else if( s.getType().equals("integer") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + )); + } + else if( p.getIn().equals("query") ){ + + if( s.getType().equals("string") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, s.getEnumObjs()); + else if( s.getType().equals("integer") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + else if( s.getType().equals("array") ){ + if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string") ){ + for( EnumObj e : s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs() ) + targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl; + } + else if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer") ){ + for( int i = 0 ; i < 5 ; i++ ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + } + + } + } + } + targetUrl = targetUrl.replaceFirst("&", "?"); + System.out.println(targetUrl); + + URL url = new URL(targetUrl); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + + con.setRequestMethod("GET"); // optional default is GET + int responseCode = con.getResponseCode(); + + // print result + System.out.println("HTTP status code (GET) : " + responseCode); + } + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:106 + */ + public void sendRandomPOST(String targetUrl) throws Exception { + Random rand = new Random(); + + for( ParameterOb o : this.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + if( p.getIn().equals("path") ){ + String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1); + + if( s.getType().equals("string") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, s.getEnumObjs())); + else if( s.getType().equals("integer") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + )); + } + else if( p.getIn().equals("query") ){ + + if( s.getType().equals("string") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, s.getEnumObjs()); + else if( s.getType().equals("integer") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + else if( s.getType().equals("array") ){ + if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string") ){ + for( EnumObj e : s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs() ) + targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl; + } + else if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer") ){ + for( int i = 0 ; i < 5 ; i++ ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + } + + } + } + } + targetUrl = targetUrl.replaceFirst("&", "?"); + System.out.println(targetUrl); + + URL url = new URL(targetUrl); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + + con.setRequestMethod("POST"); // HTTP POST + con.setDoOutput(true); // POST + + int responseCode = con.getResponseCode(); + + // print result + System.out.println("HTTP status code (POST) : " + responseCode); + } + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:161 + */ + public String generateRandomString(Random rand, JastAddList<EnumObj> objs) { + if( objs.getNumChild() != 0 ) + return objs.getChild(rand.nextInt(objs.getNumChild())).getEnumOb().toString(); + + + return rand + .ints(97, 123) + .limit(10) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + } + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:173 + */ + public String generateRandomInt(Random rand, int minimum, int maximum){ + if( minimum > -1 && maximum > 0 ) + return String.valueOf(rand.nextInt(minimum+maximum)-minimum); + else if( minimum > -1 ) + return String.valueOf(rand.nextInt()+minimum); + else if( maximum > 0 ) + return String.valueOf(rand.nextInt(maximum)); + return String.valueOf(rand.nextInt()); + } /** * @declaredat ASTNode:1 */ 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 3f2981bde0e9faffa6a1da13a2af444cce47efe9..c98cb09988ec0770841cd57fd128495e08c92f65 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @astdecl Opt : ASTNode; 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 58ab4a34a0fbe8144a0009a4519ac4e7b56148ec..980b67a56e94cfc143a25bb77787f15a2768634e 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:45 - * @astdecl Options : ASTNode ::= OperationObject; - * @production Options : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Options extends ASTNode<ASTNode> implements Cloneable { +public class Options extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Options extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Options(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Options clone() throws CloneNotSupportedException { Options node = (Options) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Options copy() { try { @@ -104,7 +103,7 @@ public class Options 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Options fullCopy() { @@ -115,7 +114,7 @@ public class Options 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:74 + * @declaredat ASTNode:73 */ public Options treeCopyNoTransform() { Options tree = (Options) copy(); @@ -136,7 +135,7 @@ public class Options 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:94 + * @declaredat ASTNode:93 */ public Options treeCopy() { Options tree = (Options) copy(); @@ -152,36 +151,30 @@ public class Options extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Options) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 64483b639ef755364b17173f9537e87379064509..27ef3d85035d6b0acce0703f2fa5c1b62aadd829 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,7 @@ 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; @@ -15,70 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:58 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:59 * @astdecl ParameterOb : ASTNode; * @production ParameterOb : {@link ASTNode}; */ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:359 - */ - public static Parameter composeParameter (ParameterOb parameterObject, Map<Object, ASTNode> map){ - Parameter parameter = new Parameter(); - - if( !parameterObject.getRef().isEmpty() ) - parameter.setRef(parameterObject.getRef()); - if( !parameterObject.getName().isEmpty() ) - parameter.setName(parameterObject.getName()); - if( !parameterObject.getIn().isEmpty() ) - parameter.setIn(parameterObject.getIn()); - if( parameterObject.getRequired() != null ) - parameter.setRequired(parameterObject.getRequired()); - if( !parameterObject.getDescription().isEmpty() ) - parameter.setDescription(parameterObject.getDescription()); - if( parameterObject.getDeprecatedBoolean() != null ) - parameter.setDeprecated(parameterObject.getDeprecatedBoolean()); - if( !parameterObject.getStyle().isEmpty() ) - parameter.setStyle(parameterObject.getStyle()); - if( parameterObject.getAllowReserved() != null ) - parameter.setAllowReserved(parameterObject.getAllowReserved()); - if( parameterObject.getExplode() != null ) - parameter.setExplode(parameterObject.getExplode()); - if( parameterObject.getSchemaObject() != null ) - parameter.setSchema(SchemaObject.composeSchema(parameterObject.getSchemaObject())); - if( parameterObject.getExample() != null ) - parameter.setExample(parameterObject.getExample()); - if( parameterObject.getNumExampleTuple() != 0 ){ - Map<String, Example> exampleMap = new HashMap<>(); - for( ExampleTuple t : parameterObject.getExampleTuples() ) - exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); - parameter.setExamples(exampleMap); - } - if( parameterObject.getNumContentTuple() != 0 ){ - Map<String, MediaType> contentMap = new HashMap<>(); - for( ContentTuple t : parameterObject.getContentTuples() ) - contentMap.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); - parameter.setContentMediaTypes(contentMap); - } - if( parameterObject.getRequired() != null ) - parameter.setRequired(parameterObject.getRequired()); - if( parameterObject.getNumExtension() != 0 ){ - Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : parameterObject.getExtensions() ) - extensionMap.put(e.getKey(), e.getValue()); - parameter.setExtensions(extensionMap); - } - - return parameter; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:356 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:329 */ public static ParameterOb parseParameter(Parameter parameter, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ParameterObject parameterObject = new ParameterObject(); @@ -200,6 +148,22 @@ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable * @declaredat ASTNode:58 */ public abstract ParameterOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + public abstract Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map); + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:3 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:3") + public abstract ParameterObject parameterObject(); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 0a879f382f7ecdf2a5575f556b10bf71cce7a824..6a13631e91928bcf2acca8aa0369c82a3b5b7281 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:60 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:61 * @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>; @@ -755,6 +755,93 @@ public class ParameterObject extends ParameterOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(parameterOb); + _parameters.add(map); + if (composeParameter_ParameterOb_Map_Object__ASTNode__visited == null) composeParameter_ParameterOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeParameter_ParameterOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute ParameterOb.composeParameter(ParameterOb,Map_Object__ASTNode_)."); + } + composeParameter_ParameterOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Parameter parameter = new Parameter(); + ParameterObject p = (ParameterObject) parameterOb; + + if( !p.getName().isEmpty() ) + parameter.setName(p.getName()); + if( !p.getIn().isEmpty() ) + parameter.setIn(p.getIn()); + if( p.getRequired() != null ) + parameter.setRequired(p.getRequired()); + if( !p.getDescription().isEmpty() ) + parameter.setDescription(p.getDescription()); + if( p.getDeprecatedBoolean() != null ) + parameter.setDeprecated(p.getDeprecatedBoolean()); + if( !p.getStyle().isEmpty() ) + parameter.setStyle(p.getStyle()); + if( p.getAllowReserved() != null ) + parameter.setAllowReserved(p.getAllowReserved()); + if( p.getExplode() != null ) + parameter.setExplode(p.getExplode()); + if( p.getSchemaOb() != null ) + parameter.setSchema(p.getSchemaOb().composeSchema(p.getSchemaOb(), map)); + if( p.getExample() != null ) + parameter.setExample(p.getExample()); + if( p.getNumExampleTuple() != 0 ){ + Map<String, Example> exampleMap = new HashMap<>(); + for( ExampleTuple t : p.getExampleTuples() ) + exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); + parameter.setExamples(exampleMap); + } + if( p.getNumContentTuple() != 0 ){ + Map<String, MediaType> contentMap = new HashMap<>(); + for( ContentTuple t : p.getContentTuples() ) + contentMap.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); + parameter.setContentMediaTypes(contentMap); + } + if( p.getRequired() != null ) + parameter.setRequired(p.getRequired()); + if( p.getNumExtension() != 0 ){ + Map<String, Object> extensionMap = new HashMap<>(); + for( Extension e : p.getExtensions() ) + extensionMap.put(e.getKey(), e.getValue()); + parameter.setExtensions(extensionMap); + } + + return parameter; + } + finally { + composeParameter_ParameterOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } +/** @apilevel internal */ +protected boolean parameterObject_visited = false; + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:4 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:3") + public ParameterObject parameterObject() { + if (parameterObject_visited) { + throw new RuntimeException("Circular definition of attribute ParameterOb.parameterObject()."); + } + parameterObject_visited = true; + ParameterObject parameterObject_value = this; + parameterObject_visited = false; + return parameterObject_value; + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 a890925a2302c3ba236a3eb1c904ac1ced6e2ef5..c276dbe9cbf0c3e319d874b77160f0212088a349 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:60 * @astdecl ParameterReference : ParameterOb ::= <Ref:String> <ParameterOb:ParameterOb>; * @production ParameterReference : {@link ParameterOb} ::= <span class="component"><Ref:String></span> <span class="component"><ParameterOb:ParameterOb></span>; @@ -197,6 +197,61 @@ public class ParameterReference extends ParameterOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(parameterOb); + _parameters.add(map); + if (composeParameter_ParameterOb_Map_Object__ASTNode__visited == null) composeParameter_ParameterOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeParameter_ParameterOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute ParameterOb.composeParameter(ParameterOb,Map_Object__ASTNode_)."); + } + composeParameter_ParameterOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Parameter parameter = new Parameter(); + ParameterReference p = (ParameterReference) parameterOb; + + if( !p.getRef().isEmpty() ) + parameter.setRef(p.getRef()); + + return parameter; + } + finally { + composeParameter_ParameterOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } +/** @apilevel internal */ +protected boolean parameterObject_visited = false; + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:3 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.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(); + } + finally { + parameterObject_visited = false; + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 c32ea78938417285d48c01c760670269dec6f7fe..c24e9955032816691bbb3c2cf1bc3f762ef72b6d 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:25 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 ebdd0ccc9f434e8cd07258072124c0124f4b72dc..d8f1b0c4c3b73e93a0e716c332fe2238438ed88c 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:134 * @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 798289b82c11c2d4a3d46ab3d5416276b3cdeb32..2116c0ede6f4ffde29cae1338b1ef90f4d2e0fb6 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:47 - * @astdecl Patch : ASTNode ::= OperationObject; - * @production Patch : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Patch extends ASTNode<ASTNode> implements Cloneable { +public class Patch extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Patch extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Patch(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Patch clone() throws CloneNotSupportedException { Patch node = (Patch) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Patch copy() { try { @@ -104,7 +103,7 @@ public class Patch 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Patch fullCopy() { @@ -115,7 +114,7 @@ public class Patch 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:74 + * @declaredat ASTNode:73 */ public Patch treeCopyNoTransform() { Patch tree = (Patch) copy(); @@ -136,7 +135,7 @@ public class Patch 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:94 + * @declaredat ASTNode:93 */ public Patch treeCopy() { Patch tree = (Patch) copy(); @@ -152,36 +151,30 @@ public class Patch extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Patch) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 index 60827432d119b9658a9e1ae68d9b8b7c89ab3b59..58aa00b2f6141f4071b701c8fccd5cae2d2b2ee9 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java @@ -8,6 +8,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:38 @@ -24,55 +24,9 @@ import org.openapi4j.core.exception.DecodeException; */ public abstract class PathItemOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:240 - */ - public static Path composePath (PathItemOb pathItem, Map<Object, ASTNode> map){ - Path path = new Path(); - - - - if( !pathItem.getRef().isEmpty() ) - path.setRef(pathItem.getRef()); - if( !pathItem.getSummary().isEmpty()) - path.setSummary(pathItem.getSummary()); - if( !pathItem.getDescription().isEmpty() ) - path.setDescription(pathItem.getDescription()); - if( pathItem.hasGet() ) - path.setGet( OperationObject.composeOperation(pathItem.getGet().getOperationObject()) ); - if( pathItem.hasPut() ) - path.setPut( OperationObject.composeOperation(pathItem.getPut().getOperationObject()) ); - if( pathItem.hasPost() ) - path.setPost( OperationObject.composeOperation(pathItem.getPost().getOperationObject()) ); - if( pathItem.hasDelete() ) - path.setDelete( OperationObject.composeOperation(pathItem.getDelete().getOperationObject()) ); - if( pathItem.hasOptions() ) - path.setOptions( OperationObject.composeOperation(pathItem.getOptions().getOperationObject()) ); - if( pathItem.hasHead() ) - path.setHead( OperationObject.composeOperation(pathItem.getHead().getOperationObject()) ); - if( pathItem.hasPatch() ) - path.setPatch( OperationObject.composeOperation(pathItem.getPatch().getOperationObject()) ); - if( pathItem.getNumServerObject() != 0 ){ - for( ServerObject s : pathItem.getServerObjects() ) - path.addServer( ServerObject.composeServer(s) ); - } - if( pathItem.getNumParameterObject() != 0 ){ - for( ParameterObject p : pathItem.getParameterObjects() ) - path.addParameter( ParameterObject.composeParameter(p) ); - } - if( pathItem.getNumExtension() != 0 ){ - Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : pathItem.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:217 + * @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(); @@ -218,6 +172,22 @@ public abstract class PathItemOb extends ASTNode<ASTNode> implements Cloneable { * @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 ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:21 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:21") + public abstract PathItemObject pathItemObject(); /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 0538f4544473a727067edddc65ca37096949b6ef..fe538e296ad48f82941b143540b01e1916e9300f 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:40 @@ -958,6 +958,85 @@ 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 ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:22 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.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 index 303aacecd2d0e9f75c5c2cf850198f15580f5c59..48008a75aeee18aa8ab3915c3248fedbafd3fbac 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java @@ -8,6 +8,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:39 @@ -197,6 +197,61 @@ public class PathItemReference extends PathItemOb implements Cloneable { 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 ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:21 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.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(); 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 df3f78af45cf3b8be367d5a7bfc30cd918559a8e..276f7a0fc483f5108afed5f9126d2d92504206af 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:35 @@ -24,6 +24,29 @@ import org.openapi4j.core.exception.DecodeException; */ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect RandomRequestGenerator + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:33 + */ + public void sendRandomRequests(String baseUrl) throws Exception { + if( this.getPathItemOb().pathItemObject().hasGet() ){ + IntStream.range(0, 1).forEach( i -> { + try { + this.getPathItemOb().pathItemObject().getGet().getOperationObject().sendRandomGET(baseUrl+this.getRef()); + } catch (Exception e) { + e.printStackTrace(); + } + }); + } + if( this.getPathItemOb().pathItemObject().hasPost() ){ + IntStream.range(0, 1).forEach( i -> { + try { + this.getPathItemOb().pathItemObject().getPost().getOperationObject().sendRandomPOST(baseUrl+this.getRef()); + } catch (Exception e) { + e.printStackTrace(); + } + });} + } /** * @declaredat ASTNode:1 */ 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 6e23a5cf05a3147114d663e3c9cc4bb358d90598..fe284e01e0da2d490080baafc45ac9d30f10bbdf 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:43 - * @astdecl Post : ASTNode ::= OperationObject; - * @production Post : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Post extends ASTNode<ASTNode> implements Cloneable { +public class Post extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Post extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Post(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Post clone() throws CloneNotSupportedException { Post node = (Post) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Post copy() { try { @@ -104,7 +103,7 @@ public class Post 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Post fullCopy() { @@ -115,7 +114,7 @@ public class Post 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:74 + * @declaredat ASTNode:73 */ public Post treeCopyNoTransform() { Post tree = (Post) copy(); @@ -136,7 +135,7 @@ public class Post 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:94 + * @declaredat ASTNode:93 */ public Post treeCopy() { Post tree = (Post) copy(); @@ -152,36 +151,30 @@ public class Post extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Post) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @apilevel internal */ public ASTNode rewriteTo() { 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 48a6e43855b1752bc13b2f63e83c1cc49d42a178..3cb1b6bb3eda46997eb2e332a0cc8e4affc4d241 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:113 * @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 8142057fb7db4723f4304fca9754922f74ced5d3..9b0e0803bdbf91a6ff9139d976e880ee266fce00 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:42 - * @astdecl Put : ASTNode ::= OperationObject; - * @production Put : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Put extends ASTNode<ASTNode> implements Cloneable { +public class Put extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Put extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Put(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Put clone() throws CloneNotSupportedException { Put node = (Put) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Put copy() { try { @@ -104,7 +103,7 @@ public class Put 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Put fullCopy() { @@ -115,7 +114,7 @@ public class Put 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:74 + * @declaredat ASTNode:73 */ public Put treeCopyNoTransform() { Put tree = (Put) copy(); @@ -136,7 +135,7 @@ public class Put 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:94 + * @declaredat ASTNode:93 */ public Put treeCopy() { Put tree = (Put) copy(); @@ -152,36 +151,30 @@ public class Put extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Put) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 752bf6117e827d0e0cbd82cae205d189a5ebba08..3e5820eda6b76e8513fc44c223e1e817f327394d 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,7 @@ 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; @@ -15,40 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:64 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:65 * @astdecl RequestBodyOb : ASTNode; * @production RequestBodyOb : {@link ASTNode}; */ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:408 - */ - public static org.openapi4j.parser.model.v3.RequestBody composeRequestBody (RequestBodyOb requestBodyObject, Map<Object, ASTNode> map){ - org.openapi4j.parser.model.v3.RequestBody requestBody = new org.openapi4j.parser.model.v3.RequestBody(); - - if( requestBodyObject.getNumContentTuple() != 0 ){ - Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : requestBodyObject.getContentTuples()) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); - requestBody.setContentMediaTypes(contents); - } - if( !requestBodyObject.getDescription().isEmpty() ) - requestBody.setDescription(requestBodyObject.getDescription()); - if( requestBodyObject.getRequired() != null ) - requestBody.setRequired(requestBodyObject.getRequired()); - if( !requestBodyObject.getRef().isEmpty() ) - requestBody.setRef(requestBodyObject.getRef()); - - return requestBody; - } /** * @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:376 */ public static RequestBodyOb parseRequestBody(org.openapi4j.parser.model.v3.RequestBody requestBody, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { RequestBodyObject requestBodyObject = new RequestBodyObject(); @@ -150,6 +128,14 @@ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneabl * @declaredat ASTNode:58 */ public abstract RequestBodyOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + public abstract RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 c3370f2411f6eb1ef9656326c965b6db777c3e52..52fa5978ac11c7e2304b24ee574a801b650aa3b8 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:66 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:67 * @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>; @@ -422,6 +422,45 @@ public class RequestBodyObject extends RequestBodyOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(requestBodyOb); + _parameters.add(map); + if (composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited == null) composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute RequestBodyOb.composeRequestBody(RequestBodyOb,Map_Object__ASTNode_)."); + } + composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.add(_parameters); + try { + RequestBody requestBody = new RequestBody(); + RequestBodyObject r = (RequestBodyObject) requestBodyOb; + + if( r.getNumContentTuple() != 0 ){ + Map<String, MediaType> contents = new HashMap<>(); + for( ContentTuple t : r.getContentTuples()) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); + requestBody.setContentMediaTypes(contents); + } + if( !r.getDescription().isEmpty() ) + requestBody.setDescription(r.getDescription()); + if( r.getRequired() != null ) + requestBody.setRequired(r.getRequired()); + + return requestBody; + } + finally { + composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 cfc634300f877bdc8525aa265b9673901f0c06eb..8e030b1b18e8cccf32d6cb2990bf32a027867c65 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:66 * @astdecl RequestBodyReference : RequestBodyOb ::= <Ref:String> <RequestBodyOb:RequestBodyOb>; * @production RequestBodyReference : {@link RequestBodyOb} ::= <span class="component"><Ref:String></span> <span class="component"><RequestBodyOb:RequestBodyOb></span>; @@ -197,6 +197,37 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(requestBodyOb); + _parameters.add(map); + if (composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited == null) composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute RequestBodyOb.composeRequestBody(RequestBodyOb,Map_Object__ASTNode_)."); + } + composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.add(_parameters); + try { + RequestBody requestBody = new RequestBody(); + RequestBodyReference r = (RequestBodyReference) requestBodyOb; + + if( !r.getRef().isEmpty() ) + requestBody.setRef(r.getRef()); + + return requestBody; + } + finally { + composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 26a42b8574d65f114c67ff83b85faa0e970fba67..de0d31a798cada1c0abd47f8ea178e0e945c1902 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:27 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 32ca219c1c698ce17f196c69d93ad21586ce697c..5d6f2c1a04f8c2826f86220781e6d8394a72c562 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:114 * @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 f2b7ee50fb3a46022d2e5ca878ea6eef1f947f2d..b76b3a6daf5649e010cd1f450a8042c66b9e65e2 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,7 @@ 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; @@ -15,50 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:76 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:77 * @astdecl ResponseOb : ASTNode; * @production ResponseOb : {@link ASTNode}; */ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:475 - */ - public static Response composeResponse (ResponseObject responseObject, Map<Object, ASTNode> map){ - Response response = new Response(); - - if( !responseObject.getRef().isEmpty() ) - response.setRef(responseObject.getRef()); - if( !responseObject.getDescription().isEmpty() ) - response.setDescription(responseObject.getDescription()); - if( responseObject.getNumHeaderTuple() != 0 ){ - Map<String, Header> headers = new HashMap<>(); - for( HeaderTuple t : responseObject.getHeaderTuples() ) - headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject())); - response.setHeaders(headers); - } - if( responseObject.getNumContentTuple() != 0 ){ - Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : responseObject.getContentTuples() ) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); - response.setContentMediaTypes(contents); - } - if( responseObject.getNumLinkTuple() != 0 ){ - Map<String, Link> links = new HashMap<>(); - for( LinkTuple t : responseObject.getLinkTuples() ) - links.put(t.getKey(), LinkObject.composeLink(t.getLinkObject())); - response.setLinks(links); - } - - return response; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:476 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:449 */ public static ResponseOb parseResponse(Response response, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ResponseObject responseObject = new ResponseObject(); @@ -166,6 +134,14 @@ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:58 */ public abstract ResponseOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + public abstract Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 c6bbc62b5210ec5b0f69819433a0fc4df4b94861..85cf50d73897b1ff62b888422a78470a1110c072 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:78 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:79 * @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>; @@ -625,6 +625,55 @@ public class ResponseObject extends ResponseOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(responseOb); + _parameters.add(map); + if (composeResponse_ResponseOb_Map_Object__ASTNode__visited == null) composeResponse_ResponseOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeResponse_ResponseOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute ResponseOb.composeResponse(ResponseOb,Map_Object__ASTNode_)."); + } + composeResponse_ResponseOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Response response = new Response(); + ResponseObject r = (ResponseObject) responseOb; + + if( !r.getDescription().isEmpty() ) + response.setDescription(r.getDescription()); + if( r.getNumHeaderTuple() != 0 ){ + Map<String, Header> headers = new HashMap<>(); + for( HeaderTuple t : r.getHeaderTuples() ) + headers.put(t.getKey(), t.getHeaderOb().composeHeader(t.getHeaderOb(), map)); + response.setHeaders(headers); + } + if( r.getNumContentTuple() != 0 ){ + Map<String, MediaType> contents = new HashMap<>(); + for( ContentTuple t : r.getContentTuples() ) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); + response.setContentMediaTypes(contents); + } + if( r.getNumLinkTuple() != 0 ){ + Map<String, Link> links = new HashMap<>(); + for( LinkTuple t : r.getLinkTuples() ) + links.put(t.getKey(), t.getLinkOb().composeLink(t.getLinkOb(), map)); + response.setLinks(links); + } + + return response; + } + finally { + composeResponse_ResponseOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 8596d1c71871a14fdb127ee28821c22342572d77..ce89ba14e605c4f522d88a3adcf7b88b26143880 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:78 * @astdecl ResponseReference : ResponseOb ::= <Ref:String> <ResponseOb:ResponseOb>; * @production ResponseReference : {@link ResponseOb} ::= <span class="component"><Ref:String></span> <span class="component"><ResponseOb:ResponseOb></span>; @@ -197,6 +197,37 @@ public class ResponseReference extends ResponseOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(responseOb); + _parameters.add(map); + if (composeResponse_ResponseOb_Map_Object__ASTNode__visited == null) composeResponse_ResponseOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeResponse_ResponseOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute ResponseOb.composeResponse(ResponseOb,Map_Object__ASTNode_)."); + } + composeResponse_ResponseOb_Map_Object__ASTNode__visited.add(_parameters); + try { + Response response = new Response(); + ResponseReference r = (ResponseReference) responseOb; + + if( !r.getRef().isEmpty() ) + response.setRef(r.getRef()); + + return response; + } + finally { + composeResponse_ResponseOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 2fa0f990704fd486fe720a389ff29ce917befe5e..0cb216ff8fa7c71ecfb0f919f8f41d0edef1a671 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:24 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 41389456bd750657ffdce2ff9eec9a42b44cf3ee..030f2995be634d75ca5e6ad3020eade93dd2ee1d 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,7 @@ 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; @@ -15,28 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:105 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:106 * @astdecl SchemaOb : ASTNode; * @production SchemaOb : {@link ASTNode}; */ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:616 - */ - public static org.openapi4j.parser.model.v3.Schema composeSchema (SchemaOb schemaOb, Map<Object, ASTNode> map){ - org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema(); - - - return schema; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:653 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:626 */ public static SchemaOb parseSchema (org.openapi4j.parser.model.v3.Schema schema, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { SchemaObject schemaObject = new SchemaObject(); @@ -48,7 +38,7 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { return s; } else { if( schema.getAdditionalProperties() != null ) - schemaObject.setAdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map)); + schemaObject.setAdditionalProperties(new AdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map))); if( schema.getAdditionalProperties() == null && schema.getAdditionalPropertiesAllowed() != null ) schemaObject.setAdditionalPropertiesAllowed(schema.getAdditionalPropertiesAllowed()); if( schema.getDefault() != null ) @@ -160,118 +150,6 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { } } - if( schema.getAdditionalProperties() != null ) - schemaObject.setAdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map)); - if( schema.getAdditionalProperties() == null && schema.getAdditionalPropertiesAllowed() != null ) - schemaObject.setAdditionalPropertiesAllowed(schema.getAdditionalPropertiesAllowed()); - if( schema.getDefault() != null ) - schemaObject.setDefaultValue(schema.getDefault()); - if( schema.getDescription() != null ) - schemaObject.setDescription(schema.getDescription()); - if( schema.getDeprecated() != null ) - schemaObject.setDeprecatedBoolean(schema.getDeprecated()); - if( schema.getDiscriminator() != null ) - schemaObject.setDiscriminatorObject(DiscriminatorObject.parseDiscriminator(schema.getDiscriminator(), map)); - if( schema.getEnums() != null ){ - for( Object o : schema.getEnums() ){ - EnumObj enumObj = new EnumObj(); - enumObj.setEnumOb(o); - schemaObject.addEnumObj(enumObj); - } - } - if( schema.getExample() != null ) - schemaObject.setExample(schema.getExample()); - if( schema.getExclusiveMaximum() != null ) - schemaObject.setExclusiveMaximum(schema.getExclusiveMaximum()); - if( schema.getExclusiveMinimum() != null ) - schemaObject.setExclusiveMinimum(schema.getExclusiveMinimum()); - if( schema.getExternalDocs() != null ) - schemaObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(schema.getExternalDocs(), map)); - if( schema.getFormat() != null ) - schemaObject.setFormat(schema.getFormat()); - if( schema.getItemsSchema() != null ){ - ItemsSchema itemsSchema = new ItemsSchema(); - itemsSchema.setSchemaOb(parseSchema(schema.getItemsSchema(), context, map)); - schemaObject.setItemsSchema(itemsSchema); - } - if( schema.getMaximum() != null ) - schemaObject.setMaximum(schema.getMaximum()); - if( schema.getMinimum() != null ) - schemaObject.setMinimum(schema.getMinimum()); - if( schema.getMaxItems() != null ) - schemaObject.setMaxItems(schema.getMaxItems()); - if( schema.getMinItems() != null ) - schemaObject.setMinItems(schema.getMinItems()); - if( schema.getMaxLength() != null ) - schemaObject.setMaxLength(schema.getMaxLength()); - if( schema.getMinLength() != null ) - schemaObject.setMinLength(schema.getMinLength()); - if( schema.getMaxProperties() != null ) - schemaObject.setMaxProperties(schema.getMaxProperties()); - if( schema.getMinProperties() != null ) - schemaObject.setMinProperties(schema.getMinProperties()); - if( schema.getMultipleOf() != null ) - schemaObject.setMultipleOf(schema.getMultipleOf()); - if( schema.getNotSchema() != null ){ - NotSchema notSchema = new NotSchema(); - notSchema.setSchemaOb(parseSchema(schema.getNotSchema(), context, map)); - schemaObject.setNotSchema(notSchema); - } - if( schema.getNullable() != null ) - schemaObject.setNullable(schema.getNullable()); - if( schema.getPattern() != null ) - schemaObject.setPattern(schema.getPattern()); - if( schema.getProperties() != null ){ - for( String key : schema.getProperties().keySet() ){ - PropertyItem propertyItem = new PropertyItem(); - schemaObject.addPropertyItem(new PropertyItem(key, parseSchema(schema.getProperty(key), context, map))); - } - } - if( schema.getRequiredFields() != null ){ - for( String s : schema.getRequiredFields() ){ - RequiredField requiredField = new RequiredField(); - requiredField.setValue(s); - schemaObject.addRequiredField(requiredField); - } - } - if( schema.getAllOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAllOfSchemas()){ - AllOfSchema allOfSchema = new AllOfSchema(); - allOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addAllOfSchema(allOfSchema); - } - } - if( schema.getAnyOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAnyOfSchemas()){ - AnyOfSchema anyOfSchema = new AnyOfSchema(); - anyOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addAnyOfSchema(anyOfSchema); - } - } - if( schema.getOneOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getOneOfSchemas()){ - OneOfSchema oneOfSchema = new OneOfSchema(); - oneOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addOneOfSchema(oneOfSchema); - } - } - if( schema.getReadOnly() != null ) - schemaObject.setReadOnly(schema.getReadOnly()); - if( schema.getWriteOnly() != null ) - schemaObject.setWriteOnly(schema.getWriteOnly()); - if( schema.getType() != null ) - schemaObject.setType(schema.getType()); - if( schema.getTitle() != null ) - schemaObject.setTitle(schema.getTitle()); - if( schema.getUniqueItems() != null ) - schemaObject.setUniqueItems(schema.getUniqueItems()); - if( schema.getXml() != null ) - schemaObject.setXmlObject(XmlObject.parseXml(schema.getXml(), map)); - if( schema.getExtensions() != null ){ - for( String key : schema.getExtensions().keySet() ) - schemaObject.addExtension(new Extension(key, schema.getExtensions().get(key))); - } - map.put(schema, schemaObject); return schemaObject; } @@ -349,6 +227,22 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:58 */ public abstract SchemaOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + public abstract org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map); + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:12 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:12") + public abstract SchemaObject schemaObject(); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 3fdfc999390299fe84adca77c924b76472524471..a9e89221f611aaf8d8bc6b72b1b84432ca717a5c 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,7 @@ 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; @@ -15,12 +16,11 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:107 - * @astdecl SchemaObject : SchemaOb ::= <AdditionalProperties:SchemaOb> <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"><AdditionalProperties:SchemaOb></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>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:108 + * @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>; */ public class SchemaObject extends SchemaOb implements Cloneable { @@ -38,42 +38,43 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[12]; + children = new ASTNode[13]; setChild(new Opt(), 0); - setChild(new JastAddList(), 1); - setChild(new Opt(), 2); + setChild(new Opt(), 1); + setChild(new JastAddList(), 2); setChild(new Opt(), 3); setChild(new Opt(), 4); - setChild(new JastAddList(), 5); + setChild(new Opt(), 5); setChild(new JastAddList(), 6); setChild(new JastAddList(), 7); setChild(new JastAddList(), 8); setChild(new JastAddList(), 9); - setChild(new Opt(), 10); - setChild(new JastAddList(), 11); + setChild(new JastAddList(), 10); + setChild(new Opt(), 11); + setChild(new JastAddList(), 12); } /** - * @declaredat ASTNode:25 + * @declaredat ASTNode:26 */ @ASTNodeAnnotation.Constructor( name = {"AdditionalProperties", "AdditionalPropertiesAllowed", "DefaultValue", "Description", "DeprecatedBoolean", "DiscriminatorObject", "EnumObj", "Example", "ExclusiveMaximum", "ExclusiveMinimum", "ExternalDocObject", "Format", "ItemsSchema", "Maximum", "Minimum", "MaxItems", "MinItems", "MaxLength", "MinLength", "MaxProperties", "MinProperties", "MultipleOf", "NotSchema", "Nullable", "Pattern", "PropertyItem", "RequiredField", "AllOfSchema", "AnyOfSchema", "OneOfSchema", "ReadOnly", "WriteOnly", "Type", "Title", "UniqueItems", "XmlObject", "Extension"}, - type = {"SchemaOb", "Boolean", "Object", "String", "Boolean", "Opt<DiscriminatorObject>", "JastAddList<EnumObj>", "Object", "Boolean", "Boolean", "Opt<ExternalDocObject>", "String", "Opt<ItemsSchema>", "Number", "Number", "Integer", "Integer", "Integer", "Integer", "Integer", "Integer", "Number", "Opt<NotSchema>", "Boolean", "String", "JastAddList<PropertyItem>", "JastAddList<RequiredField>", "JastAddList<AllOfSchema>", "JastAddList<AnyOfSchema>", "JastAddList<OneOfSchema>", "Boolean", "Boolean", "String", "String", "Boolean", "Opt<XmlObject>", "JastAddList<Extension>"}, - kind = {"Token", "Token", "Token", "Token", "Token", "Opt", "List", "Token", "Token", "Token", "Opt", "Token", "Opt", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "Token", "List", "List", "List", "List", "List", "Token", "Token", "Token", "Token", "Token", "Opt", "List"} + type = {"Opt<AdditionalProperties>", "Boolean", "Object", "String", "Boolean", "Opt<DiscriminatorObject>", "JastAddList<EnumObj>", "Object", "Boolean", "Boolean", "Opt<ExternalDocObject>", "String", "Opt<ItemsSchema>", "Number", "Number", "Integer", "Integer", "Integer", "Integer", "Integer", "Integer", "Number", "Opt<NotSchema>", "Boolean", "String", "JastAddList<PropertyItem>", "JastAddList<RequiredField>", "JastAddList<AllOfSchema>", "JastAddList<AnyOfSchema>", "JastAddList<OneOfSchema>", "Boolean", "Boolean", "String", "String", "Boolean", "Opt<XmlObject>", "JastAddList<Extension>"}, + kind = {"Opt", "Token", "Token", "Token", "Token", "Opt", "List", "Token", "Token", "Token", "Opt", "Token", "Opt", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "Token", "List", "List", "List", "List", "List", "Token", "Token", "Token", "Token", "Token", "Opt", "List"} ) - public SchemaObject(SchemaOb p0, Boolean p1, Object p2, String p3, Boolean p4, Opt<DiscriminatorObject> p5, JastAddList<EnumObj> p6, Object p7, Boolean p8, Boolean p9, Opt<ExternalDocObject> p10, String p11, Opt<ItemsSchema> p12, Number p13, Number p14, Integer p15, Integer p16, Integer p17, Integer p18, Integer p19, Integer p20, Number p21, Opt<NotSchema> p22, Boolean p23, String p24, JastAddList<PropertyItem> p25, JastAddList<RequiredField> p26, JastAddList<AllOfSchema> p27, JastAddList<AnyOfSchema> p28, JastAddList<OneOfSchema> p29, Boolean p30, Boolean p31, String p32, String p33, Boolean p34, Opt<XmlObject> p35, JastAddList<Extension> p36) { - setAdditionalProperties(p0); + public SchemaObject(Opt<AdditionalProperties> p0, Boolean p1, Object p2, String p3, Boolean p4, Opt<DiscriminatorObject> p5, JastAddList<EnumObj> p6, Object p7, Boolean p8, Boolean p9, Opt<ExternalDocObject> p10, String p11, Opt<ItemsSchema> p12, Number p13, Number p14, Integer p15, Integer p16, Integer p17, Integer p18, Integer p19, Integer p20, Number p21, Opt<NotSchema> p22, Boolean p23, String p24, JastAddList<PropertyItem> p25, JastAddList<RequiredField> p26, JastAddList<AllOfSchema> p27, JastAddList<AnyOfSchema> p28, JastAddList<OneOfSchema> p29, Boolean p30, Boolean p31, String p32, String p33, Boolean p34, Opt<XmlObject> p35, JastAddList<Extension> p36) { + setChild(p0, 0); setAdditionalPropertiesAllowed(p1); setDefaultValue(p2); setDescription(p3); setDeprecatedBoolean(p4); - setChild(p5, 0); - setChild(p6, 1); + setChild(p5, 1); + setChild(p6, 2); setExample(p7); setExclusiveMaximum(p8); setExclusiveMinimum(p9); - setChild(p10, 2); + setChild(p10, 3); setFormat(p11); - setChild(p12, 3); + setChild(p12, 4); setMaximum(p13); setMinimum(p14); setMaxItems(p15); @@ -83,56 +84,56 @@ public class SchemaObject extends SchemaOb implements Cloneable { setMaxProperties(p19); setMinProperties(p20); setMultipleOf(p21); - setChild(p22, 4); + setChild(p22, 5); setNullable(p23); setPattern(p24); - setChild(p25, 5); - setChild(p26, 6); - setChild(p27, 7); - setChild(p28, 8); - setChild(p29, 9); + setChild(p25, 6); + setChild(p26, 7); + setChild(p27, 8); + setChild(p28, 9); + setChild(p29, 10); setReadOnly(p30); setWriteOnly(p31); setType(p32); setTitle(p33); setUniqueItems(p34); - setChild(p35, 10); - setChild(p36, 11); + setChild(p35, 11); + setChild(p36, 12); } /** @apilevel low-level - * @declaredat ASTNode:70 + * @declaredat ASTNode:71 */ protected int numChildren() { - return 12; + return 13; } /** * @apilevel internal - * @declaredat ASTNode:76 + * @declaredat ASTNode:77 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:80 + * @declaredat ASTNode:81 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:84 + * @declaredat ASTNode:85 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:88 + * @declaredat ASTNode:89 */ public SchemaObject clone() throws CloneNotSupportedException { SchemaObject node = (SchemaObject) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public SchemaObject copy() { try { @@ -152,7 +153,7 @@ public class SchemaObject 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:112 + * @declaredat ASTNode:113 */ @Deprecated public SchemaObject fullCopy() { @@ -163,7 +164,7 @@ public class SchemaObject 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:122 + * @declaredat ASTNode:123 */ public SchemaObject treeCopyNoTransform() { SchemaObject tree = (SchemaObject) copy(); @@ -184,7 +185,7 @@ public class SchemaObject 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:142 + * @declaredat ASTNode:143 */ public SchemaObject treeCopy() { SchemaObject tree = (SchemaObject) copy(); @@ -200,30 +201,61 @@ public class SchemaObject extends SchemaOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:156 + * @declaredat ASTNode:157 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenSchemaOb_AdditionalProperties == ((SchemaObject) node).tokenSchemaOb_AdditionalProperties) && (tokenBoolean_AdditionalPropertiesAllowed == ((SchemaObject) node).tokenBoolean_AdditionalPropertiesAllowed) && (tokenObject_DefaultValue == ((SchemaObject) node).tokenObject_DefaultValue) && (tokenString_Description == ((SchemaObject) node).tokenString_Description) && (tokenBoolean_DeprecatedBoolean == ((SchemaObject) node).tokenBoolean_DeprecatedBoolean) && (tokenObject_Example == ((SchemaObject) node).tokenObject_Example) && (tokenBoolean_ExclusiveMaximum == ((SchemaObject) node).tokenBoolean_ExclusiveMaximum) && (tokenBoolean_ExclusiveMinimum == ((SchemaObject) node).tokenBoolean_ExclusiveMinimum) && (tokenString_Format == ((SchemaObject) node).tokenString_Format) && (tokenNumber_Maximum == ((SchemaObject) node).tokenNumber_Maximum) && (tokenNumber_Minimum == ((SchemaObject) node).tokenNumber_Minimum) && (tokenInteger_MaxItems == ((SchemaObject) node).tokenInteger_MaxItems) && (tokenInteger_MinItems == ((SchemaObject) node).tokenInteger_MinItems) && (tokenInteger_MaxLength == ((SchemaObject) node).tokenInteger_MaxLength) && (tokenInteger_MinLength == ((SchemaObject) node).tokenInteger_MinLength) && (tokenInteger_MaxProperties == ((SchemaObject) node).tokenInteger_MaxProperties) && (tokenInteger_MinProperties == ((SchemaObject) node).tokenInteger_MinProperties) && (tokenNumber_MultipleOf == ((SchemaObject) node).tokenNumber_MultipleOf) && (tokenBoolean_Nullable == ((SchemaObject) node).tokenBoolean_Nullable) && (tokenString_Pattern == ((SchemaObject) node).tokenString_Pattern) && (tokenBoolean_ReadOnly == ((SchemaObject) node).tokenBoolean_ReadOnly) && (tokenBoolean_WriteOnly == ((SchemaObject) node).tokenBoolean_WriteOnly) && (tokenString_Type == ((SchemaObject) node).tokenString_Type) && (tokenString_Title == ((SchemaObject) node).tokenString_Title) && (tokenBoolean_UniqueItems == ((SchemaObject) node).tokenBoolean_UniqueItems); + return super.is$Equal(node) && (tokenBoolean_AdditionalPropertiesAllowed == ((SchemaObject) node).tokenBoolean_AdditionalPropertiesAllowed) && (tokenObject_DefaultValue == ((SchemaObject) node).tokenObject_DefaultValue) && (tokenString_Description == ((SchemaObject) node).tokenString_Description) && (tokenBoolean_DeprecatedBoolean == ((SchemaObject) node).tokenBoolean_DeprecatedBoolean) && (tokenObject_Example == ((SchemaObject) node).tokenObject_Example) && (tokenBoolean_ExclusiveMaximum == ((SchemaObject) node).tokenBoolean_ExclusiveMaximum) && (tokenBoolean_ExclusiveMinimum == ((SchemaObject) node).tokenBoolean_ExclusiveMinimum) && (tokenString_Format == ((SchemaObject) node).tokenString_Format) && (tokenNumber_Maximum == ((SchemaObject) node).tokenNumber_Maximum) && (tokenNumber_Minimum == ((SchemaObject) node).tokenNumber_Minimum) && (tokenInteger_MaxItems == ((SchemaObject) node).tokenInteger_MaxItems) && (tokenInteger_MinItems == ((SchemaObject) node).tokenInteger_MinItems) && (tokenInteger_MaxLength == ((SchemaObject) node).tokenInteger_MaxLength) && (tokenInteger_MinLength == ((SchemaObject) node).tokenInteger_MinLength) && (tokenInteger_MaxProperties == ((SchemaObject) node).tokenInteger_MaxProperties) && (tokenInteger_MinProperties == ((SchemaObject) node).tokenInteger_MinProperties) && (tokenNumber_MultipleOf == ((SchemaObject) node).tokenNumber_MultipleOf) && (tokenBoolean_Nullable == ((SchemaObject) node).tokenBoolean_Nullable) && (tokenString_Pattern == ((SchemaObject) node).tokenString_Pattern) && (tokenBoolean_ReadOnly == ((SchemaObject) node).tokenBoolean_ReadOnly) && (tokenBoolean_WriteOnly == ((SchemaObject) node).tokenBoolean_WriteOnly) && (tokenString_Type == ((SchemaObject) node).tokenString_Type) && (tokenString_Title == ((SchemaObject) node).tokenString_Title) && (tokenBoolean_UniqueItems == ((SchemaObject) node).tokenBoolean_UniqueItems); } /** - * Replaces the lexeme AdditionalProperties. - * @param value The new value for the lexeme AdditionalProperties. - * @apilevel high-level + * Replaces the optional node for the AdditionalProperties child. This is the <code>Opt</code> + * node containing the child AdditionalProperties, not the actual child! + * @param opt The new node to be used as the optional node for the AdditionalProperties child. + * @apilevel low-level */ - public void setAdditionalProperties(SchemaOb value) { - tokenSchemaOb_AdditionalProperties = value; + public void setAdditionalPropertiesOpt(Opt<AdditionalProperties> opt) { + setChild(opt, 0); } - /** @apilevel internal + /** + * Replaces the (optional) AdditionalProperties child. + * @param node The new node to be used as the AdditionalProperties child. + * @apilevel high-level */ - protected SchemaOb tokenSchemaOb_AdditionalProperties; + public void setAdditionalProperties(AdditionalProperties node) { + getAdditionalPropertiesOpt().setChild(node, 0); + } /** - * Retrieves the value for the lexeme AdditionalProperties. - * @return The value for the lexeme AdditionalProperties. + * Check whether the optional AdditionalProperties child exists. + * @return {@code true} if the optional AdditionalProperties child exists, {@code false} if it does not. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="AdditionalProperties") - public SchemaOb getAdditionalProperties() { - return tokenSchemaOb_AdditionalProperties; + public boolean hasAdditionalProperties() { + return getAdditionalPropertiesOpt().getNumChild() != 0; + } + /** + * Retrieves the (optional) AdditionalProperties child. + * @return The AdditionalProperties child, if it exists. Returns {@code null} otherwise. + * @apilevel low-level + */ + public AdditionalProperties getAdditionalProperties() { + return (AdditionalProperties) getAdditionalPropertiesOpt().getChild(0); + } + /** + * Retrieves the optional node for the AdditionalProperties child. This is the <code>Opt</code> node containing the child AdditionalProperties, not the actual child! + * @return The optional node for child the AdditionalProperties child. + * @apilevel low-level + */ + @ASTNodeAnnotation.OptChild(name="AdditionalProperties") + public Opt<AdditionalProperties> getAdditionalPropertiesOpt() { + return (Opt<AdditionalProperties>) getChild(0); + } + /** + * Retrieves the optional node for child AdditionalProperties. This is the <code>Opt</code> node containing the child AdditionalProperties, not the actual child! + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The optional node for child AdditionalProperties. + * @apilevel low-level + */ + public Opt<AdditionalProperties> getAdditionalPropertiesOptNoTransform() { + return (Opt<AdditionalProperties>) getChildNoTransform(0); } /** * Replaces the lexeme AdditionalPropertiesAllowed. @@ -312,7 +344,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public void setDiscriminatorObjectOpt(Opt<DiscriminatorObject> opt) { - setChild(opt, 0); + setChild(opt, 1); } /** * Replaces the (optional) DiscriminatorObject child. @@ -345,7 +377,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.OptChild(name="DiscriminatorObject") public Opt<DiscriminatorObject> getDiscriminatorObjectOpt() { - return (Opt<DiscriminatorObject>) getChild(0); + return (Opt<DiscriminatorObject>) getChild(1); } /** * Retrieves the optional node for child DiscriminatorObject. This is the <code>Opt</code> node containing the child DiscriminatorObject, not the actual child! @@ -354,7 +386,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public Opt<DiscriminatorObject> getDiscriminatorObjectOptNoTransform() { - return (Opt<DiscriminatorObject>) getChildNoTransform(0); + return (Opt<DiscriminatorObject>) getChildNoTransform(1); } /** * Replaces the EnumObj list. @@ -362,7 +394,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setEnumObjList(JastAddList<EnumObj> list) { - setChild(list, 1); + setChild(list, 2); } /** * Retrieves the number of children in the EnumObj list. @@ -430,7 +462,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="EnumObj") public JastAddList<EnumObj> getEnumObjList() { - JastAddList<EnumObj> list = (JastAddList<EnumObj>) getChild(1); + JastAddList<EnumObj> list = (JastAddList<EnumObj>) getChild(2); return list; } /** @@ -440,7 +472,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<EnumObj> getEnumObjListNoTransform() { - return (JastAddList<EnumObj>) getChildNoTransform(1); + return (JastAddList<EnumObj>) getChildNoTransform(2); } /** * @return the element at index {@code i} in the EnumObj list without @@ -533,7 +565,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public void setExternalDocObjectOpt(Opt<ExternalDocObject> opt) { - setChild(opt, 2); + setChild(opt, 3); } /** * Replaces the (optional) ExternalDocObject child. @@ -566,7 +598,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.OptChild(name="ExternalDocObject") public Opt<ExternalDocObject> getExternalDocObjectOpt() { - return (Opt<ExternalDocObject>) getChild(2); + return (Opt<ExternalDocObject>) getChild(3); } /** * Retrieves the optional node for child ExternalDocObject. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child! @@ -575,7 +607,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public Opt<ExternalDocObject> getExternalDocObjectOptNoTransform() { - return (Opt<ExternalDocObject>) getChildNoTransform(2); + return (Opt<ExternalDocObject>) getChildNoTransform(3); } /** * Replaces the lexeme Format. @@ -604,7 +636,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public void setItemsSchemaOpt(Opt<ItemsSchema> opt) { - setChild(opt, 3); + setChild(opt, 4); } /** * Replaces the (optional) ItemsSchema child. @@ -637,7 +669,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.OptChild(name="ItemsSchema") public Opt<ItemsSchema> getItemsSchemaOpt() { - return (Opt<ItemsSchema>) getChild(3); + return (Opt<ItemsSchema>) getChild(4); } /** * Retrieves the optional node for child ItemsSchema. This is the <code>Opt</code> node containing the child ItemsSchema, not the actual child! @@ -646,7 +678,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public Opt<ItemsSchema> getItemsSchemaOptNoTransform() { - return (Opt<ItemsSchema>) getChildNoTransform(3); + return (Opt<ItemsSchema>) getChildNoTransform(4); } /** * Replaces the lexeme Maximum. @@ -835,7 +867,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public void setNotSchemaOpt(Opt<NotSchema> opt) { - setChild(opt, 4); + setChild(opt, 5); } /** * Replaces the (optional) NotSchema child. @@ -868,7 +900,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.OptChild(name="NotSchema") public Opt<NotSchema> getNotSchemaOpt() { - return (Opt<NotSchema>) getChild(4); + return (Opt<NotSchema>) getChild(5); } /** * Retrieves the optional node for child NotSchema. This is the <code>Opt</code> node containing the child NotSchema, not the actual child! @@ -877,7 +909,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public Opt<NotSchema> getNotSchemaOptNoTransform() { - return (Opt<NotSchema>) getChildNoTransform(4); + return (Opt<NotSchema>) getChildNoTransform(5); } /** * Replaces the lexeme Nullable. @@ -925,7 +957,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setPropertyItemList(JastAddList<PropertyItem> list) { - setChild(list, 5); + setChild(list, 6); } /** * Retrieves the number of children in the PropertyItem list. @@ -993,7 +1025,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="PropertyItem") public JastAddList<PropertyItem> getPropertyItemList() { - JastAddList<PropertyItem> list = (JastAddList<PropertyItem>) getChild(5); + JastAddList<PropertyItem> list = (JastAddList<PropertyItem>) getChild(6); return list; } /** @@ -1003,7 +1035,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<PropertyItem> getPropertyItemListNoTransform() { - return (JastAddList<PropertyItem>) getChildNoTransform(5); + return (JastAddList<PropertyItem>) getChildNoTransform(6); } /** * @return the element at index {@code i} in the PropertyItem list without @@ -1035,7 +1067,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setRequiredFieldList(JastAddList<RequiredField> list) { - setChild(list, 6); + setChild(list, 7); } /** * Retrieves the number of children in the RequiredField list. @@ -1103,7 +1135,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="RequiredField") public JastAddList<RequiredField> getRequiredFieldList() { - JastAddList<RequiredField> list = (JastAddList<RequiredField>) getChild(6); + JastAddList<RequiredField> list = (JastAddList<RequiredField>) getChild(7); return list; } /** @@ -1113,7 +1145,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<RequiredField> getRequiredFieldListNoTransform() { - return (JastAddList<RequiredField>) getChildNoTransform(6); + return (JastAddList<RequiredField>) getChildNoTransform(7); } /** * @return the element at index {@code i} in the RequiredField list without @@ -1145,7 +1177,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setAllOfSchemaList(JastAddList<AllOfSchema> list) { - setChild(list, 7); + setChild(list, 8); } /** * Retrieves the number of children in the AllOfSchema list. @@ -1213,7 +1245,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="AllOfSchema") public JastAddList<AllOfSchema> getAllOfSchemaList() { - JastAddList<AllOfSchema> list = (JastAddList<AllOfSchema>) getChild(7); + JastAddList<AllOfSchema> list = (JastAddList<AllOfSchema>) getChild(8); return list; } /** @@ -1223,7 +1255,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<AllOfSchema> getAllOfSchemaListNoTransform() { - return (JastAddList<AllOfSchema>) getChildNoTransform(7); + return (JastAddList<AllOfSchema>) getChildNoTransform(8); } /** * @return the element at index {@code i} in the AllOfSchema list without @@ -1255,7 +1287,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setAnyOfSchemaList(JastAddList<AnyOfSchema> list) { - setChild(list, 8); + setChild(list, 9); } /** * Retrieves the number of children in the AnyOfSchema list. @@ -1323,7 +1355,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="AnyOfSchema") public JastAddList<AnyOfSchema> getAnyOfSchemaList() { - JastAddList<AnyOfSchema> list = (JastAddList<AnyOfSchema>) getChild(8); + JastAddList<AnyOfSchema> list = (JastAddList<AnyOfSchema>) getChild(9); return list; } /** @@ -1333,7 +1365,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<AnyOfSchema> getAnyOfSchemaListNoTransform() { - return (JastAddList<AnyOfSchema>) getChildNoTransform(8); + return (JastAddList<AnyOfSchema>) getChildNoTransform(9); } /** * @return the element at index {@code i} in the AnyOfSchema list without @@ -1365,7 +1397,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setOneOfSchemaList(JastAddList<OneOfSchema> list) { - setChild(list, 9); + setChild(list, 10); } /** * Retrieves the number of children in the OneOfSchema list. @@ -1433,7 +1465,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="OneOfSchema") public JastAddList<OneOfSchema> getOneOfSchemaList() { - JastAddList<OneOfSchema> list = (JastAddList<OneOfSchema>) getChild(9); + JastAddList<OneOfSchema> list = (JastAddList<OneOfSchema>) getChild(10); return list; } /** @@ -1443,7 +1475,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<OneOfSchema> getOneOfSchemaListNoTransform() { - return (JastAddList<OneOfSchema>) getChildNoTransform(9); + return (JastAddList<OneOfSchema>) getChildNoTransform(10); } /** * @return the element at index {@code i} in the OneOfSchema list without @@ -1576,7 +1608,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public void setXmlObjectOpt(Opt<XmlObject> opt) { - setChild(opt, 10); + setChild(opt, 11); } /** * Replaces the (optional) XmlObject child. @@ -1609,7 +1641,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.OptChild(name="XmlObject") public Opt<XmlObject> getXmlObjectOpt() { - return (Opt<XmlObject>) getChild(10); + return (Opt<XmlObject>) getChild(11); } /** * Retrieves the optional node for child XmlObject. This is the <code>Opt</code> node containing the child XmlObject, not the actual child! @@ -1618,7 +1650,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public Opt<XmlObject> getXmlObjectOptNoTransform() { - return (Opt<XmlObject>) getChildNoTransform(10); + return (Opt<XmlObject>) getChildNoTransform(11); } /** * Replaces the Extension list. @@ -1626,7 +1658,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel high-level */ public void setExtensionList(JastAddList<Extension> list) { - setChild(list, 11); + setChild(list, 12); } /** * Retrieves the number of children in the Extension list. @@ -1694,7 +1726,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { */ @ASTNodeAnnotation.ListChild(name="Extension") public JastAddList<Extension> getExtensionList() { - JastAddList<Extension> list = (JastAddList<Extension>) getChild(11); + JastAddList<Extension> list = (JastAddList<Extension>) getChild(12); return list; } /** @@ -1704,7 +1736,7 @@ public class SchemaObject extends SchemaOb implements Cloneable { * @apilevel low-level */ public JastAddList<Extension> getExtensionListNoTransform() { - return (JastAddList<Extension>) getChildNoTransform(11); + return (JastAddList<Extension>) getChildNoTransform(12); } /** * @return the element at index {@code i} in the Extension list without @@ -1730,6 +1762,174 @@ public class SchemaObject extends SchemaOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + 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); + _parameters.add(map); + if (composeSchema_SchemaOb_Map_Object__ASTNode__visited == null) composeSchema_SchemaOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeSchema_SchemaOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute SchemaOb.composeSchema(SchemaOb,Map_Object__ASTNode_)."); + } + composeSchema_SchemaOb_Map_Object__ASTNode__visited.add(_parameters); + try { + org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema(); + SchemaObject s = (SchemaObject) schemaOb; + + if( s.hasAdditionalProperties() ) { + SchemaOb o = s.getAdditionalProperties().getSchemaOb(); + if ( o instanceof SchemaObject ) + schema.setAdditionalProperties(((SchemaObject) o).composeSchema(o, map)); + else + schema.setAdditionalProperties(((SchemaReference) o).composeSchema(o, map)); + } + if( s.getAdditionalPropertiesAllowed() != null ) + schema.setAdditionalPropertiesAllowed(s.getAdditionalPropertiesAllowed()); + if( s.getDefaultValue() != null ) + schema.setDefault(s.getDefaultValue()); + if( !s.getDescription().isEmpty() ) + schema.setDescription(s.getDescription()); + if( s.getDeprecatedBoolean() != null ) + schema.setDeprecated(s.getDeprecatedBoolean()); + if( s.hasDiscriminatorObject() ) + schema.setDiscriminator(DiscriminatorObject.composeDiscriminator(s.getDiscriminatorObject(), map)); + if( s.getNumEnumObj() != 0 ){ + for( EnumObj e : s.getEnumObjs() ) + schema.addEnum(e.getEnumOb()); + } + if( s.getExample() != null ) + schema.setExample(s.getExample()); + if( s.getExclusiveMaximum() != null ) + schema.setExclusiveMaximum(s.getExclusiveMaximum()); + if( s.getExclusiveMinimum() != null ) + schema.setExclusiveMinimum(s.getExclusiveMinimum()); + if( s.hasExternalDocObject() ) + schema.setExternalDocs(ExternalDocObject.composeExternalDocs(s.getExternalDocObject(), map)); + if( !s.getFormat().isEmpty() ) + schema.setFormat(s.getFormat()); + if( s.hasItemsSchema() ) { + if (s.getItemsSchema().getSchemaOb() instanceof SchemaObject) + schema.setItemsSchema(((SchemaObject) s.getItemsSchema().getSchemaOb()).composeSchema(s.getItemsSchema().getSchemaOb(), map)); + else + schema.setItemsSchema(((SchemaReference) s.getItemsSchema().getSchemaOb()).composeSchema(s.getItemsSchema().getSchemaOb(), map)); + } + if( s.getMaximum() != null ) + schema.setMaximum(s.getMaximum()); + if( s.getMinimum() != null ) + schema.setMinimum(s.getMinimum()); + if( s.getMaxItems() != null ) + schema.setMaxItems(s.getMaxItems()); + if( s.getMinItems() != null ) + schema.setMinItems(s.getMinItems()); + if( s.getMaxLength() != null ) + schema.setMaxLength(s.getMaxLength()); + if( s.getMinLength() != null ) + schema.setMinLength(s.getMinLength()); + if( s.getMaxProperties() != null ) + schema.setMaxProperties(s.getMaxProperties()); + if( s.getMinProperties() != null ) + schema.setMinProperties(s.getMinProperties()); + if( s.getMultipleOf() != null ) + schema.setMultipleOf(s.getMultipleOf()); + if( s.hasNotSchema() ) { + if( s.getNotSchema().getSchemaOb() instanceof SchemaObject ) + schema.setNotSchema(((SchemaObject) s.getNotSchema().getSchemaOb()).composeSchema(s.getNotSchema().getSchemaOb(), map)); + else + schema.setNotSchema(((SchemaReference) s.getNotSchema().getSchemaOb()).composeSchema(s.getNotSchema().getSchemaOb(), map)); + } + if( s.getNullable() != null ) + schema.setNullable(s.getNullable()); + if( !s.getPattern().isEmpty() ) + schema.setPattern(s.getPattern()); + if( s.getNumPropertyItem() != 0 ){ + Map<String, org.openapi4j.parser.model.v3.Schema> properties = new HashMap<>(); + for( PropertyItem p : s.getPropertyItemList() ) { + if( p.getSchemaOb() instanceof SchemaObject ) + properties.put(p.getName(), ((SchemaObject) p.getSchemaOb()).composeSchema(p.getSchemaOb(), map)); + else + properties.put(p.getName(), ((SchemaReference) p.getSchemaOb()).composeSchema(p.getSchemaOb(), map)); + } + schema.setProperties(properties); + } + if( s.getNumRequiredField() != 0 ){ + for( RequiredField r : s.getRequiredFields() ) + schema.addRequiredField(r.getValue()); + } + if( s.getNumAllOfSchema() != 0 ){ + for( AllOfSchema a : s.getAllOfSchemas() ) { + if( a.getSchemaOb() instanceof SchemaObject ) + schema.addAllOfSchema(((SchemaObject) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + else + schema.addAllOfSchema(((SchemaReference) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + } + } + if( s.getNumAnyOfSchema() != 0 ){ + for( AnyOfSchema a : s.getAnyOfSchemas() ) { + if( a.getSchemaOb() instanceof SchemaObject ) + schema.addAnyOfSchema(((SchemaObject) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + else + schema.addAnyOfSchema(((SchemaReference) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + } + } + if( s.getNumOneOfSchema() != 0 ){ + for( OneOfSchema o : s.getOneOfSchemas() ) { + if( o.getSchemaOb() instanceof SchemaObject ) + schema.addOneOfSchema(((SchemaObject) o.getSchemaOb()).composeSchema(o.getSchemaOb(), map)); + else + schema.addOneOfSchema(((SchemaReference) o.getSchemaOb()).composeSchema(o.getSchemaOb(), map)); + } + } + if( s.getReadOnly() != null ) + schema.setReadOnly(s.getReadOnly()); + if( s.getWriteOnly() != null ) + schema.setWriteOnly(s.getWriteOnly()); + if( !s.getType().isEmpty() ) + schema.setType(s.getType()); + if( !s.getTitle().isEmpty() ) + schema.setTitle(s.getTitle()); + if( s.getUniqueItems() != null ) + schema.setUniqueItems(s.getUniqueItems()); + if( s.hasXmlObject() ) + schema.setXml(XmlObject.composeXml(s.getXmlObject(), map)); + if( s.getNumExtension() != 0 ){ + Map<String, Object> extensionMap = new HashMap<>(); + for( Extension e : s.getExtensions() ) + extensionMap.put(e.getKey(), e.getValue()); + schema.setExtensions(extensionMap); + } + + return schema; + } + finally { + composeSchema_SchemaOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } +/** @apilevel internal */ +protected boolean schemaObject_visited = false; + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:13 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:12") + public SchemaObject schemaObject() { + if (schemaObject_visited) { + throw new RuntimeException("Circular definition of attribute SchemaOb.schemaObject()."); + } + schemaObject_visited = true; + SchemaObject schemaObject_value = this; + schemaObject_visited = false; + return schemaObject_value; + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 083b0d37f494d2cb1b8017b6652ea0af7ba71cc8..c1cf7ef1af6c99fb1b6741b509199a3313deb30b 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:107 * @astdecl SchemaReference : SchemaOb ::= <Ref:String> <SchemaOb:SchemaOb>; * @production SchemaReference : {@link SchemaOb} ::= <span class="component"><Ref:String></span> <span class="component"><SchemaOb:SchemaOb></span>; @@ -197,6 +197,61 @@ public class SchemaReference extends SchemaOb implements Cloneable { 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + 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); + _parameters.add(map); + if (composeSchema_SchemaOb_Map_Object__ASTNode__visited == null) composeSchema_SchemaOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeSchema_SchemaOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute SchemaOb.composeSchema(SchemaOb,Map_Object__ASTNode_)."); + } + composeSchema_SchemaOb_Map_Object__ASTNode__visited.add(_parameters); + try { + org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema(); + SchemaReference s = (SchemaReference) schemaOb; + + if( !s.getRef().isEmpty() ) + schema.setRef(s.getRef()); + + return schema; + } + finally { + composeSchema_SchemaOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } +/** @apilevel internal */ +protected boolean schemaObject_visited = false; + /** + * @attribute syn + * @aspect ReferenceGet + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:12 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="ReferenceGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\ReferenceGet.jrag:12") + 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(); + } + finally { + schemaObject_visited = false; + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 897390f9dc4604ee2d2376354197ffd6e23a5d0d..c93b736d0719d1c69e4ceca012d7c9b92fb7e2ee 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:23 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 b20603ca3c00f24e74cae9675d75661d4d37a68c..3b63598ed8f98dac0cf0ccc8e1874e0909e44f81 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:140 * @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 b78ae40ff43a6337a2c55e9e0b8aba25d619b7bc..36a250d21832cad6bc56020d6aba9d4b640866a5 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:142 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:143 * @astdecl SecurityRequirementObject : ASTNode ::= SecurityRequirementTuple*; * @production SecurityRequirementObject : {@link ASTNode} ::= <span class="component">{@link SecurityRequirementTuple}*</span>; @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class SecurityRequirementObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:816 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:945 */ public static SecurityRequirement composeSecurityRequirement (SecurityRequirementObject securityRequirementObject, Map<Object, ASTNode> map){ SecurityRequirement securityRequirement = new SecurityRequirement(); @@ -46,7 +46,7 @@ public class SecurityRequirementObject extends ASTNode<ASTNode> implements Clone } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:1011 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:872 */ 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 85d694a7a299ddd459b10ddcb4e58398c05248be..aa0abfdfd4d7ce37257ffc39208432ee2e92aa49 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:144 * @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 c54b874388e3c8dcb9376e49ca4e5ae3ae93f245..78e17b7a0dd8e61a31299deeaff4f6a3ba681b1e 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:145 * @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 cc3ca1892f3ca8e00e1474dfe6bd9359653a3d84..192db233955fb5fe37a4f26d31a574d69006f259 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,7 @@ 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; @@ -15,50 +16,17 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:126 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:127 * @astdecl SecuritySchemeOb : ASTNode; * @production SecuritySchemeOb : {@link ASTNode}; */ public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:749 - */ - public static SecurityScheme composeSecurityScheme (SecuritySchemeObject securitySchemeObject, Map<Object, ASTNode> map){ - SecurityScheme securityScheme = new SecurityScheme(); - - if( !securitySchemeObject.getType().isEmpty() ) - securityScheme.setType(securitySchemeObject.getType()); - if( !securitySchemeObject.getName().isEmpty() ) - securityScheme.setName(securitySchemeObject.getName()); - if( !securitySchemeObject.getIn().isEmpty() ) - securityScheme.setIn(securitySchemeObject.getIn()); - if( !securitySchemeObject.getScheme().isEmpty() ) - securityScheme.setScheme(securitySchemeObject.getScheme()); - if( !securitySchemeObject.getOpenIdConnectUrl().isEmpty() ) - securityScheme.setOpenIdConnectUrl(securitySchemeObject.getOpenIdConnectUrl()); - if( securitySchemeObject.getOAuthFlowsObject() != null ) - securityScheme.setFlows(OAuthFlowsObject.composeOAuthFlows(securitySchemeObject.getOAuthFlowsObject())); - if( !securitySchemeObject.getDescription().isEmpty() ) - securityScheme.setDescription( securitySchemeObject.getDescription() ); - if( !securitySchemeObject.getBearerFormat().isEmpty() ) - securityScheme.setBearerFormat( securitySchemeObject.getBearerFormat() ); - if( securitySchemeObject.getNumExtension() != 0 ){ - Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : securitySchemeObject.getExtensions() ) - extensionMap.put(e.getKey(), e.getValue()); - securityScheme.setExtensions(extensionMap); - } - - return securityScheme; - } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:931 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:792 */ public static SecuritySchemeOb parseSecurityScheme(SecurityScheme securityScheme, OAIContext context, Map<Object, ASTNode> map){ SecuritySchemeObject securitySchemeObject = new SecuritySchemeObject(); @@ -161,6 +129,14 @@ public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Clone * @declaredat ASTNode:58 */ public abstract SecuritySchemeOb treeCopy(); + /** + * @attribute syn + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + public abstract SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map); /** @apilevel internal */ public ASTNode rewriteTo() { return super.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 f11878c9b909d8429037e168cf6c56748d28fe57..ac31f8f12e0cd55b8ad0f5d9fed5098483e90e1e 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:128 + * @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>; @@ -442,6 +442,57 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } +/** @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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(securitySchemeOb); + _parameters.add(map); + if (composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited == null) composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.composeSecurityScheme(SecuritySchemeOb,Map_Object__ASTNode_)."); + } + composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.add(_parameters); + try { + SecurityScheme securityScheme = new SecurityScheme(); + SecuritySchemeObject s = (SecuritySchemeObject) securitySchemeOb; + + if( !s.getType().isEmpty() ) + securityScheme.setType(s.getType()); + if( !s.getName().isEmpty() ) + securityScheme.setName(s.getName()); + if( !s.getIn().isEmpty() ) + securityScheme.setIn(s.getIn()); + if( !s.getScheme().isEmpty() ) + securityScheme.setScheme(s.getScheme()); + if( !s.getOpenIdConnectUrl().isEmpty() ) + securityScheme.setOpenIdConnectUrl(s.getOpenIdConnectUrl()); + if( s.getOAuthFlowsObject() != null ) + securityScheme.setFlows(OAuthFlowsObject.composeOAuthFlows(s.getOAuthFlowsObject(), map)); + if( !s.getDescription().isEmpty() ) + securityScheme.setDescription( s.getDescription() ); + if( !s.getBearerFormat().isEmpty() ) + securityScheme.setBearerFormat( s.getBearerFormat() ); + if( s.getNumExtension() != 0 ){ + Map<String, Object> extensionMap = new HashMap<>(); + for( Extension e : s.getExtensions() ) + extensionMap.put(e.getKey(), e.getValue()); + securityScheme.setExtensions(extensionMap); + } + + return securityScheme; + } + finally { + composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 de48f205d277ed181fd5a5f30372b503ef69e68e..0c7f7dc095d1732bce6607f071fdd9402c95da80 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @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:128 * @astdecl SecuritySchemeReference : SecuritySchemeOb ::= <Ref:String> <SecuritySchemeOb:SecuritySchemeOb>; * @production SecuritySchemeReference : {@link SecuritySchemeOb} ::= <span class="component"><Ref:String></span> <span class="component"><SecuritySchemeOb:SecuritySchemeOb></span>; @@ -197,6 +197,37 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab 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 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { + java.util.List _parameters = new java.util.ArrayList(2); + _parameters.add(securitySchemeOb); + _parameters.add(map); + if (composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited == null) composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); + if (composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.contains(_parameters)) { + throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.composeSecurityScheme(SecuritySchemeOb,Map_Object__ASTNode_)."); + } + composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.add(_parameters); + try { + SecurityScheme securityScheme = new SecurityScheme(); + SecuritySchemeReference s = (SecuritySchemeReference) securitySchemeOb; + + if( !s.getRef().isEmpty() ) + securityScheme.setRef(s.getRef()); + + return securityScheme; + } + finally { + composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited.remove(_parameters); + } + } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); 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 cfee37bc44cb3b1c07078b44d1c4b7c70aa8ec56..a27af9940b6836ca22c775954ec0728954689de8 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:29 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 3c09dd3b03db953395cbdbc60c7f61623384ab39..90d2d5607617687a78aa2f162757da040fc19773 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:14 @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class ServerObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:125 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:125 */ public static Server composeServer (ServerObject serverObject, Map<Object, ASTNode> map){ Server server = new Server(); 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 da0263933531c2afa41be64a9597ed8329d00c5b..5c0cf4971f6f389228d5f720115b6d6d765b2222 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:18 @@ -26,7 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class ServerVariableObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:149 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:149 */ public static ServerVariable composeServerVariable (ServerVariableObject serverVariableObject, Map<Object, ASTNode> map){ ServerVariable serverVariable = new ServerVariable(); 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 8b3b0cad5790cd417372273a72f77ddd2c521398..16878d741e22d2300a0c2d7f05711dbfa6294b75 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,7 @@ 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; @@ -15,7 +16,6 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:15 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 a47dad53a3a51c6dc36dca2e9e3058d8ad880908..3469ec203e8f7bd373f0554fa77153a366a10894 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:52 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:53 * @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 5b3b9b5ad28b7dfdb76bb3b8730c144c00ff88b0..2a1e5c572decb682906924954df8ecfcfa65b314 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:102 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:103 * @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 +26,7 @@ import org.openapi4j.core.exception.DecodeException; public class TagObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:597 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:682 */ 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(); @@ -36,7 +36,7 @@ public class TagObject extends ASTNode<ASTNode> implements Cloneable { if( !tagObject.getDescription().isEmpty() ) tag.setDescription( tagObject.getDescription() ); if( tagObject.hasExternalDocObject() ) - tag.setExternalDocs( ExternalDocObject.composeExternalDocs(tagObject.getExternalDocObject()) ); + tag.setExternalDocs( ExternalDocObject.composeExternalDocs(tagObject.getExternalDocObject(), map) ); if( tagObject.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); for( Extension e : tagObject.getExtensions() ) @@ -48,7 +48,7 @@ public class TagObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:631 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:604 */ 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 e446253bca81078235a66ab32668827b9fdc8fbb..14a4bc3469ac4bb21544764ce02bba9f96033217 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,7 @@ 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; @@ -15,15 +16,14 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:48 - * @astdecl Trace : ASTNode ::= OperationObject; - * @production Trace : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; + * @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>; */ -public class Trace extends ASTNode<ASTNode> implements Cloneable { +public class Trace extends OperationOb implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,53 +38,52 @@ public class Trace extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[1]; } /** - * @declaredat ASTNode:13 + * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Child"} + kind = {"Token"} ) public Trace(OperationObject p0) { - setChild(p0, 0); + setOperationObject(p0); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { - return 1; + 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 Trace clone() throws CloneNotSupportedException { Trace node = (Trace) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public Trace copy() { try { @@ -104,7 +103,7 @@ public class Trace 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:64 + * @declaredat ASTNode:63 */ @Deprecated public Trace fullCopy() { @@ -115,7 +114,7 @@ public class Trace 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:74 + * @declaredat ASTNode:73 */ public Trace treeCopyNoTransform() { Trace tree = (Trace) copy(); @@ -136,7 +135,7 @@ public class Trace 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:94 + * @declaredat ASTNode:93 */ public Trace treeCopy() { Trace tree = (Trace) copy(); @@ -152,36 +151,30 @@ public class Trace extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node); + return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Trace) node).tokenOperationObject_OperationObject); } /** - * Replaces the OperationObject child. - * @param node The new node to replace the OperationObject child. + * Replaces the lexeme OperationObject. + * @param value The new value for the lexeme OperationObject. * @apilevel high-level */ - public void setOperationObject(OperationObject node) { - setChild(node, 0); + public void setOperationObject(OperationObject value) { + tokenOperationObject_OperationObject = value; } + /** @apilevel internal + */ + protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the OperationObject child. - * @return The current node used as the OperationObject child. + * Retrieves the value for the lexeme OperationObject. + * @return The value for the lexeme OperationObject. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OperationObject") + @ASTNodeAnnotation.Token(name="OperationObject") public OperationObject getOperationObject() { - 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); + return tokenOperationObject_OperationObject; } /** @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 e9792647a80b49b4fa56d7a92aa89c9d19818b03..d546aa15e420b496ad0af8720ba3a05c16fab2af 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,7 @@ 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; @@ -15,10 +16,9 @@ import java.net.HttpURLConnection; import javax.net.ssl.HttpsURLConnection; import java.util.Random; import java.util.stream.IntStream; -import org.openapi4j.core.exception.DecodeException; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:123 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:124 * @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,9 +26,9 @@ import org.openapi4j.core.exception.DecodeException; public class XmlObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:732 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:855 */ - public static Xml composeXml (XmlObject xmlObject) { + public static Xml composeXml (XmlObject xmlObject, Map<Object, ASTNode> map) { Xml xml = new Xml(); if( !xmlObject.getName().isEmpty() ) @@ -46,7 +46,7 @@ public class XmlObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:909 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:770 */ public static XmlObject parseXml (Xml xml, Map<Object, ASTNode> map) { XmlObject xmlObject = new XmlObject(); diff --git a/src/main/jastadd/Composer.jadd b/src/main/jastadd/Composer.jrag similarity index 54% rename from src/main/jastadd/Composer.jadd rename to src/main/jastadd/Composer.jrag index 60032ca52fa0fde61ffe2196f8f39abd55598df2..40b8e29d663d93795c1bc999bc303fb21f1adf3a 100644 --- a/src/main/jastadd/Composer.jadd +++ 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(), PathItemOb.composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -62,17 +62,17 @@ public static Info InfoObject.composeInfo (InfoObject infoObject, Map<Object, AS Info info = new Info(); if( !infoObject.getTitle().isEmpty() ) - info.setTitle(infoObject.getTitle()); + info.setTitle(infoObject.getTitle()); if( !infoObject.getVersion().isEmpty() ) - info.setVersion(infoObject.getVersion()); + info.setVersion(infoObject.getVersion()); if( !infoObject.getDescription().isEmpty() ) info.setDescription(infoObject.getDescription()); if( !infoObject.getTermsOfService().isEmpty() ) info.setTermsOfService(infoObject.getTermsOfService()); if( infoObject.hasContactObject() ) - info.setContact(ContactObject.composeContact(infoObject.getContactObject())); + info.setContact(ContactObject.composeContact(infoObject.getContactObject(), map)); if( infoObject.hasLicenseObject() ) - info.setLicense(LicenseObject.composeLicense(infoObject.getLicenseObject())); + info.setLicense(LicenseObject.composeLicense(infoObject.getLicenseObject(), map)); if( infoObject.getNumExtension() != 0 ){ Map<String, Object> extension = new HashMap<>(); for( Extension e : infoObject.getExtensions() ) @@ -175,20 +175,32 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co if( componentsObject.getNumSchemaTuple() != 0 ){ Map<String, org.openapi4j.parser.model.v3.Schema> schemaMap = new HashMap<>(); - for( SchemaTuple t : componentsObject.getSchemaTuples() ) - schemaMap.put(t.getKey(), SchemaOb.composeSchema(t.getSchemaOb(), map)); + SchemaOb s; + for( SchemaTuple t : componentsObject.getSchemaTuples() ){ + s = t.getSchemaOb(); + if( s instanceof SchemaObject ) + schemaMap.put(t.getKey(), ((SchemaObject)s).composeSchema(s, map)); + else + schemaMap.put(t.getKey(), ((SchemaReference)s).composeSchema(s, map)); + } components.setSchemas(schemaMap); } if( componentsObject.getNumResponseTuple() != 0 ){ Map<String, Response> responseMap = new HashMap<>(); - for( ResponseTuple t : componentsObject.getResponseTuples() ) - responseMap.put(t.getKey(), ResponseOb.composeResponse(t.getResponseOb(), map)); + ResponseOb r; + for( ResponseTuple t : componentsObject.getResponseTuples() ) { + r = t.getResponseOb(); + responseMap.put(t.getKey(), r.composeResponse(r, map)); + } components.setResponses(responseMap); } if( componentsObject.getNumParameterTuple() != 0 ){ Map<String, Parameter> parameterMap = new HashMap<>(); - for( ParameterTuple t : componentsObject.getParameterTuples() ) - parameterMap.put(t.getKey(), ParameterOb.composeParameter(t.getParameterOb(), map)); + ParameterOb p; + for( ParameterTuple t : componentsObject.getParameterTuples() ) { + p = t.getParameterOb(); + parameterMap.put(t.getKey(), p.composeParameter(p, map)); + } components.setParameters(parameterMap); } if( componentsObject.getNumExampleTuple() != 0 ){ @@ -199,33 +211,43 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co } if( componentsObject.getNumRequestBodyTuple() != 0 ){ Map<String, RequestBody> requestBodyMap = new HashMap<>(); - for( RequestBodyTuple t : componentsObject.getRequestBodyTuples() ) - requestBodyMap.put(t.getKey(), RequestBodyOb.composeRequestBody(t.getRequestBodyOb(), map)); - components.setRequestBodies(requestBodyMap); + RequestBodyOb r; + for( RequestBodyTuple t : componentsObject.getRequestBodyTuples() ) { + r = t.getRequestBodyOb(); + requestBodyMap.put(t.getKey(), r.composeRequestBody(r, map)); + } components.setRequestBodies(requestBodyMap); } if( componentsObject.getNumHeaderTuple() != 0 ){ Map<String, Header> headerMap = new HashMap<>(); - for( HeaderTuple t : componentsObject.getHeaderTuples() ) - headerMap.put(t.getKey(), HeaderOb.composeHeader(t.getHeaderOb(), map)); - components.setHeaders(headerMap); + HeaderOb h; + for( HeaderTuple t : componentsObject.getHeaderTuples() ) { + h = t.getHeaderOb(); + headerMap.put(t.getKey(), h.composeHeader(h, map)); + } components.setHeaders(headerMap); } if( componentsObject.getNumSecuritySchemeTuple() != 0 ){ Map<String, SecurityScheme> securitySchemeMap = new HashMap<>(); - for( SecuritySchemeTuple t : componentsObject.getSecuritySchemeTuples() ) - securitySchemeMap.put(t.getKey(), SecuritySchemeOb.composeSecurityScheme(t.getSecuritySchemeOb(), map)); - components.setSecuritySchemes(securitySchemeMap); + SecuritySchemeOb s; + for( SecuritySchemeTuple t : componentsObject.getSecuritySchemeTuples() ) { + s = t.getSecuritySchemeOb(); + securitySchemeMap.put(t.getKey(), s.composeSecurityScheme(s, map)); + } components.setSecuritySchemes(securitySchemeMap); } if( componentsObject.getNumLinkTuple() != 0 ){ Map<String, Link> linkMap = new HashMap<>(); - for( LinkTuple t : componentsObject.getLinkTuples() ) - linkMap.put(t.getKey(), LinkOb.composeLink(t.getLinkOb(), map)); - components.setLinks(linkMap); + LinkOb l; + for( LinkTuple t : componentsObject.getLinkTuples() ) { + l = t.getLinkOb(); + linkMap.put(t.getKey(), l.composeLink(l, map)); + } components.setLinks(linkMap); } if( componentsObject.getNumCallbackTuple() != 0 ){ Map<String, Callback> callbackMap = new HashMap<>(); - for( CallbackTuple t : componentsObject.getCallbackTuples() ) - callbackMap.put(t.getKey(), CallbackOb.composeCallback(t.getCallbackOb(), map)); - components.setCallbacks(callbackMap); + CallbackOb c; + for( CallbackTuple t : componentsObject.getCallbackTuples() ) { + c = t.getCallbackOb(); + callbackMap.put(t.getKey(), c.composeCallback(c, map)); + } components.setCallbacks(callbackMap); } if( componentsObject.getNumExtension() != 0 ){ Map<String, Object> extensions = new HashMap<>(); @@ -237,40 +259,49 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co return components; } -public static Path PathItemOb.composePath (PathItemOb pathItem, Map<Object, ASTNode> map){ - Path path = new Path(); + 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( !pathItem.getRef().isEmpty() ) - path.setRef(pathItem.getRef()); - if( !pathItem.getSummary().isEmpty()) - path.setSummary(pathItem.getSummary()); - if( !pathItem.getDescription().isEmpty() ) - path.setDescription(pathItem.getDescription()); - if( pathItem.hasGet() ) - path.setGet( OperationObject.composeOperation(pathItem.getGet().getOperationObject()) ); - if( pathItem.hasPut() ) - path.setPut( OperationObject.composeOperation(pathItem.getPut().getOperationObject()) ); - if( pathItem.hasPost() ) - path.setPost( OperationObject.composeOperation(pathItem.getPost().getOperationObject()) ); - if( pathItem.hasDelete() ) - path.setDelete( OperationObject.composeOperation(pathItem.getDelete().getOperationObject()) ); - if( pathItem.hasOptions() ) - path.setOptions( OperationObject.composeOperation(pathItem.getOptions().getOperationObject()) ); - if( pathItem.hasHead() ) - path.setHead( OperationObject.composeOperation(pathItem.getHead().getOperationObject()) ); - if( pathItem.hasPatch() ) - path.setPatch( OperationObject.composeOperation(pathItem.getPatch().getOperationObject()) ); - if( pathItem.getNumServerObject() != 0 ){ - for( ServerObject s : pathItem.getServerObjects() ) - path.addServer( ServerObject.composeServer(s) ); - } - if( pathItem.getNumParameterObject() != 0 ){ - for( ParameterObject p : pathItem.getParameterObjects() ) - path.addParameter( ParameterObject.composeParameter(p) ); - } - if( pathItem.getNumExtension() != 0 ){ + if( !p.getRef().isEmpty() ) + path.setRef(p.getRef()); + + return path; + } + eq PathItemObject.composePath (PathItemOb 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 : pathItem.getExtensions() ) + for( Extension e : p.getExtensions() ) extensionMap.put(e.getKey(), e.getValue()); path.setExtensions(extensionMap); } @@ -281,7 +312,6 @@ public static Path PathItemOb.composePath (PathItemOb pathItem, Map<Object, ASTN public static Operation OperationObject.composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); - if( operationObject.getNumTag() != 0 ){ for( de.tudresden.inf.st.openapi.ast.Tag t : operationObject.getTags() ) operation.addTag(t.getTag()); @@ -291,43 +321,36 @@ public static Operation OperationObject.composeOperation (OperationObject operat if( !operationObject.getDescription().isEmpty() ) operation.setDescription( operationObject.getDescription() ); if( operationObject.hasExternalDocObject() ) - operation.setExternalDocs( ExternalDocObject.composeExternalDocs(operationObject.getExternalDocObject()) ); + operation.setExternalDocs( ExternalDocObject.composeExternalDocs(operationObject.getExternalDocObject(), map) ); if( !operationObject.getOperationID().isEmpty() ) operation.setOperationId( operationObject.getOperationID() ); - if( operationObject.getNumParameterObject() != 0 ){ - for( ParameterObject p : operationObject.getParameterObjects() ) - operation.addParameter( ParameterObject.composeParameter(p) ); + if( operationObject.getNumParameterOb() != 0 ){ + for( ParameterOb p : operationObject.getParameterObs() ) + operation.addParameter(p.composeParameter(p, map)); } - if( operationObject.hasRequestBodyObject() ) - operation.setRequestBody( RequestBodyObject.composeRequestBody(operationObject.getRequestBodyObject())); + if( operationObject.hasRequestBodyOb() ) + operation.setRequestBody(operationObject.getRequestBodyOb().composeRequestBody(operationObject.getRequestBodyOb(), map)); if( operationObject.getNumResponseTuple() != 0){ Map<String, Response> responseMap = new HashMap<>(); for( ResponseTuple t : operationObject.getResponseTuples() ) - responseMap.put(t.getKey(), ResponseObject.composeResponse(t.getResponseObject())); + responseMap.put(t.getKey(), t.getResponseOb().composeResponse(t.getResponseOb(), map)); operation.setResponses(responseMap); } if( operationObject.getNumCallbackTuple() != 0 ){ Map<String, Callback> callbacks = new HashMap<>(); - for( CallbackTuple t : operationObject.getCallbackTuples() ) { - if( !t.getCallbackObject().getRef().isEmpty() ){ - Callback callback = new Callback(); - callback.setRef(t.getCallbackObject().getRef()); - callbacks.put(t.getKey(), callback); - } - else - callbacks.put(t.getKey(), CallbackObject.composeCallback(t.getCallbackObject())); + for( CallbackTuple t : operationObject.getCallbackTuples() ) + callbacks.put(t.getKey(), t.getCallbackOb().composeCallback(t.getCallbackOb(), map)); operation.setCallbacks(callbacks); } - } if( operationObject.getDeprecatedBoolean() != null ) operation.setDeprecated(operationObject.getDeprecatedBoolean()); if( operationObject.getSecurityRequirementObjects() != null ){ for( SecurityRequirementObject s : operationObject.getSecurityRequirementObjects() ) - operation.addSecurityRequirement( SecurityRequirementObject.composeSecurityRequirement(s) ); + operation.addSecurityRequirement( SecurityRequirementObject.composeSecurityRequirement(s, map) ); } if( operationObject.getNumServerObject() != 0 ){ for( ServerObject s : operationObject.getServerObjects() ) - operation.addServer( ServerObject.composeServer(s) ); + operation.addServer( ServerObject.composeServer(s, map) ); } if( operationObject.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); @@ -356,48 +379,57 @@ public static ExternalDocs ExternalDocObject.composeExternalDocs (ExternalDocObj return externalDocs; } -public static Parameter ParameterOb.composeParameter (ParameterOb parameterObject, Map<Object, ASTNode> map){ + syn Parameter ParameterOb.composeParameter (ParameterOb parameterOb, Map<Object, ASTNode> map); + eq ParameterReference.composeParameter (ParameterOb parameterOb, Map<Object, ASTNode> map) { Parameter parameter = new Parameter(); + ParameterReference p = (ParameterReference) parameterOb; + + if( !p.getRef().isEmpty() ) + parameter.setRef(p.getRef()); - if( !parameterObject.getRef().isEmpty() ) - parameter.setRef(parameterObject.getRef()); - if( !parameterObject.getName().isEmpty() ) - parameter.setName(parameterObject.getName()); - if( !parameterObject.getIn().isEmpty() ) - parameter.setIn(parameterObject.getIn()); - if( parameterObject.getRequired() != null ) - parameter.setRequired(parameterObject.getRequired()); - if( !parameterObject.getDescription().isEmpty() ) - parameter.setDescription(parameterObject.getDescription()); - if( parameterObject.getDeprecatedBoolean() != null ) - parameter.setDeprecated(parameterObject.getDeprecatedBoolean()); - if( !parameterObject.getStyle().isEmpty() ) - parameter.setStyle(parameterObject.getStyle()); - if( parameterObject.getAllowReserved() != null ) - parameter.setAllowReserved(parameterObject.getAllowReserved()); - if( parameterObject.getExplode() != null ) - parameter.setExplode(parameterObject.getExplode()); - if( parameterObject.getSchemaObject() != null ) - parameter.setSchema(SchemaObject.composeSchema(parameterObject.getSchemaObject())); - if( parameterObject.getExample() != null ) - parameter.setExample(parameterObject.getExample()); - if( parameterObject.getNumExampleTuple() != 0 ){ + return parameter; + } + eq ParameterObject.composeParameter (ParameterOb parameterOb, Map<Object, ASTNode> map) { + Parameter parameter = new Parameter(); + ParameterObject p = (ParameterObject) parameterOb; + + if( !p.getName().isEmpty() ) + parameter.setName(p.getName()); + if( !p.getIn().isEmpty() ) + parameter.setIn(p.getIn()); + if( p.getRequired() != null ) + parameter.setRequired(p.getRequired()); + if( !p.getDescription().isEmpty() ) + parameter.setDescription(p.getDescription()); + if( p.getDeprecatedBoolean() != null ) + parameter.setDeprecated(p.getDeprecatedBoolean()); + if( !p.getStyle().isEmpty() ) + parameter.setStyle(p.getStyle()); + if( p.getAllowReserved() != null ) + parameter.setAllowReserved(p.getAllowReserved()); + if( p.getExplode() != null ) + parameter.setExplode(p.getExplode()); + if( p.getSchemaOb() != null ) + parameter.setSchema(p.getSchemaOb().composeSchema(p.getSchemaOb(), map)); + if( p.getExample() != null ) + parameter.setExample(p.getExample()); + if( p.getNumExampleTuple() != 0 ){ Map<String, Example> exampleMap = new HashMap<>(); - for( ExampleTuple t : parameterObject.getExampleTuples() ) - exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); + for( ExampleTuple t : p.getExampleTuples() ) + exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); parameter.setExamples(exampleMap); } - if( parameterObject.getNumContentTuple() != 0 ){ + if( p.getNumContentTuple() != 0 ){ Map<String, MediaType> contentMap = new HashMap<>(); - for( ContentTuple t : parameterObject.getContentTuples() ) - contentMap.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); + for( ContentTuple t : p.getContentTuples() ) + contentMap.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); parameter.setContentMediaTypes(contentMap); } - if( parameterObject.getRequired() != null ) - parameter.setRequired(parameterObject.getRequired()); - if( parameterObject.getNumExtension() != 0 ){ + if( p.getRequired() != null ) + parameter.setRequired(p.getRequired()); + if( p.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : parameterObject.getExtensions() ) + for( Extension e : p.getExtensions() ) extensionMap.put(e.getKey(), e.getValue()); parameter.setExtensions(extensionMap); } @@ -405,42 +437,53 @@ public static Parameter ParameterOb.composeParameter (ParameterOb parameterObjec return parameter; } -public static org.openapi4j.parser.model.v3.RequestBody RequestBodyOb.composeRequestBody (RequestBodyOb requestBodyObject, Map<Object, ASTNode> map){ - org.openapi4j.parser.model.v3.RequestBody requestBody = new org.openapi4j.parser.model.v3.RequestBody(); + syn RequestBody RequestBodyOb.composeRequestBody (RequestBodyOb requestBodyOb, Map<Object, ASTNode> map); + eq RequestBodyReference.composeRequestBody (RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { + RequestBody requestBody = new RequestBody(); + RequestBodyReference r = (RequestBodyReference) requestBodyOb; + + if( !r.getRef().isEmpty() ) + requestBody.setRef(r.getRef()); + + return requestBody; + } + eq RequestBodyObject.composeRequestBody (RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { + RequestBody requestBody = new RequestBody(); + RequestBodyObject r = (RequestBodyObject) requestBodyOb; - if( requestBodyObject.getNumContentTuple() != 0 ){ + if( r.getNumContentTuple() != 0 ){ Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : requestBodyObject.getContentTuples()) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); + for( ContentTuple t : r.getContentTuples()) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); requestBody.setContentMediaTypes(contents); } - if( !requestBodyObject.getDescription().isEmpty() ) - requestBody.setDescription(requestBodyObject.getDescription()); - if( requestBodyObject.getRequired() != null ) - requestBody.setRequired(requestBodyObject.getRequired()); - if( !requestBodyObject.getRef().isEmpty() ) - requestBody.setRef(requestBodyObject.getRef()); + if( !r.getDescription().isEmpty() ) + requestBody.setDescription(r.getDescription()); + if( r.getRequired() != null ) + requestBody.setRequired(r.getRequired()); return requestBody; } public static MediaType MediaTypeObject.composeMediaType (MediaTypeObject mediaTypeObject, Map<Object, ASTNode> map){ MediaType mediaType = new MediaType(); + SchemaOb s; - if( mediaTypeObject.getSchemaObject() != null ) - mediaType.setSchema(SchemaObject.composeSchema(mediaTypeObject.getSchemaObject())); + if( mediaTypeObject.getSchemaOb() != null ){ + s = mediaTypeObject.getSchemaOb(); + mediaType.setSchema(s.composeSchema(s, map));} if( mediaTypeObject.getExample() != null ) mediaType.setExample(mediaTypeObject.getExample()); if( mediaTypeObject.getNumExampleTuple() != 0 ){ Map<String, Example> exampleMap = new HashMap<>(); for( ExampleTuple t : mediaTypeObject.getExampleTuples() ) - exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); + exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); mediaType.setExamples(exampleMap); } if( mediaTypeObject.getNumEncodingTuple() != 0 ){ Map<String, EncodingProperty> encodingMap = new HashMap<>(); for( EncodingTuple t : mediaTypeObject.getEncodingTuples() ) - encodingMap.put(t.getKey(), EncodingObject.composeEncodingProperty(t.getEncodingObject())); + encodingMap.put(t.getKey(), EncodingObject.composeEncodingProperty(t.getEncodingObject(), map)); mediaType.setEncodings(encodingMap); } @@ -449,14 +492,16 @@ public static MediaType MediaTypeObject.composeMediaType (MediaTypeObject mediaT public static EncodingProperty EncodingObject.composeEncodingProperty (EncodingObject encodingObject, Map<Object, ASTNode> map){ EncodingProperty encodingProperty = new EncodingProperty(); + HeaderOb h; if( !encodingObject.getContentType().isEmpty() ) encodingProperty.setContentType( encodingObject.getContentType() ); if( encodingObject.getNumHeaderTuple() != 0 ){ Map<String, Header> headers = new HashMap<>(); - for( HeaderTuple t : encodingObject.getHeaderTuples() ) - headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject())); - encodingProperty.setHeaders(headers); + for( HeaderTuple t : encodingObject.getHeaderTuples() ) { + h = t.getHeaderOb(); + headers.put(t.getKey(), h.composeHeader(h, map)); + } encodingProperty.setHeaders(headers); } if( !encodingObject.getStyle().isEmpty() ) encodingProperty.setStyle(encodingObject.getStyle()); @@ -472,42 +517,65 @@ public static EncodingProperty EncodingObject.composeEncodingProperty (EncodingO return encodingProperty; } -public static Response ResponseOb.composeResponse (ResponseObject responseObject, Map<Object, ASTNode> map){ + syn Response ResponseOb.composeResponse (ResponseOb responseOb, Map<Object, ASTNode> map); + eq ResponseReference.composeResponse (ResponseOb responseOb, Map<Object, ASTNode> map){ + Response response = new Response(); + ResponseReference r = (ResponseReference) responseOb; + + if( !r.getRef().isEmpty() ) + response.setRef(r.getRef()); + + return response; + } + eq ResponseObject.composeResponse (ResponseOb responseOb, Map<Object, ASTNode> map){ Response response = new Response(); + ResponseObject r = (ResponseObject) responseOb; - if( !responseObject.getRef().isEmpty() ) - response.setRef(responseObject.getRef()); - if( !responseObject.getDescription().isEmpty() ) - response.setDescription(responseObject.getDescription()); - if( responseObject.getNumHeaderTuple() != 0 ){ + if( !r.getDescription().isEmpty() ) + response.setDescription(r.getDescription()); + if( r.getNumHeaderTuple() != 0 ){ Map<String, Header> headers = new HashMap<>(); - for( HeaderTuple t : responseObject.getHeaderTuples() ) - headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject())); + for( HeaderTuple t : r.getHeaderTuples() ) + headers.put(t.getKey(), t.getHeaderOb().composeHeader(t.getHeaderOb(), map)); response.setHeaders(headers); } - if( responseObject.getNumContentTuple() != 0 ){ + if( r.getNumContentTuple() != 0 ){ Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : responseObject.getContentTuples() ) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); + for( ContentTuple t : r.getContentTuples() ) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); response.setContentMediaTypes(contents); } - if( responseObject.getNumLinkTuple() != 0 ){ + if( r.getNumLinkTuple() != 0 ){ Map<String, Link> links = new HashMap<>(); - for( LinkTuple t : responseObject.getLinkTuples() ) - links.put(t.getKey(), LinkObject.composeLink(t.getLinkObject())); + for( LinkTuple t : r.getLinkTuples() ) + links.put(t.getKey(), t.getLinkOb().composeLink(t.getLinkOb(), map)); response.setLinks(links); } return response; } -public static Callback CallbackOb.composeCallback (CallbackObject callbackObject, Map<Object, ASTNode> map){ + syn Callback CallbackOb.composeCallback (CallbackOb callbackOb, Map<Object, ASTNode> map); + eq CallbackReference.composeCallback (CallbackOb callbackOb, Map<Object, ASTNode> map) { + Callback callback = new Callback(); + CallbackReference c = (CallbackReference) callbackOb; + + if( !c.getRef().isEmpty() ) + callback.setRef(c.getRef()); + + return callback; + } + eq CallbackObject.composeCallback (CallbackOb callbackOb, Map<Object, ASTNode> map) { Callback callback = new Callback(); + CallbackObject c = (CallbackObject) callbackOb; - if( callbackObject.getNumExpression() != 0 ){ + if( c.getNumExpression() != 0 ){ Map<String, Path> paths = new HashMap<>(); - for( Expression e : callbackObject.getExpressions() ) - paths.put( e.getName(), PathItem.composePath( e.getPathItem() )); + PathItemOb p; + for( Expression e : c.getExpressions() ) { + p = e.getPathItemOb(); + paths.put(e.getName(), p.composePath(p, map)); + } callback.setCallbackPaths(paths); } @@ -535,61 +603,78 @@ public static Example ExampleObject.composeExample (ExampleObject exampleObject, return example; } -public static Link LinkOb.composeLink (LinkObject linkObject, Map<Object, ASTNode> map){ + syn Link LinkOb.composeLink (LinkOb linkOb, Map<Object, ASTNode> map); + eq LinkReference.composeLink (LinkOb linkOb, Map<Object, ASTNode> map){ Link link = new Link(); + LinkReference l = (LinkReference) linkOb; + if( !l.getRef().isEmpty() ) + link.setRef(l.getRef()); - if( !linkObject.getRef().isEmpty() ) - link.setRef(linkObject.getRef()); - if( !linkObject.getOperationRef().isEmpty() ) - link.setOperationRef( linkObject.getOperationRef() ); - if( !linkObject.getOperationID().isEmpty() ) - link.setOperationId( linkObject.getOperationID() ); - if( linkObject.getNumLinkParameterTuple() != 0 ){ + return link; + } + eq LinkObject.composeLink (LinkOb linkOb, Map<Object, ASTNode> map){ + Link link = new Link(); + LinkObject l = (LinkObject) linkOb; + + if( !l.getOperationRef().isEmpty() ) + link.setOperationRef( l.getOperationRef() ); + if( !l.getOperationID().isEmpty() ) + link.setOperationId( l.getOperationID() ); + if( l.getNumLinkParameterTuple() != 0 ){ Map<String, String> parameters = new HashMap<>(); - for( LinkParameterTuple t : linkObject.getLinkParameterTuples() ) + for( LinkParameterTuple t : l.getLinkParameterTuples() ) parameters.put( t.getLinkParameterKey(), t.getLinkParameterValue() ); link.setParameters(parameters); } - if( !linkObject.getDescription().isEmpty() ) - link.setDescription( linkObject.getDescription() ); - if( linkObject.hasServerObject() ) - link.setServer( ServerObject.composeServer(linkObject.getServerObject()) ); + if( !l.getDescription().isEmpty() ) + link.setDescription( l.getDescription() ); + if( l.hasServerObject() ) + link.setServer( ServerObject.composeServer(l.getServerObject(), map) ); return link; } -public static Header HeaderOb.composeHeader (HeaderObject headerObject, Map<Object, ASTNode> map){ + syn Header HeaderOb.composeHeader (HeaderOb headerOb, Map<Object, ASTNode> map); + eq HeaderReference.composeHeader (HeaderOb headerOb, Map<Object, ASTNode> map) { Header header = new Header(); + HeaderReference h = new HeaderReference(); + + if( !h.getRef().isEmpty() ) + header.setRef(h.getRef()); - if( !headerObject.getRef().isEmpty() ) - header.setRef(headerObject.getRef()); - if( headerObject.getRequired() != null ) - header.setRequired(headerObject.getRequired()); - if( !headerObject.getDescription().isEmpty() ) - header.setDescription( headerObject.getDescription() ); - if( !headerObject.getStyle().isEmpty() ) - header.setStyle(headerObject.getStyle()); - if( headerObject.getExplode() != null ) - header.setExplode(headerObject.getExplode()); - if( headerObject.getAllowReserved() != null ) - header.setAllowReserved(headerObject.getAllowReserved()); - if( headerObject.getExample() != null ) - header.setExample(headerObject.getExample()); - if( headerObject.getNumExampleTuple() != 0 ){ + return header; + } + eq HeaderObject.composeHeader (HeaderOb headerOb, Map<Object, ASTNode> map) { + Header header = new Header(); + HeaderObject h = (HeaderObject) headerOb; + + if( h.getRequired() != null ) + header.setRequired(h.getRequired()); + if( !h.getDescription().isEmpty() ) + header.setDescription( h.getDescription() ); + if( !h.getStyle().isEmpty() ) + header.setStyle(h.getStyle()); + if( h.getExplode() != null ) + header.setExplode(h.getExplode()); + if( h.getAllowReserved() != null ) + header.setAllowReserved(h.getAllowReserved()); + if( h.getExample() != null ) + header.setExample(h.getExample()); + if( h.getNumExampleTuple() != 0 ){ Map<String, Example> examples = new HashMap<>(); - for( ExampleTuple t : headerObject.getExampleTuples() ) - examples.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject())); + for( ExampleTuple t : h.getExampleTuples() ) + examples.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject(), map)); header.setExample(examples); } - if( headerObject.getNumContentTuple() != 0 ){ + if( h.getNumContentTuple() != 0 ){ Map<String, MediaType> contents = new HashMap<>(); - for( ContentTuple t : headerObject.getContentTuples() ) - contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject())); + for( ContentTuple t : h.getContentTuples() ) + contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject(), map)); header.setContentMediaTypes(contents); } - if( headerObject.hasSchemaObject() ) - header.setSchema(SchemaObject.composeSchema(headerObject.getSchemaObject())); + if( h.hasSchemaOb() ) + header.setSchema(h.getSchemaOb().composeSchema(h.getSchemaOb(), map)); return header; } @@ -602,7 +687,7 @@ public static org.openapi4j.parser.model.v3.Tag TagObject.composeTag (TagObject if( !tagObject.getDescription().isEmpty() ) tag.setDescription( tagObject.getDescription() ); if( tagObject.hasExternalDocObject() ) - tag.setExternalDocs( ExternalDocObject.composeExternalDocs(tagObject.getExternalDocObject()) ); + tag.setExternalDocs( ExternalDocObject.composeExternalDocs(tagObject.getExternalDocObject(), map) ); if( tagObject.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); for( Extension e : tagObject.getExtensions() ) @@ -613,100 +698,138 @@ public static org.openapi4j.parser.model.v3.Tag TagObject.composeTag (TagObject return tag; } -public static org.openapi4j.parser.model.v3.Schema SchemaOb.composeSchema (SchemaOb schemaOb, Map<Object, ASTNode> map){ + syn org.openapi4j.parser.model.v3.Schema SchemaOb.composeSchema (SchemaOb schemaOb, Map<Object, ASTNode> map); + eq SchemaReference.composeSchema (SchemaOb schemaOb, Map<Object, ASTNode> map){ + org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema(); + SchemaReference s = (SchemaReference) schemaOb; + + if( !s.getRef().isEmpty() ) + schema.setRef(s.getRef()); + + return schema; + } + eq SchemaObject.composeSchema (SchemaOb schemaOb, Map<Object, ASTNode> map){ org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema(); + SchemaObject s = (SchemaObject) schemaOb; - if( !schemaObject.getRef().isEmpty() ) - schema.setRef(schemaObject.getRef()); - if( schemaObject.getAdditionalProperties() != null ) - schema.setAdditionalProperties(composeSchema(schemaObject.getAdditionalProperties())); - if( schemaObject.getAdditionalPropertiesAllowed() != null ) - schema.setAdditionalPropertiesAllowed(schemaObject.getAdditionalPropertiesAllowed()); - if( schemaObject.getDefaultValue() != null ) - schema.setDefault(schemaObject.getDefaultValue()); - if( !schemaObject.getDescription().isEmpty() ) - schema.setDescription(schemaObject.getDescription()); - if( schemaObject.getDeprecatedBoolean() != null ) - schema.setDeprecated(schemaObject.getDeprecatedBoolean()); - if( schemaObject.hasDiscriminatorObject() ) - schema.setDiscriminator(DiscriminatorObject.composeDiscriminator(schemaObject.getDiscriminatorObject())); - if( schemaObject.getNumEnumObj() != 0 ){ - for( EnumObj e : schemaObject.getEnumObjs() ) + if( s.hasAdditionalProperties() ) { + SchemaOb o = s.getAdditionalProperties().getSchemaOb(); + if ( o instanceof SchemaObject ) + schema.setAdditionalProperties(((SchemaObject) o).composeSchema(o, map)); + else + schema.setAdditionalProperties(((SchemaReference) o).composeSchema(o, map)); + } + if( s.getAdditionalPropertiesAllowed() != null ) + schema.setAdditionalPropertiesAllowed(s.getAdditionalPropertiesAllowed()); + if( s.getDefaultValue() != null ) + schema.setDefault(s.getDefaultValue()); + if( !s.getDescription().isEmpty() ) + schema.setDescription(s.getDescription()); + if( s.getDeprecatedBoolean() != null ) + schema.setDeprecated(s.getDeprecatedBoolean()); + if( s.hasDiscriminatorObject() ) + schema.setDiscriminator(DiscriminatorObject.composeDiscriminator(s.getDiscriminatorObject(), map)); + if( s.getNumEnumObj() != 0 ){ + for( EnumObj e : s.getEnumObjs() ) schema.addEnum(e.getEnumOb()); } - if( schemaObject.getExample() != null ) - schema.setExample(schemaObject.getExample()); - if( schemaObject.getExclusiveMaximum() != null ) - schema.setExclusiveMaximum(schemaObject.getExclusiveMaximum()); - if( schemaObject.getExclusiveMinimum() != null ) - schema.setExclusiveMinimum(schemaObject.getExclusiveMinimum()); - if( schemaObject.hasExternalDocObject() ) - schema.setExternalDocs(ExternalDocObject.composeExternalDocs(schemaObject.getExternalDocObject())); - if( !schemaObject.getFormat().isEmpty() ) - schema.setFormat(schemaObject.getFormat()); - if( schemaObject.hasItemsSchema() ) - schema.setItemsSchema(composeSchema(schemaObject.getItemsSchema().getSchemaObject())); - if( schemaObject.getMaximum() != null ) - schema.setMaximum(schemaObject.getMaximum()); - if( schemaObject.getMinimum() != null ) - schema.setMinimum(schemaObject.getMinimum()); - if( schemaObject.getMaxItems() != null ) - schema.setMaxItems(schemaObject.getMaxItems()); - if( schemaObject.getMinItems() != null ) - schema.setMinItems(schemaObject.getMinItems()); - if( schemaObject.getMaxLength() != null ) - schema.setMaxLength(schemaObject.getMaxLength()); - if( schemaObject.getMinLength() != null ) - schema.setMinLength(schemaObject.getMinLength()); - if( schemaObject.getMaxProperties() != null ) - schema.setMaxProperties(schemaObject.getMaxProperties()); - if( schemaObject.getMinProperties() != null ) - schema.setMinProperties(schemaObject.getMinProperties()); - if( schemaObject.getMultipleOf() != null ) - schema.setMultipleOf(schemaObject.getMultipleOf()); - if( schemaObject.hasNotSchema() ) - schema.setNotSchema(composeSchema(schemaObject.getNotSchema().getSchemaObject())); - if( schemaObject.getNullable() != null ) - schema.setNullable(schemaObject.getNullable()); - if( !schemaObject.getPattern().isEmpty() ) - schema.setPattern(schemaObject.getPattern()); - if( schemaObject.getNumPropertyItem() != 0 ){ + if( s.getExample() != null ) + schema.setExample(s.getExample()); + if( s.getExclusiveMaximum() != null ) + schema.setExclusiveMaximum(s.getExclusiveMaximum()); + if( s.getExclusiveMinimum() != null ) + schema.setExclusiveMinimum(s.getExclusiveMinimum()); + if( s.hasExternalDocObject() ) + schema.setExternalDocs(ExternalDocObject.composeExternalDocs(s.getExternalDocObject(), map)); + if( !s.getFormat().isEmpty() ) + schema.setFormat(s.getFormat()); + if( s.hasItemsSchema() ) { + if (s.getItemsSchema().getSchemaOb() instanceof SchemaObject) + schema.setItemsSchema(((SchemaObject) s.getItemsSchema().getSchemaOb()).composeSchema(s.getItemsSchema().getSchemaOb(), map)); + else + schema.setItemsSchema(((SchemaReference) s.getItemsSchema().getSchemaOb()).composeSchema(s.getItemsSchema().getSchemaOb(), map)); + } + if( s.getMaximum() != null ) + schema.setMaximum(s.getMaximum()); + if( s.getMinimum() != null ) + schema.setMinimum(s.getMinimum()); + if( s.getMaxItems() != null ) + schema.setMaxItems(s.getMaxItems()); + if( s.getMinItems() != null ) + schema.setMinItems(s.getMinItems()); + if( s.getMaxLength() != null ) + schema.setMaxLength(s.getMaxLength()); + if( s.getMinLength() != null ) + schema.setMinLength(s.getMinLength()); + if( s.getMaxProperties() != null ) + schema.setMaxProperties(s.getMaxProperties()); + if( s.getMinProperties() != null ) + schema.setMinProperties(s.getMinProperties()); + if( s.getMultipleOf() != null ) + schema.setMultipleOf(s.getMultipleOf()); + if( s.hasNotSchema() ) { + if( s.getNotSchema().getSchemaOb() instanceof SchemaObject ) + schema.setNotSchema(((SchemaObject) s.getNotSchema().getSchemaOb()).composeSchema(s.getNotSchema().getSchemaOb(), map)); + else + schema.setNotSchema(((SchemaReference) s.getNotSchema().getSchemaOb()).composeSchema(s.getNotSchema().getSchemaOb(), map)); + } + if( s.getNullable() != null ) + schema.setNullable(s.getNullable()); + if( !s.getPattern().isEmpty() ) + schema.setPattern(s.getPattern()); + if( s.getNumPropertyItem() != 0 ){ Map<String, org.openapi4j.parser.model.v3.Schema> properties = new HashMap<>(); - for( PropertyItem p : schemaObject.getPropertyItemList() ) - properties.put(p.getName(), composeSchema(p.getSchemaObject())); + for( PropertyItem p : s.getPropertyItemList() ) { + if( p.getSchemaOb() instanceof SchemaObject ) + properties.put(p.getName(), ((SchemaObject) p.getSchemaOb()).composeSchema(p.getSchemaOb(), map)); + else + properties.put(p.getName(), ((SchemaReference) p.getSchemaOb()).composeSchema(p.getSchemaOb(), map)); + } schema.setProperties(properties); } - if( schemaObject.getNumRequiredField() != 0 ){ - for( RequiredField r : schemaObject.getRequiredFields() ) + if( s.getNumRequiredField() != 0 ){ + for( RequiredField r : s.getRequiredFields() ) schema.addRequiredField(r.getValue()); } - if( schemaObject.getNumAllOfSchema() != 0 ){ - for( AllOfSchema a : schemaObject.getAllOfSchemas() ) - schema.addAllOfSchema(composeSchema(a.getSchemaObject())); - } - if( schemaObject.getNumAnyOfSchema() != 0 ){ - for( AnyOfSchema a : schemaObject.getAnyOfSchemas() ) - schema.addAnyOfSchema(composeSchema(a.getSchemaObject())); - } - if( schemaObject.getNumOneOfSchema() != 0 ){ - for( OneOfSchema o : schemaObject.getOneOfSchemas() ) - schema.addOneOfSchema(composeSchema(o.getSchemaObject())); - } - if( schemaObject.getReadOnly() != null ) - schema.setReadOnly(schemaObject.getReadOnly()); - if( schemaObject.getWriteOnly() != null ) - schema.setWriteOnly(schemaObject.getWriteOnly()); - if( !schemaObject.getType().isEmpty() ) - schema.setType(schemaObject.getType()); - if( !schemaObject.getTitle().isEmpty() ) - schema.setTitle(schemaObject.getTitle()); - if( schemaObject.getUniqueItems() != null ) - schema.setUniqueItems(schemaObject.getUniqueItems()); - if( schemaObject.hasXmlObject() ) - schema.setXml(XmlObject.composeXml(schemaObject.getXmlObject())); - if( schemaObject.getNumExtension() != 0 ){ + if( s.getNumAllOfSchema() != 0 ){ + for( AllOfSchema a : s.getAllOfSchemas() ) { + if( a.getSchemaOb() instanceof SchemaObject ) + schema.addAllOfSchema(((SchemaObject) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + else + schema.addAllOfSchema(((SchemaReference) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + } + } + if( s.getNumAnyOfSchema() != 0 ){ + for( AnyOfSchema a : s.getAnyOfSchemas() ) { + if( a.getSchemaOb() instanceof SchemaObject ) + schema.addAnyOfSchema(((SchemaObject) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + else + schema.addAnyOfSchema(((SchemaReference) a.getSchemaOb()).composeSchema(a.getSchemaOb(), map)); + } + } + if( s.getNumOneOfSchema() != 0 ){ + for( OneOfSchema o : s.getOneOfSchemas() ) { + if( o.getSchemaOb() instanceof SchemaObject ) + schema.addOneOfSchema(((SchemaObject) o.getSchemaOb()).composeSchema(o.getSchemaOb(), map)); + else + schema.addOneOfSchema(((SchemaReference) o.getSchemaOb()).composeSchema(o.getSchemaOb(), map)); + } + } + if( s.getReadOnly() != null ) + schema.setReadOnly(s.getReadOnly()); + if( s.getWriteOnly() != null ) + schema.setWriteOnly(s.getWriteOnly()); + if( !s.getType().isEmpty() ) + schema.setType(s.getType()); + if( !s.getTitle().isEmpty() ) + schema.setTitle(s.getTitle()); + if( s.getUniqueItems() != null ) + schema.setUniqueItems(s.getUniqueItems()); + if( s.hasXmlObject() ) + schema.setXml(XmlObject.composeXml(s.getXmlObject(), map)); + if( s.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : schemaObject.getExtensions() ) + for( Extension e : s.getExtensions() ) extensionMap.put(e.getKey(), e.getValue()); schema.setExtensions(extensionMap); } @@ -729,7 +852,7 @@ public static Discriminator DiscriminatorObject.composeDiscriminator (Discrimina return discriminator; } -public static Xml XmlObject.composeXml (XmlObject xmlObject) { +public static Xml XmlObject.composeXml (XmlObject xmlObject, Map<Object, ASTNode> map) { Xml xml = new Xml(); if( !xmlObject.getName().isEmpty() ) @@ -746,28 +869,39 @@ public static Xml XmlObject.composeXml (XmlObject xmlObject) { return xml; } -public static SecurityScheme SecuritySchemeOb.composeSecurityScheme (SecuritySchemeObject securitySchemeObject, Map<Object, ASTNode> map){ + syn SecurityScheme SecuritySchemeOb.composeSecurityScheme (SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map); + eq SecuritySchemeReference.composeSecurityScheme (SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map){ SecurityScheme securityScheme = new SecurityScheme(); + SecuritySchemeReference s = (SecuritySchemeReference) securitySchemeOb; + + if( !s.getRef().isEmpty() ) + securityScheme.setRef(s.getRef()); - if( !securitySchemeObject.getType().isEmpty() ) - securityScheme.setType(securitySchemeObject.getType()); - if( !securitySchemeObject.getName().isEmpty() ) - securityScheme.setName(securitySchemeObject.getName()); - if( !securitySchemeObject.getIn().isEmpty() ) - securityScheme.setIn(securitySchemeObject.getIn()); - if( !securitySchemeObject.getScheme().isEmpty() ) - securityScheme.setScheme(securitySchemeObject.getScheme()); - if( !securitySchemeObject.getOpenIdConnectUrl().isEmpty() ) - securityScheme.setOpenIdConnectUrl(securitySchemeObject.getOpenIdConnectUrl()); - if( securitySchemeObject.getOAuthFlowsObject() != null ) - securityScheme.setFlows(OAuthFlowsObject.composeOAuthFlows(securitySchemeObject.getOAuthFlowsObject())); - if( !securitySchemeObject.getDescription().isEmpty() ) - securityScheme.setDescription( securitySchemeObject.getDescription() ); - if( !securitySchemeObject.getBearerFormat().isEmpty() ) - securityScheme.setBearerFormat( securitySchemeObject.getBearerFormat() ); - if( securitySchemeObject.getNumExtension() != 0 ){ + return securityScheme; + } + eq SecuritySchemeObject.composeSecurityScheme (SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map){ + SecurityScheme securityScheme = new SecurityScheme(); + SecuritySchemeObject s = (SecuritySchemeObject) securitySchemeOb; + + if( !s.getType().isEmpty() ) + securityScheme.setType(s.getType()); + if( !s.getName().isEmpty() ) + securityScheme.setName(s.getName()); + if( !s.getIn().isEmpty() ) + securityScheme.setIn(s.getIn()); + if( !s.getScheme().isEmpty() ) + securityScheme.setScheme(s.getScheme()); + if( !s.getOpenIdConnectUrl().isEmpty() ) + securityScheme.setOpenIdConnectUrl(s.getOpenIdConnectUrl()); + if( s.getOAuthFlowsObject() != null ) + securityScheme.setFlows(OAuthFlowsObject.composeOAuthFlows(s.getOAuthFlowsObject(), map)); + if( !s.getDescription().isEmpty() ) + securityScheme.setDescription( s.getDescription() ); + if( !s.getBearerFormat().isEmpty() ) + securityScheme.setBearerFormat( s.getBearerFormat() ); + if( s.getNumExtension() != 0 ){ Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : securitySchemeObject.getExtensions() ) + for( Extension e : s.getExtensions() ) extensionMap.put(e.getKey(), e.getValue()); securityScheme.setExtensions(extensionMap); } @@ -779,18 +913,13 @@ public static OAuthFlows OAuthFlowsObject.composeOAuthFlows (OAuthFlowsObject oA OAuthFlows oAuthFlows = new OAuthFlows(); if( oAuthFlowsObject.hasImplicit() ) - oAuthFlows.setImplicit( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getImplicit().getOAuthFlowObject()) ); - if( oAuthFlowsObject.hasPassword() ){ - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getAuthorizationUrl() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getConfiguration() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getTokenUrl() ); - System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getRefreshUrl() ); - oAuthFlows.setPassword( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getPassword().getOAuthFlowObject()) ); - } + oAuthFlows.setImplicit( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getImplicit().getOAuthFlowObject(), map) ); + if( oAuthFlowsObject.hasPassword() ) + oAuthFlows.setPassword( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getPassword().getOAuthFlowObject(), map) ); if( oAuthFlowsObject.hasClientCredentials() ) - oAuthFlows.setClientCredentials( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getClientCredentials().getOAuthFlowObject()) ); + oAuthFlows.setClientCredentials( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getClientCredentials().getOAuthFlowObject(), map) ); if( oAuthFlowsObject.hasAuthorizationCode() ) - oAuthFlows.setAuthorizationCode( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getAuthorizationCode().getOAuthFlowObject()) ); + oAuthFlows.setAuthorizationCode( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getAuthorizationCode().getOAuthFlowObject(), map) ); return oAuthFlows; } diff --git a/src/main/jastadd/OpenAPISpecification.ast b/src/main/jastadd/OpenAPISpecification.ast index 6d2a1b739aade8516afbdfb49f71194fc865be59..1d9ac86b3091743734ec1ea701768adf17cb237b 100644 --- a/src/main/jastadd/OpenAPISpecification.ast +++ b/src/main/jastadd/OpenAPISpecification.ast @@ -38,17 +38,18 @@ PathsObject ::= <Ref> PathItemOb; abstract PathItemOb; PathItemReference : PathItemOb ::= <Ref> <PathItemOb:PathItemOb>; PathItemObject : PathItemOb ::= <Summary> <Description> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; -Get ::= OperationObject; -Put ::= OperationObject; -Post ::= OperationObject; -Delete ::= OperationObject; -Options ::= OperationObject; -Head ::= OperationObject; -Patch ::= OperationObject; -Trace ::= OperationObject; //Operation Object -OperationObject ::= Tag* <Summary> <Description> [ExternalDocObject] <OperationID> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; +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>; Tag ::= <Tag:String>; //External Documentation Object @@ -104,7 +105,7 @@ TagObject ::= <Name> <Description> [ExternalDocObject] Extension*; //Schema Object abstract SchemaOb; SchemaReference : SchemaOb ::= <Ref> <SchemaOb:SchemaOb>; -SchemaObject : SchemaOb ::= <AdditionalProperties:SchemaOb> <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*; +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>; ItemsSchema ::= SchemaOb; diff --git a/src/main/jastadd/Parser.jrag b/src/main/jastadd/Parser.jrag index 41ac81aaf825c7323014e6ef522783e1f3d59492..f432f5a70b06ccaff575b893c95b2d95de063f0a 100644 --- a/src/main/jastadd/Parser.jrag +++ b/src/main/jastadd/Parser.jrag @@ -143,67 +143,40 @@ public static ComponentsObject ComponentsObject.parseComponents(Components compo ComponentsObject componentsObject = new ComponentsObject(); if( components.getSchemas() != null ){ - for( String key : components.getSchemas().keySet() ){ - SchemaTuple schemaTuple = new SchemaTuple(); - schemaTuple.setKey(key); - schemaTuple.setSchemaOb(SchemaOb.parseSchema(components.getSchema(key), context, map)); - } + for( String key : components.getSchemas().keySet() ) + componentsObject.addSchemaTuple(new SchemaTuple(key, SchemaOb.parseSchema(components.getSchema(key), context, map))); } if( components.getResponses() != null ){ - for( String key : components.getResponses().keySet() ){ - ResponseTuple responseTuple = new ResponseTuple(); - responseTuple.setKey(key); - responseTuple.setResponseOb(ResponseOb.parseResponse(components.getResponse(key), context, map)); - } + for( String key : components.getResponses().keySet() ) + componentsObject.addResponseTuple(new ResponseTuple(key, ResponseOb.parseResponse(components.getResponse(key), context, map))); } if( components.getParameters() != null ){ - for( String key : components.getParameters().keySet() ){ - ParameterTuple parameterTuple = new ParameterTuple(); - parameterTuple.setKey(key); - parameterTuple.setParameterOb(ParameterOb.parseParameter(components.getParameter(key), context, map)); - } + for( String key : components.getParameters().keySet() ) + componentsObject.addParameterTuple(new ParameterTuple(key, ParameterOb.parseParameter(components.getParameter(key), context, map))); } if( components.getExamples() != null ){ - for( String key : components.getExamples().keySet() ){ - ExampleTuple exampleTuple = new ExampleTuple(); - exampleTuple.setKey(key); - exampleTuple.setExampleObject(ExampleObject.parseExample(components.getExample(key), context, map)); - } + for( String key : components.getExamples().keySet() ) + componentsObject.addExampleTuple(new ExampleTuple(key, ExampleObject.parseExample(components.getExample(key), context, map))); } if( components.getRequestBodies() != null ){ - for( String key : components.getRequestBodies().keySet() ){ - RequestBodyTuple requestBodyTuple = new RequestBodyTuple(); - requestBodyTuple.setKey(key); - requestBodyTuple.setRequestBodyOb(RequestBodyOb.parseRequestBody(components.getRequestBody(key), context, map)); - } + for( String key : components.getRequestBodies().keySet() ) + componentsObject.addRequestBodyTuple(new RequestBodyTuple(key, RequestBodyOb.parseRequestBody(components.getRequestBody(key), context, map))); } if( components.getHeaders() != null ){ - for( String key : components.getHeaders().keySet() ){ - HeaderTuple headerTuple = new HeaderTuple(); - headerTuple.setKey(key); - headerTuple.setHeaderOb(HeaderOb.parseHeader(components.getHeader(key), context, map)); - } + for( String key : components.getHeaders().keySet() ) + componentsObject.addHeaderTuple(new HeaderTuple(key, HeaderOb.parseHeader(components.getHeader(key), context, map))); } if( components.getSecuritySchemes() != null ){ - for( String key : components.getSecuritySchemes().keySet() ){ - SecuritySchemeTuple securitySchemeTuple = new SecuritySchemeTuple(); - securitySchemeTuple.setKey(key); - securitySchemeTuple.setSecuritySchemeOb(SecuritySchemeOb.parseSecurityScheme(components.getSecurityScheme(key), context, map)); - } + for( String key : components.getSecuritySchemes().keySet() ) + componentsObject.addSecuritySchemeTuple(new SecuritySchemeTuple(key, SecuritySchemeOb.parseSecurityScheme(components.getSecurityScheme(key), context, map))); } if( components.getLinks() != null ){ - for( String key : components.getLinks().keySet() ){ - LinkTuple linkTuple = new LinkTuple(); - linkTuple.setKey(key); - linkTuple.setLinkOb(LinkOb.parseLink(components.getLink(key), context, map)); - } + for( String key : components.getLinks().keySet() ) + componentsObject.addLinkTuple(new LinkTuple(key, LinkOb.parseLink(components.getLink(key), context, map))); } if( components.getCallbacks() != null ){ - for( String key : components.getCallbacks().keySet() ){ - CallbackTuple callbackTuple = new CallbackTuple(); - callbackTuple.setKey(key); - callbackTuple.setCallbackOb(CallbackOb.parseCallback(components.getCallback(key), context, map)); - } + for( String key : components.getCallbacks().keySet() ) + componentsObject.addCallbackTuple(new CallbackTuple(key, CallbackOb.parseCallback(components.getCallback(key), context, map))); } if( components.getExtensions() != null ){ for( String key : components.getExtensions().keySet() ) @@ -660,7 +633,7 @@ public static SchemaOb SchemaOb.parseSchema (org.openapi4j.parser.model.v3.Schem return s; } else { if( schema.getAdditionalProperties() != null ) - schemaObject.setAdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map)); + schemaObject.setAdditionalProperties(new AdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map))); if( schema.getAdditionalProperties() == null && schema.getAdditionalPropertiesAllowed() != null ) schemaObject.setAdditionalPropertiesAllowed(schema.getAdditionalPropertiesAllowed()); if( schema.getDefault() != null ) @@ -772,118 +745,6 @@ public static SchemaOb SchemaOb.parseSchema (org.openapi4j.parser.model.v3.Schem } } - if( schema.getAdditionalProperties() != null ) - schemaObject.setAdditionalProperties(parseSchema(schema.getAdditionalProperties(), context, map)); - if( schema.getAdditionalProperties() == null && schema.getAdditionalPropertiesAllowed() != null ) - schemaObject.setAdditionalPropertiesAllowed(schema.getAdditionalPropertiesAllowed()); - if( schema.getDefault() != null ) - schemaObject.setDefaultValue(schema.getDefault()); - if( schema.getDescription() != null ) - schemaObject.setDescription(schema.getDescription()); - if( schema.getDeprecated() != null ) - schemaObject.setDeprecatedBoolean(schema.getDeprecated()); - if( schema.getDiscriminator() != null ) - schemaObject.setDiscriminatorObject(DiscriminatorObject.parseDiscriminator(schema.getDiscriminator(), map)); - if( schema.getEnums() != null ){ - for( Object o : schema.getEnums() ){ - EnumObj enumObj = new EnumObj(); - enumObj.setEnumOb(o); - schemaObject.addEnumObj(enumObj); - } - } - if( schema.getExample() != null ) - schemaObject.setExample(schema.getExample()); - if( schema.getExclusiveMaximum() != null ) - schemaObject.setExclusiveMaximum(schema.getExclusiveMaximum()); - if( schema.getExclusiveMinimum() != null ) - schemaObject.setExclusiveMinimum(schema.getExclusiveMinimum()); - if( schema.getExternalDocs() != null ) - schemaObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(schema.getExternalDocs(), map)); - if( schema.getFormat() != null ) - schemaObject.setFormat(schema.getFormat()); - if( schema.getItemsSchema() != null ){ - ItemsSchema itemsSchema = new ItemsSchema(); - itemsSchema.setSchemaOb(parseSchema(schema.getItemsSchema(), context, map)); - schemaObject.setItemsSchema(itemsSchema); - } - if( schema.getMaximum() != null ) - schemaObject.setMaximum(schema.getMaximum()); - if( schema.getMinimum() != null ) - schemaObject.setMinimum(schema.getMinimum()); - if( schema.getMaxItems() != null ) - schemaObject.setMaxItems(schema.getMaxItems()); - if( schema.getMinItems() != null ) - schemaObject.setMinItems(schema.getMinItems()); - if( schema.getMaxLength() != null ) - schemaObject.setMaxLength(schema.getMaxLength()); - if( schema.getMinLength() != null ) - schemaObject.setMinLength(schema.getMinLength()); - if( schema.getMaxProperties() != null ) - schemaObject.setMaxProperties(schema.getMaxProperties()); - if( schema.getMinProperties() != null ) - schemaObject.setMinProperties(schema.getMinProperties()); - if( schema.getMultipleOf() != null ) - schemaObject.setMultipleOf(schema.getMultipleOf()); - if( schema.getNotSchema() != null ){ - NotSchema notSchema = new NotSchema(); - notSchema.setSchemaOb(parseSchema(schema.getNotSchema(), context, map)); - schemaObject.setNotSchema(notSchema); - } - if( schema.getNullable() != null ) - schemaObject.setNullable(schema.getNullable()); - if( schema.getPattern() != null ) - schemaObject.setPattern(schema.getPattern()); - if( schema.getProperties() != null ){ - for( String key : schema.getProperties().keySet() ){ - PropertyItem propertyItem = new PropertyItem(); - schemaObject.addPropertyItem(new PropertyItem(key, parseSchema(schema.getProperty(key), context, map))); - } - } - if( schema.getRequiredFields() != null ){ - for( String s : schema.getRequiredFields() ){ - RequiredField requiredField = new RequiredField(); - requiredField.setValue(s); - schemaObject.addRequiredField(requiredField); - } - } - if( schema.getAllOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAllOfSchemas()){ - AllOfSchema allOfSchema = new AllOfSchema(); - allOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addAllOfSchema(allOfSchema); - } - } - if( schema.getAnyOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAnyOfSchemas()){ - AnyOfSchema anyOfSchema = new AnyOfSchema(); - anyOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addAnyOfSchema(anyOfSchema); - } - } - if( schema.getOneOfSchemas() != null ){ - for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getOneOfSchemas()){ - OneOfSchema oneOfSchema = new OneOfSchema(); - oneOfSchema.setSchemaOb(parseSchema(schemaItem, context, map)); - schemaObject.addOneOfSchema(oneOfSchema); - } - } - if( schema.getReadOnly() != null ) - schemaObject.setReadOnly(schema.getReadOnly()); - if( schema.getWriteOnly() != null ) - schemaObject.setWriteOnly(schema.getWriteOnly()); - if( schema.getType() != null ) - schemaObject.setType(schema.getType()); - if( schema.getTitle() != null ) - schemaObject.setTitle(schema.getTitle()); - if( schema.getUniqueItems() != null ) - schemaObject.setUniqueItems(schema.getUniqueItems()); - if( schema.getXml() != null ) - schemaObject.setXmlObject(XmlObject.parseXml(schema.getXml(), map)); - if( schema.getExtensions() != null ){ - for( String key : schema.getExtensions().keySet() ) - schemaObject.addExtension(new Extension(key, schema.getExtensions().get(key))); - } - map.put(schema, schemaObject); return schemaObject; } diff --git a/src/main/jastadd/RandomRequestGenerator.jadd b/src/main/jastadd/RandomRequestGenerator.jrag similarity index 58% rename from src/main/jastadd/RandomRequestGenerator.jadd rename to src/main/jastadd/RandomRequestGenerator.jrag index 174e779d5241cba42ef581a8aac068d45e1e5b06..d2b10bd66d4df4167cb341e82d0219c16517bf9d 100644 --- a/src/main/jastadd/RandomRequestGenerator.jadd +++ b/src/main/jastadd/RandomRequestGenerator.jrag @@ -17,30 +17,33 @@ aspect RandomRequestGenerator { */ + //coll Set<MappingTuple> OpenAPIObject.getRandomUrl() [new HashSet<>()]; + // MappingTuple contributes this when generateRequests() to OpenAPIObject.getRandomUrl(); -/* - public void OpenAPIObject.generateRequests() throws Exception { + //inh MappingTuple + + public String OpenAPIObject.generateRequests() throws Exception { String baseUrl = this.getServerObject(0).getUrl(); for( PathsObject p : this.getPathsObjects() ) p.sendRandomRequests(baseUrl); - + return ""; } public void PathsObject.sendRandomRequests(String baseUrl) throws Exception { - if( this.getPathItem().hasGet() ){ + if( this.getPathItemOb().pathItemObject().hasGet() ){ IntStream.range(0, 1).forEach( i -> { try { - this.getPathItem().getGet().getOperationObject().sendRandomGET(baseUrl+this.getRef()); + this.getPathItemOb().pathItemObject().getGet().getOperationObject().sendRandomGET(baseUrl+this.getRef()); } catch (Exception e) { e.printStackTrace(); } }); } - if( this.getPathItem().hasPost() ){ + if( this.getPathItemOb().pathItemObject().hasPost() ){ IntStream.range(0, 1).forEach( i -> { try { - this.getPathItem().getPost().getOperationObject().sendRandomPOST(baseUrl+this.getRef()); + this.getPathItemOb().pathItemObject().getPost().getOperationObject().sendRandomPOST(baseUrl+this.getRef()); } catch (Exception e) { e.printStackTrace(); } @@ -50,36 +53,38 @@ aspect RandomRequestGenerator { public void OperationObject.sendRandomGET(String targetUrl) throws Exception { Random rand = new Random(); - for( ParameterObject p : this.getParameterObjects() ){ + for( ParameterOb o : this.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); if( p.getIn().equals("path") ){ String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1); - if( p.getSchemaObject().getType().equals("string") ) - targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, p.getSchemaObject().getEnumObjs())); - else if( p.getSchemaObject().getType().equals("integer") ) + if( s.getType().equals("string") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, s.getEnumObjs())); + else if( s.getType().equals("integer") ) targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10 // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1 )); } else if( p.getIn().equals("query") ){ - if( p.getSchemaObject().getType().equals("string") ) - targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, p.getSchemaObject().getEnumObjs()); - else if( p.getSchemaObject().getType().equals("integer") ) + if( s.getType().equals("string") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, s.getEnumObjs()); + else if( s.getType().equals("integer") ) targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 - else if( p.getSchemaObject().getType().equals("array") ){ - if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("string") ){ - for( EnumObj e : p.getSchemaObject().getItemsSchema().getSchemaObject().getEnumObjs() ) + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + else if( s.getType().equals("array") ){ + if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string") ){ + for( EnumObj e : s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs() ) targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl; } - else if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("integer") ){ + else if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer") ){ for( int i = 0 ; i < 5 ; i++ ) targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 } } @@ -101,36 +106,38 @@ aspect RandomRequestGenerator { public void OperationObject.sendRandomPOST(String targetUrl) throws Exception { Random rand = new Random(); - for( ParameterObject p : this.getParameterObjects() ){ + for( ParameterOb o : this.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); if( p.getIn().equals("path") ){ String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1); - if( p.getSchemaObject().getType().equals("string") ) - targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, p.getSchemaObject().getEnumObjs())); - else if( p.getSchemaObject().getType().equals("integer") ) + if( s.getType().equals("string") ) + targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, s.getEnumObjs())); + else if( s.getType().equals("integer") ) targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10 // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1 )); } else if( p.getIn().equals("query") ){ - if( p.getSchemaObject().getType().equals("string") ) - targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, p.getSchemaObject().getEnumObjs()); - else if( p.getSchemaObject().getType().equals("integer") ) + if( s.getType().equals("string") ) + targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, s.getEnumObjs()); + else if( s.getType().equals("integer") ) targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 - else if( p.getSchemaObject().getType().equals("array") ){ - if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("string") ){ - for( EnumObj e : p.getSchemaObject().getItemsSchema().getSchemaObject().getEnumObjs() ) + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 + else if( s.getType().equals("array") ){ + if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string") ){ + for( EnumObj e : s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs() ) targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl; } - else if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("integer") ){ + else if( s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer") ){ for( int i = 0 ; i < 5 ; i++ ) targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt( rand, - -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1, - 10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 + -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1, + 10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1 } } @@ -172,6 +179,4 @@ aspect RandomRequestGenerator { return String.valueOf(rand.nextInt(maximum)); return String.valueOf(rand.nextInt()); } - - */ } \ No newline at end of file diff --git a/src/main/jastadd/ReferenceGet.jrag b/src/main/jastadd/ReferenceGet.jrag new file mode 100644 index 0000000000000000000000000000000000000000..32e49e785c48dd721020c182465a00d668b20ccf --- /dev/null +++ b/src/main/jastadd/ReferenceGet.jrag @@ -0,0 +1,31 @@ +aspect ReferenceGet { + + 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(); + } + + +} \ 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 9a5fbb8eace7466a0e5e0e1b3385360db075217a..1a91ba268d95cf1897305f4f56d72babe1ff1b62 100644 --- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java +++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java @@ -52,15 +52,8 @@ public class OpenAPIMain { System.out.println("Loading expression DSL file '" + file + "'."); openApi = OpenAPIObject.parseOpenAPI(api); - if( file.equals("petstore-v2.yaml") ){ - Schema s = api.getPaths().get("/pet").getPost().getResponse("200").getContentMediaType("application/xml").getSchema(); - System.out.println(api.getPaths().get("/pet").getPost().getResponse("200").getContentMediaType("application/xml").getSchema().getRef()); - System.out.println(s.getReference(api.getContext()).getMappedContent(Schema.class).getTitle()); - System.out.println(s.getReference(api.getContext()).getMappedContent(Schema.class)); - //System.out.println(s.getReference(new OAI3Context(new URL(s.getRef()))).getMappedContent(Schema.class).getTitle()); - - //System.out.println(api.getPaths().get("/pet").getPost().getResponse("'200'").getContentMediaType("application/xml").getSchema().isRef()); - } + api3 = OpenAPIObject.composeOpenAPI(openApi); + openApi.generateRequests(); } diff --git a/src/test/java/openapi/OpenAPIMain_test.java b/src/test/java/openapi/OpenAPIMain_test.java index 76c7244823669f936af44c5bb6f57372545ec75f..6a4347fc6eb38eb89d352c129eb0f0b2dd17f863 100644 --- a/src/test/java/openapi/OpenAPIMain_test.java +++ b/src/test/java/openapi/OpenAPIMain_test.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.flipkart.zjsonpatch.JsonDiff; import de.tudresden.inf.st.openapi.ast.*; import org.junit.jupiter.api.Assertions; +import org.openapi4j.core.exception.DecodeException; import org.openapi4j.core.exception.EncodeException; import org.openapi4j.core.exception.ResolutionException; import org.openapi4j.core.validation.ValidationException; @@ -33,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.*; public class OpenAPIMain_test { @Test - public void test() throws IOException, ResolutionException, ValidationException, EncodeException { + public void test() throws IOException, ResolutionException, ValidationException, EncodeException, DecodeException { OpenAPIObject openApi; OpenApi3 api3; ValidationResults results; @@ -85,7 +86,6 @@ public class OpenAPIMain_test { } // clean all generated jsons - contents = genDirectory.listFiles(); if (contents != null) { for (File file : contents)