diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin index a499544384f3abbdc40b9561ceefff3753b3016b..aaba02d75fe31398597c121cc0b19bc6e52f995e 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 59ea3d89546ac9cc38d3a8072cdddbd5f9c35126..d16cb354f0f9f5cc5ec53b3e735701650262b67e 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 f30fa9596b32845baa38429dc3994ec8e2dd15d5..cf965ac5d49fff3e8cab66b14a974d16d26a6175 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 21d91eace8079df466ca307e4dcde4cd7b8f22c1..cb391c8e73b37df48baf1fa11665be1ffaf20562 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 81b32a3cf37a2a7cfd402c3d514832dea26b8ac5..d6264f7a12c94e41f3c7cc034481fa20516ff28c 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 a7e0e4e7e8ae9d7ee1345318ebc2f6c7f8bcefd6..b99b7450fdac43df568d510d40d3a3e85c37dd03 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 efcc0bb0aae97a68b965ff0ecccce97d66c979cc..ac96b278f1224cd2b9fa222d23da6ba6b97c6e23 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 b01e4c9381f02895d9d91919b447a4a3c89a7bf3..e95653f3358b7b4b9e46a740af5a8ffac2a73827 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 5908545b1ffb6056bb1699e06e1fefed16243906..c65acd9a0389574a56351e8b66ec2ac9e182f513 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 5074092233a6914190b42f834c58c8e3b895b6a1..bd0780680a6198187999ff55adcdada324b0b51e 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 abae77c242d23ef8694fa9577f49f8353d247ba2..aa618c01456960dec5361e8ee8f6bdc57662b1c5 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/ASTNode$1.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$1.class index 5e1fbb4a776c89d9fabfa648d956fccd79af499f..25900144f8979ce2015de084c710d107396b0f91 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$1.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$1.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class index 311f3b9c7938b78d0763dedb4f0c2e0edf67c016..0f4444b4db71aaed88c627f2cf651de26fc36976 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode$2.class differ diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.class index 48ae3e244a16d4f7eda03a61f45b99951758cdc3..a8c43ee2b3cf3e3c717bf384118451797e982bee 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNode.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 index 6174300b7919c6de937f1d509b8951196f9038a6..ed962ef583327fd7e538e079240f85a9c06bac19 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation$Kind.class 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.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.class index 3f1b78730828169c64c7d190a3f127af4d89dde9..ea545b03488957fc53e778a9c07c373591f58c35 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.class 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 index 8767e0986079f90f0e3dcefb2e0428ceb03b8a15..3b861aca09e01a9a66e5b506ff24ec1fc8b7f4ad 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircleState.class 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 index e6a6e5982e4a729ef0387a2107dac15054c60eff..f869b07f299cce06a27995277a154c3a6b285410 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$CircularValue.class 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 index cc3876bfb3c8b85c2ec98b731cf2ff106b9b6ba7..8a1a82a9d966f5ee5b4a490ab831e2288d407794 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState$Cycle.class 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 index 0befc72dd95a63482ef1ca0ea232f4dea0946006..aea6604afe290baa1980065fe59ff4b8c598aec0 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ASTState.class 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/AdditionalProperties.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AdditionalProperties.class index 065df7b7ffcff60917b4b74774b4ba97c41ee3dd..264d393ad55589deb05e635ab94e81f3f404512f 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AdditionalProperties.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AdditionalProperties.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 index 5e925f51f878c74a554d9b2edb995a35ad33f622..1dc2be15765f85b7b476600f04844f8a077fd243 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AllOfSchema.class 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 index 1523089899da17e3d906bba97e6cea6cc7e037e4..c94338131175ad0de462de2cd5e93714052bd6df 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AnyOfSchema.class 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 index ebac92482c9179070b16dedc13d012e1979d23bc..a2f7efc5ad636ce99733afb1901e8ca56e9d0fab 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AttributeValue.class 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 index 9ceba40b2469a0bf017f5a1e93211d89c86c051a..b6929d53382fa2e7cb085c3ffd0bf33b8f5d17f8 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/AuthorizationCode.class 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 index 9d3d5265292e9a45e5cb57fa8662ccb8e33e7dc9..206f53e1bc1418661db6318f77dfc048558bedf8 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackOb.class 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 index b6edf8bceb3896a46d9ada0d2978d46e1958ce72..0efdd1cc1560cdc966d10c9958e0b1460b32d5d2 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackObject.class 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 index fe132c94c31190af0a39a07332a06ede9f9b1ae9..5bb40c24a1927eb8dbb4ef0187a41bd7e466fccf 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackReference.class 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 index 6baa683417f96c1f11d1cd37f816976ea7dd8a95..64c2be6a46a4e3521b14c82dbc565604bd27ca9a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/CallbackTuple.class 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 index b6c0ce9e44ea69a74f3b5e7d0378ccf67ddffe50..2bdece9501b18dc54fe5c0729a6954c0a0e1b802 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ClientCredentials.class 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 index 8c38d5ba1e6e464009869f02329fb2b769bf4692..8d557fe497bb599264fec840fb91aa5fd8ff035d 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ComponentsObject.class 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 index 1ec670e4c50d0b588b1841ab6fb020ad4e30380e..2d5a6b3934dbc93e60ef16045b82a4fb56f1a443 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContactObject.class 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 index 69a60b96bfe44dd47c7de52721ef5632ca49e515..4ec651a3ab59ae2cd1fde85b106eefbb73dc8df8 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ContentTuple.class 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 index 2b80a03b34d05b692f88091e05647c8b8fe491b2..399c7420f49acd9c9fbdd8e7ed3835733394f334 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Delete.class 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 index f5e8bdb4d0f8f6f43745036d5e9e27ba2b6944a4..456da48a0617c2d8155c28217b71e38184d947d9 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.class 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 index 4989da0795a8e0c7b37ab5b51179185e18df1352..fcb23a013a9708b1627fafd84dab4477ca7ba1c9 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingObject.class 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 index d2611a18ac60bd0c20b148b1086fc3d99a9b77aa..1e00872b5e222ac77272092b0e7d42e925795bca 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EncodingTuple.class 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 index 3420fe4b532c0b0ffa02156d77e137f51c285d92..0123e617071c00e77c20b2f8ab285a1905736506 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Enum.class 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 index 115f9ea4c64240bf5363d7775bff8cf6af9109fb..2587342a8a8c408cc917732bc2c464232512876d 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/EnumObj.class 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 index 659351d7e01a4ec979a2b48366116e7bbc58978c..bfc252177e622221f6769435e43c1dd0126e8482 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleObject.class 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 index 1f882a77cee7eb20ecf3d2a6fd6c1f03f5291d56..0f49588f8af514765455bedb187ca03f840ea30f 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExampleTuple.class 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 index b310022591c4653aeee9b6bcdc54e0944262d033..0f6ef228daa041d9788dd31365ac626c92de0429 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Expression.class 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 index ba40763b0a3fcbcb0111a419cd1ec372c96b7c16..e647508dba6f3ec5c05228ec4d342dd7ae2ee406 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Extension.class 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 index e36b08670e23e695429574e710f5024859da54b7..770c960d7e853eef101b90ec122e843370046d4e 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ExternalDocObject.class 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 index 2df7717cf9d22f19130a0b4841a419f61185dbb0..9dfd22aeb0a229e8127a696780b893f9d2fa906d 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class 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 index 6c1f42d202663b957867d3217122ba0d124a79b8..24e1aa31077ce2f91bb4954483c33493486c0a91 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Head.class 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 index 667e96f5f98213e4c9644ff0cdefe84cd2732809..ec6e346c798adace95492f40ac5a0db0a81a8bb9 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderOb.class 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 index 6243552974751564b189978405e41a7b3c2108b8..9d722a916756605ba9237a3b75a17884768ca9c4 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderObject.class 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 index 3f96a0d478b665d5eb10a55bd7213cf9a1253c7e..9cf047c8224e00075f661b0774dafaa6f01b307b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderReference.class 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 index 8705260ea74cb981669e140875ff9f15d150aaf9..735761ac4da37b16110e4786e7ac9a8eb4c0a806 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/HeaderTuple.class 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 index be7d9da14cef49a592a48aa789a3eaad245ab365..55f7b453b922750160edc4590b18f805e5229f6b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Implicit.class 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/InferredParameter.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InferredParameter.class new file mode 100644 index 0000000000000000000000000000000000000000..33ffd0eed5d650793279988868c2b1fd600cc8dc Binary files /dev/null and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InferredParameter.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 index 90dce2ae27eb846b6f0f8bcd828a9eba31cfcd16..ab345eeb5ba9b346c512f37e56e17483874588af 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/InfoObject.class 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 index 5d1c5f7cfb5953e196759dc691f207c44652a7f7..7dcada96027841873d257ea4fc432ccedc0a5ee7 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ItemsSchema.class 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 index a750bbf87a493052886d3e9631cf6ff6f767f1d1..352b1e42061aef82b6ea0e7f78b6fac0a15da313 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/JastAddList.class 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 index c696b5c333bf53955b311f953aec4e7062af1e6f..ac3b35a65fcd283f8aca3cf4999f9cdc01aba213 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LicenseObject.class 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 index b69e91c9dafabddda209659e5313eb9ba609b24e..f9d219f5722722e56d0fdab9868f692899deebf4 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkOb.class 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 index 79acfbe8a85c46666368dcb697fcb0ffa7af7a19..c53dd30ad3f0414bff7ca963dc9966d79b43ca45 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkObject.class 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 index 84d7580f6ebdf9778c4f803fadbfa78990700521..c889fb3cfd71458fc9298ec9d562b407579608b0 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.class 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 index 2cf90f3739af39b56069e055b18ff107e8279c91..7c71664319f4ca9348209e962b271c5e25ad8f22 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkReference.class 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 index ef21dee3c3fd21e1c2bda02f5bd8ae1c4dd2f18e..70d003f73a3bc7192ce06808ee8e9711d3f20f36 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/LinkTuple.class 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 index d2d11d70e8a6c81d2ded337e8ac6c85437021e56..42c7a5e4e5808faf75a8d47a7206227e88875fb4 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MappingTuple.class 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 index 174cc473eb6e6e00702fa23cc9246f9c607b9784..5da3ac74575b7c79f896492ac279b739f6621911 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/MediaTypeObject.class 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 index 1f4621b30600402ff5532014f2db277d14ec6f89..b31dda6e7986efb5b43ab2bc1d6e949b2f284485 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/NotSchema.class 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 index c8b5524193698a08b08f772a98c56759053c08f6..c902633e8f07a907e47dbddf10a045386699b906 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.class 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 index 02411e9a3e5537dcb304fa780068306b9169d83f..bb07990b595fa17cb1e4f284f130054ec69b3650 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.class 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 index 98e28811d1f50bfd0e8d1e560564df1ad4da5211..07b0d267a6e795038450b5b58163fe93e26a1879 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OneOfSchema.class 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 index 571e0e1a103569df6736cdbfb429b22df713dfdd..ab3e442c9b675a670af875a2d3629afe3867e1fb 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class 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 deleted file mode 100644 index 0354176d216a6f682343d291ca9c3d1235c2adee..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationOb.class and /dev/null 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 index 65701bdb3c6e361e6703386d5801c88a6f993c5f..de1146e7e4209d41934b9ee18432ce9695710500 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OperationObject.class 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 index af24371584571e17008b878d857def0297aaf35c..0c13653b9ca16c58823513d7b4bac492343ee698 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Opt.class 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 index 12e8b784823ef3119be920dec98a205820fb54ed..cc879dd8ad268337faedaf45bf9e704e74c2532a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Options.class 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 index 2a1803378c6f1bfbbd61b371c5e6e69ed280c880..652cc5832aae47021d63cc1e376d592ba8069184 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterOb.class 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 index 846fd0a4863b1ee61eba7d99967934c62adf2953..feb29ef925440c7f631e4a5e85d8f5294fa81006 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class 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 index 58443c42c1ace478ae15ef98106c6930734b6e23..9e204acbca6d0d9dc4776ca0144ed65b19ca9869 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterReference.class 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 index bf0737db712657b384c0184ab6405e3e0f9ef2d7..f7a39a5eae83be2602a1ad38a4a86303529c4bd9 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterTuple.class 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 index a27cd5673b420207f9a09a1001469b9efdfe919a..d7191bbb32bb2b0fe855790cb292f6da44fe5487 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Password.class 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 index b6566150b3f9f4122597a541cbbfc43447f63f37..d7ea2cd2e21b6e34a48ccab81eb32fc843e1802d 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Patch.class 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 deleted file mode 100644 index 00ad30ab035b611fc02b029c8fc576c8233430c9..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemOb.class and /dev/null 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 index fea5bcc13eafe58d346557055c7e577b0a9d95fd..7e95bf930c55cd801d5848f4d806dcc81e2d2c81 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemObject.class 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 deleted file mode 100644 index 8fe7179384f04d76727c72702c6be2ffc188f72f..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathItemReference.class and /dev/null 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 index b8d3036127d5729fc7a39ee97ae6fcfc7be49291..dbc353ee213a3367309c43cbedb351e31a75073b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PathsObject.class 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 index 73bafd4599843bd81823d2b41379565eaf0aab8b..efc5f92796aa3bd82c273568dbae83ce4504b72f 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class 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 index d981c163e11b8a2c1cd2752ba1c325a664cf173a..648f16bda5a29e3f5b0afb03da4d3970e576570f 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/PropertyItem.class 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 index a1bead1590236f3dbf6add4b73ccaec962e26dc0..e63fe8a4bee5e9cc18925979913b707bcc5498e0 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Put.class 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 index b5290f2d7067d68350bf4b222b27d6a24faef39d..22d651ee456fe08746c1d5136b21e6a6dadc7796 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyOb.class 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 index 4493e0692b7c873e0759e586a3fe5fcb88012bf5..2c0623b7012af8e2b75b17112751b68881c0fb71 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyObject.class 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 index d87e59444a35a78dbcfa034787ef8d12464a2ba4..3c31012f483cdcbc7a72649084bcd0b725fbf6b1 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyReference.class 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 index 985f2a3246d53b0b2fc9124ff00558cd3abc4176..33159275bbec4f0d7dc8539b46aee1ed3bf06367 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.class 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 index 57c0201f320b44a49685f4e21131d41948d70a05..ceac26eeb59af399629e5dad32d3b49534cc5142 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/RequiredField.class 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 index 484e9fe7b0e6cbafec26f0821596ee1ae1c866fa..5a787e95d41bd69bdaea3c2a776baae59e0014d4 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseOb.class 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 index c2ea1b80f7a047635e8df63736a339a63e455584..3f5522c993bf6ebdd744fd391f6d6b619a6faaf3 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseObject.class 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 index 7e5725e1953997f1d8ecfeaff4039f0e1787219a..39915e448893a89978c8c278ffcd624cf8e7e24b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseReference.class 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 index beaad7ffd3e6b6441c40ba74c759df7381de6dda..e2c238b4490183437d57d7cc600e96bb96d5a33b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ResponseTuple.class 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 index be61b94982e001ef8ef6fbfcb851f62a7a7db4ee..7037bea499e8ae0cb6f2f6b2def21d497b61a42a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaOb.class 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 index a1a90d0072063c7d0ec701bd72f1ee6f003558df..d82919d0d280bf440ce4f1de6bdc5e2b7ec8bbd7 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaObject.class 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 index ca2177aefbbbc00d7b4b27d77d9537d760391ec2..6b9f4c14f5eeed532726643dc632c099a806e3c8 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaReference.class 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 index 25b030c211f37975fdee89f5bb769317b94a8a13..69f73ad3235e3ca391c60483af97d53fd4ad4d8f 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SchemaTuple.class 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 index 3b734e82ab5d2ad00f0bf1372756e1e0e693b2cf..0d75d2f373552bfbd5eedfe93e4d7f4dc875e0b3 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ScopesTuple.class 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 index 40245e5a2152bb1df6a844161241c2eeb9020347..d16fa7c5ff53c43024d6a0ea463115963b9d2c18 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.class 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 index bd40c25ab01899cb67f45232a7f1579c60192b1d..4d9dd91cc1f666a48d0683afe84e5031759f8047 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.class 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 index 59c9af6c5c2816a27d8b0efb4467d3f5012a34f3..a8b370835e4fc161927b691918a90ff404ff4fb8 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.class 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 index a24c699be22ea92fb88751f080f375910dec4c17..d84f58b2432e40495f657251fed77b311c911a23 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.class 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 index 3fe777be59a822202de1c92404a883fb98acfcca..056f7a9bb7b071fdef04fb4a2cd173f3a8b6b585 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.class 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 index d5ab3c44a2a282d09e0bd083d90cc60ad62807a6..569bc0cb8560d319c9753ba39c163f517836a4c9 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.class 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 index fc981036f7ebc07ba272bc536f7a3b8e696c2df3..8e27b3cd8069f8bb7e08d85e5e42e1c32cf3128a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.class 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 index 611c37b29e2d6c73528f74e5da588de9dc028a34..b358937ca3210d27ca9a4858786ba895caa721bb 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerObject.class 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 index e48cc5f7e219052148141aca51ee820e9dcea851..c9bcf2d4797eda5534462ac5a2bef578b123d011 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariableObject.class 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 index a84d7b1be5b7c75266467a3760dfe156fc1e97e1..f3fc44a41ee38207aa9e7751af4b3c99800fcd13 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.class 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 index 6931ce2492a0feff2afde253b2fd88e0d9ae51be..b6f294196f0ed52ec04763bd2256360bab1f4f0a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Tag.class 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 index cb336da10990f80c4669ea4b6b5673675259c9cf..e97a7352493614e0cd2d826206526b3e3c4b410b 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/TagObject.class 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 index 07b1212b1c59fa2804e6d55a355a37f2fa0af8b9..24ea52775b7aafe569fb098f6a3cd3c8e61261d0 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Trace.class 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 index 8988bc5dc6f163b29460098019b0c3c30e4b3f4d..3038d22a61341429445df984342558eaaca5cc3a 100644 Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/XmlObject.class 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 862b12ddb39f7be5a4c1e6d041acc9b6a5a27845..c3666a6f433c6b2acf8a5a21de755d15f92efc44 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 954849eaf255d7bbc0c543f3e745c0dff5bb49b6..69d73debc0f760ec6e1a46abc789a714fe208ba6 100644 --- a/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html +++ b/build/reports/tests/test/classes/openapi.OpenAPIMain_test.html @@ -29,7 +29,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -41,7 +41,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -50,8 +50,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -61,127 +61,16 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> +<a href="#tab0">Tests</a> </li> <li> -<a href="#tab1">Tests</a> +<a href="#tab1">Standard output</a> </li> <li> -<a href="#tab2">Standard output</a> +<a href="#tab2">Standard error</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<div class="test"> -<a name="test()"></a> -<h3 class="failures">test()</h3> -<span class="code"> -<pre>java.lang.NullPointerException - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.survey_OpenAPIObject_schemaTuples(OpenAPIObject.java:1102) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples_compute(OpenAPIObject.java:1232) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples(OpenAPIObject.java:1214) - at openapi.OpenAPIMain_test.test(OpenAPIMain_test.java:72) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) - at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) - at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) - at com.sun.proxy.$Proxy2.stop(Unknown Source) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:133) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) - at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) - at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) - at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) - at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) - at java.base/java.lang.Thread.run(Thread.java:829) -</pre> -</span> -</div> -</div> -<div id="tab1" class="tab"> <h2>Tests</h2> <table> <thead> @@ -192,17 +81,27 @@ </tr> </thead> <tr> -<td class="failures">test()</td> -<td class="failures">0.401s</td> -<td class="failures">failed</td> +<td class="success">test()</td> +<td class="success">0.481s</td> +<td class="success">passed</td> </tr> </table> </div> -<div id="tab2" class="tab"> +<div id="tab1" class="tab"> <h2>Standard output</h2> <span class="code"> <pre>1 Loading expression DSL file 'petstore-v2.yaml'. +de.tudresden.inf.st.openapi.ast.SchemaReference +</pre> +</span> +</div> +<div id="tab2" class="tab"> +<h2>Standard error</h2> +<span class="code"> +<pre>SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". +SLF4J: Defaulting to no-operation (NOP) logger implementation +SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. </pre> </span> </div> @@ -214,7 +113,7 @@ Loading expression DSL file 'petstore-v2.yaml'. <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. 오전 7:28:09</p> </div> </div> </body> diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index 38a8e8ca45bc1783ebe69e16973647443b064f2d..bab71831e0e54b0fcc083230ef15cbcbba99ffac 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -26,7 +26,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -38,7 +38,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -47,8 +47,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -58,25 +58,13 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> -</li> -<li> -<a href="#tab1">Packages</a> +<a href="#tab0">Packages</a> </li> <li> -<a href="#tab2">Classes</a> +<a href="#tab1">Classes</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<ul class="linkList"> -<li> -<a href="classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a>. -<a href="classes/openapi.OpenAPIMain_test.html#test()">test()</a> -</li> -</ul> -</div> -<div id="tab1" class="tab"> <h2>Packages</h2> <table> <thead> @@ -91,19 +79,19 @@ </thead> <tbody> <tr> -<td class="failures"> +<td class="success"> <a href="packages/openapi.html">openapi</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </tbody> </table> </div> -<div id="tab2" class="tab"> +<div id="tab1" class="tab"> <h2>Classes</h2> <table> <thead> @@ -118,14 +106,14 @@ </thead> <tbody> <tr> -<td class="failures"> +<td class="success"> <a href="classes/openapi.OpenAPIMain_test.html">openapi.OpenAPIMain_test</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </tbody> </table> @@ -138,7 +126,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. 오전 7:28:09</p> </div> </div> </body> diff --git a/build/reports/tests/test/packages/openapi.html b/build/reports/tests/test/packages/openapi.html index bb6322e9dc43bb88bad7bcddb09d92459d0c6913..9f59707be0a73d3d8f6f9a04824114729218c277 100644 --- a/build/reports/tests/test/packages/openapi.html +++ b/build/reports/tests/test/packages/openapi.html @@ -28,7 +28,7 @@ </td> <td> <div class="infoBox" id="failures"> -<div class="counter">1</div> +<div class="counter">0</div> <p>failures</p> </div> </td> @@ -40,7 +40,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.401s</div> +<div class="counter">0.481s</div> <p>duration</p> </div> </td> @@ -49,8 +49,8 @@ </div> </td> <td> -<div class="infoBox failures" id="successRate"> -<div class="percent">0%</div> +<div class="infoBox success" id="successRate"> +<div class="percent">100%</div> <p>successful</p> </div> </td> @@ -60,22 +60,10 @@ <div id="tabs"> <ul class="tabLinks"> <li> -<a href="#tab0">Failed tests</a> -</li> -<li> -<a href="#tab1">Classes</a> +<a href="#tab0">Classes</a> </li> </ul> <div id="tab0" class="tab"> -<h2>Failed tests</h2> -<ul class="linkList"> -<li> -<a href="../classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a>. -<a href="../classes/openapi.OpenAPIMain_test.html#test()">test()</a> -</li> -</ul> -</div> -<div id="tab1" class="tab"> <h2>Classes</h2> <table> <thread> @@ -89,14 +77,14 @@ </tr> </thread> <tr> -<td class="failures"> +<td class="success"> <a href="../classes/openapi.OpenAPIMain_test.html">OpenAPIMain_test</a> </td> <td>1</td> -<td>1</td> <td>0</td> -<td>0.401s</td> -<td class="failures">0%</td> +<td>0</td> +<td>0.481s</td> +<td class="success">100%</td> </tr> </table> </div> @@ -108,7 +96,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 9. 오후 10:17:33</p> +<a href="http://www.gradle.org">Gradle 6.8</a> at 2021. 10. 10. 오전 7:28:09</p> </div> </div> </body> diff --git a/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml b/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml index c3a8822f9dac3e8b75a97b790ff1a7768efff35e..4accda5498a27a76ece4f778e4a5c4d1523b124a 100644 --- a/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml +++ b/build/test-results/test/TEST-openapi.OpenAPIMain_test.xml @@ -1,112 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> -<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="1" errors="0" timestamp="2021-10-09T13:17:32" hostname="DESKTOP-7SEB5SB" time="0.401"> +<testsuite name="openapi.OpenAPIMain_test" tests="1" skipped="0" failures="0" errors="0" timestamp="2021-10-09T22:28:09" hostname="DESKTOP-7SEB5SB" time="0.481"> <properties/> - <testcase name="test()" classname="openapi.OpenAPIMain_test" time="0.401"> - <failure message="java.lang.NullPointerException" type="java.lang.NullPointerException">java.lang.NullPointerException - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.ASTNode.collect_contributors_OpenAPIObject_schemaTuples(ASTNode.java:494) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.survey_OpenAPIObject_schemaTuples(OpenAPIObject.java:1102) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples_compute(OpenAPIObject.java:1232) - at de.tudresden.inf.st.openapi.ast.OpenAPIObject.schemaTuples(OpenAPIObject.java:1214) - at openapi.OpenAPIMain_test.test(OpenAPIMain_test.java:72) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) - at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) - at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) - at com.sun.proxy.$Proxy2.stop(Unknown Source) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:133) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:566) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) - at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) - at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) - at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) - at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) - at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) - at java.base/java.lang.Thread.run(Thread.java:829) -</failure> - </testcase> + <testcase name="test()" classname="openapi.OpenAPIMain_test" time="0.481"/> <system-out><![CDATA[1 Loading expression DSL file 'petstore-v2.yaml'. +de.tudresden.inf.st.openapi.ast.SchemaReference ]]></system-out> - <system-err><![CDATA[]]></system-err> + <system-err><![CDATA[SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". +SLF4J: Defaulting to no-operation (NOP) logger implementation +SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. +]]></system-err> </testsuite> diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin index b2cafb86a330d768ceb0ed22fa2b81c8e6f3f8be..ba6adeb83939170d29557c231cddebc5911a3537 100644 Binary files a/build/test-results/test/binary/output.bin and b/build/test-results/test/binary/output.bin differ diff --git a/build/test-results/test/binary/output.bin.idx b/build/test-results/test/binary/output.bin.idx index 42aeebea8d46c35d355eb76aef19d1abdb6becfc..a255248e29adda3f1b5743d9c3f4c9e53c58683f 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 d4ad4c7c961d027b3b361fa11d92845108376246..40154f7aad25d3c5af2712e0a5553b16325635d8 100644 Binary files a/build/test-results/test/binary/results.bin and b/build/test-results/test/binary/results.bin differ diff --git a/gen-api-ex/1password.com-events-1.0.0-actual.json b/gen-api-ex/1password.com-events-1.0.0-actual.json deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/gen-api-ex/1password.com-events-1.0.0-expected.json b/gen-api-ex/1password.com-events-1.0.0-expected.json deleted file mode 100644 index 5621a5d94e3a4e65e1738f49c73812ef1c693a39..0000000000000000000000000000000000000000 --- a/gen-api-ex/1password.com-events-1.0.0-expected.json +++ /dev/null @@ -1,449 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "description" : "1Password Events API Specification.", - "title" : "Events API", - "version" : "1.0.0", - "x-providerName" : "1password.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_upload.wikimedia.org_wikipedia_commons_thumb_e_e3_1password-logo.svg_1280px-1password-logo.svg.png" - }, - "x-apisguru-categories" : [ "security" ], - "x-serviceName" : "events", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://i.1password.com/media/1password-events-reporting/1password-events-api.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://events.1password.com", - "description" : "1Password" - }, { - "url" : "https://events.1password.ca", - "description" : "1Password CA" - }, { - "url" : "https://events.1password.eu", - "description" : "1Password EU" - }, { - "url" : "https://events.ent.1password.com", - "description" : "1Password Enterprise" - } ], - "paths" : { - "/api/auth/introspect" : { - "get" : { - "tags" : [ "auth" ], - "summary" : "Performs introspection of the provided Bearer JWT token", - "operationId" : "getAuthIntrospect", - "responses" : { - "200" : { - "$ref" : "#/components/responses/IntrospectResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - }, - "/api/v1/itemusages" : { - "post" : { - "tags" : [ "api-v1" ], - "summary" : "Retrieves item usages", - "description" : "This endpoint requires your JSON Web Token to have the *itemusages* feature.", - "operationId" : "getItemUsages", - "requestBody" : { - "$ref" : "#/components/requestBodies/ItemUsagesRequest" - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/ItemUsagesResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - }, - "/api/v1/signinattempts" : { - "post" : { - "tags" : [ "api-v1" ], - "summary" : "Retrieves sign-in attempts", - "description" : "This endpoint requires your JSON Web Token to have the *signinattempts* feature.", - "operationId" : "getSignInAttempts", - "requestBody" : { - "$ref" : "#/components/requestBodies/SignInAttemptsRequest" - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/SignInAttemptsResponse" - }, - "401" : { - "$ref" : "#/components/responses/UnauthorizedErrorResponse" - }, - "default" : { - "$ref" : "#/components/responses/GenericErrorResponse" - } - }, - "security" : [ { - "jwtsa" : [ ] - } ] - } - } - }, - "components" : { - "examples" : { - "Cursor" : { - "summary" : "Used for continued calling with a cursor", - "value" : { - "cursor" : "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK" - } - }, - "ResetCursor" : { - "summary" : "Used for reseting the cursor", - "value" : { - "limit" : 100, - "start_time" : "2021-06-11T16:32:50-03:00" - } - } - }, - "requestBodies" : { - "CursorRequest" : { - "content" : { - "application/json" : { - "examples" : { - "Continuing cursor" : { - "$ref" : "#/components/examples/Cursor", - "abs$ref" : "file:/E:/bachelor-thesis/SigTest/bachelor-thesis-jastadd/build/resources/main/1password.com-events-1.0.0.json#/components/examples/Cursor" - }, - "Resetting cursor" : { - "$ref" : "#/components/examples/ResetCursor", - "abs$ref" : "file:/E:/bachelor-thesis/SigTest/bachelor-thesis-jastadd/build/resources/main/1password.com-events-1.0.0.json#/components/examples/ResetCursor" - } - }, - "schema" : { - "oneOf" : [ { - "$ref" : "#/components/schemas/Cursor" - }, { - "$ref" : "#/components/schemas/ResetCursor" - } ] - } - } - } - }, - "ItemUsagesRequest" : { - "$ref" : "#/components/requestBodies/CursorRequest" - }, - "SignInAttemptsRequest" : { - "$ref" : "#/components/requestBodies/CursorRequest" - } - }, - "responses" : { - "GenericErrorResponse" : { - "description" : "Generic error", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "IntrospectResponse" : { - "description" : "Introspection object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Introspection" - } - } - } - }, - "ItemUsagesResponse" : { - "description" : "Item usages response object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ItemUsageItems" - } - } - } - }, - "SignInAttemptsResponse" : { - "description" : "Sign-in attempts response object", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SignInAttemptItems" - } - } - } - }, - "UnauthorizedErrorResponse" : { - "description" : "Unauthorized", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "Client" : { - "description" : "Metadata gathered about the client", - "properties" : { - "app_name" : { - "example" : "1Password Extension", - "type" : "string" - }, - "app_version" : { - "example" : "20127", - "type" : "string" - }, - "ip_address" : { - "example" : "13.227.95.22", - "type" : "string" - }, - "os_name" : { - "example" : "MacOSX", - "type" : "string" - }, - "os_version" : { - "example" : "10.15.6", - "type" : "string" - }, - "platform_name" : { - "example" : "Chrome", - "type" : "string" - }, - "platform_version" : { - "description" : "Depending on the platform used, this can be the version of the browser that the client extension is installed, the model of computer that the native application is installed or the machine's CPU version that the CLI was installed", - "type" : "string" - } - } - }, - "Cursor" : { - "description" : "Cursor", - "properties" : { - "cursor" : { - "description" : "Cursor to fetch more data if available or continue the polling process if required", - "example" : "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK", - "type" : "string" - } - } - }, - "CursorCollection" : { - "description" : "Common cursor properties for collection responses", - "allOf" : [ { - "$ref" : "#/components/schemas/Cursor" - }, { - "properties" : { - "has_more" : { - "description" : "Whether there may still be more data to fetch using the returned cursor. If true, the subsequent request could still be empty.", - "type" : "boolean" - } - } - } ] - }, - "DateTimeRFC3339" : { - "example" : "2020-06-11T16:32:50-03:00", - "format" : "date-time", - "type" : "string" - }, - "Details" : { - "description" : "Additional information about the sign-in attempt", - "properties" : { - "value" : { - "description" : "For firewall prevented sign-ins, the value is the chosen continent, country, etc. that blocked the sign-in attempt", - "example" : "Europe", - "type" : "string" - } - } - }, - "Error" : { - "properties" : { - "Error" : { - "properties" : { - "Message" : { - "description" : "The error message.", - "type" : "string" - } - }, - "type" : "object" - } - }, - "type" : "object" - }, - "Introspection" : { - "properties" : { - "Features" : { - "example" : [ "itemusages", "signinattempts" ], - "type" : "array", - "items" : { - "type" : "string" - } - }, - "IssuedAt" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "UUID" : { - "type" : "string" - } - }, - "type" : "object" - }, - "ItemUsage" : { - "description" : "A single item usage object", - "properties" : { - "client" : { - "$ref" : "#/components/schemas/Client" - }, - "item_uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "timestamp" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "used_version" : { - "type" : "integer" - }, - "user" : { - "$ref" : "#/components/schemas/User" - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "vault_uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - }, - "ItemUsageItems" : { - "description" : "An object wrapping cursor properties and a list of items usages", - "allOf" : [ { - "properties" : { - "items" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ItemUsage" - } - } - } - }, { - "$ref" : "#/components/schemas/CursorCollection" - } ] - }, - "ResetCursor" : { - "description" : "Reset cursor", - "properties" : { - "end_time" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "limit" : { - "maximum" : 1000, - "minimum" : 1, - "type" : "number" - }, - "start_time" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - } - } - }, - "SignInAttempt" : { - "description" : "A single sign-in attempt object", - "properties" : { - "category" : { - "example" : "firewall_failed", - "type" : "string", - "enum" : [ "success", "credentials_failed", "mfa_failed", "modern_version_failed", "firewall_failed", "firewall_reported_success" ] - }, - "client" : { - "$ref" : "#/components/schemas/Client" - }, - "country" : { - "description" : "Country ISO Code", - "example" : "France", - "type" : "string" - }, - "details" : { - "$ref" : "#/components/schemas/Details" - }, - "session_uuid" : { - "$ref" : "#/components/schemas/UUID" - }, - "target_user" : { - "$ref" : "#/components/schemas/User" - }, - "timestamp" : { - "$ref" : "#/components/schemas/DateTimeRFC3339" - }, - "type" : { - "example" : "continent_blocked", - "type" : "string", - "enum" : [ "credentials_ok", "mfa_ok", "password_secret_bad", "mfa_missing", "totp_disabled", "totp_bad", "totp_timeout", "u2f_disabled", "u2f_bad", "u2f_timout", "duo_disabled", "duo_bad", "duo_timeout", "duo_native_bad", "platform_secret_disabled", "platform_secret_bad", "platform_secret_proxy", "code_disabled", "code_bad", "code_timeout", "ip_blocked", "continent_blocked", "country_blocked", "anonymous_blocked", "all_blocked", "modern_version_missing", "modern_version_old" ] - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - }, - "SignInAttemptItems" : { - "description" : "An object wrapping cursor properties and a list of sign-in attempts", - "allOf" : [ { - "properties" : { - "items" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SignInAttempt" - } - } - } - }, { - "$ref" : "#/components/schemas/CursorCollection" - } ] - }, - "UUID" : { - "example" : "56YE2TYN2VFYRLNSHKPW5NVT5E", - "type" : "string" - }, - "User" : { - "description" : "User object", - "properties" : { - "email" : { - "format" : "email", - "type" : "string" - }, - "name" : { - "description" : "Full name", - "example" : "Jack O'Neill", - "type" : "string" - }, - "uuid" : { - "$ref" : "#/components/schemas/UUID" - } - } - } - }, - "securitySchemes" : { - "jwtsa" : { - "type" : "http", - "description" : "A JWT SA token issued to this service", - "scheme" : "bearer", - "bearerFormat" : "JWT-SA" - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json b/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json deleted file mode 100644 index f9464ad08d58fa66810f4c13f3d991e26a69fa43..0000000000000000000000000000000000000000 --- a/gen-api-ex/6-dot-authentiqio.appspot.com-6-actual.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "hello@authentiq.com", - "name" : "Authentiq team", - "url" : "http://authentiq.io/support" - }, - "description" : "Strong authentication, without the passwords.", - "license" : { - "name" : "Apache 2.0", - "url" : "http://www.apache.org/licenses/LICENSE-2.0.html" - }, - "termsOfService" : "http://authentiq.com/terms/", - "title" : "Authentiq API", - "version" : "6", - "x-providerName" : "6-dot-authentiqio.appspot.com", - "x-logo" : { - "backgroundColor" : "#F26641", - "url" : "https://api.apis.guru/v2/cache/logo/https_www.authentiq.com_theme_images_authentiq-logo-a-inverse.svg" - }, - "x-apisguru-categories" : [ "security" ], - "x-origin" : [ { - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/AuthentiqID/authentiq-docs/master/docs/swagger/issuer.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://6-dot-authentiqio.appspot.com" - } ], - "paths" : { - "/scope/{job}" : { - "head" : { - "tags" : [ "scope", "head" ], - "description" : "HEAD to get the status of a verification job", - "operationId" : "sign_retrieve_head", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Confirmed and signed" - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "get" : { - "tags" : [ "scope", "get" ], - "description" : "get the status / current content of a verification job", - "operationId" : "sign_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successful response (JWT)", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "field" : { - "type" : "string" - }, - "exp" : { - "type" : "integer" - } - }, - "type" : "object", - "title" : "JWT" - } - }, - "application/jwt" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "field" : { - "type" : "string" - }, - "exp" : { - "type" : "integer" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "put" : { - "tags" : [ "scope", "put" ], - "description" : "authority updates a JWT with its signature\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_update", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/jwt" : { - "schema" : { - "properties" : { - "jwt" : { - "description" : "result is JWT or JSON??", - "type" : "string" - }, - "status" : { - "description" : "ready", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Job not confirmed yet `confirm-first`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "post" : { - "tags" : [ "scope", "post" ], - "description" : "this is a scope confirmation", - "operationId" : "sign_confirm", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "202" : { - "description" : "Successfully confirmed", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Confirmation error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "405" : { - "description" : "JWT POSTed to scope `not-supported`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "scope", "delete" ], - "description" : "delete a verification job", - "operationId" : "sign_delete", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/scope" : { - "post" : { - "tags" : [ "scope", "post" ], - "description" : "scope verification request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_request", - "parameters" : [ { - "description" : "test only mode, using test issuer", - "required" : false, - "schema" : { - "type" : "integer" - }, - "in" : "query", - "name" : "test" - } ], - "requestBody" : { - "description" : "Claims of scope", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Claims" - } - } - } - }, - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "201" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "job" : { - "description" : "20-character ID", - "type" : "string" - }, - "status" : { - "description" : "waiting", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "429" : { - "description" : "Too Many Requests on same address / number `rate-limit`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/login" : { - "post" : { - "tags" : [ "login", "post" ], - "description" : "push sign-in request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "push_login_request", - "parameters" : [ { - "description" : "URI App will connect to", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "callback" - } ], - "requestBody" : { - "description" : "Push Token.", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/PushToken" - } - } - } - }, - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "sent", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Unauthorized for this callback audience `aud-error` or JWT should be self-signed `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/key" : { - "post" : { - "tags" : [ "key", "post" ], - "description" : "Register a new ID `JWT(sub, devtoken)`\n\nv5: `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_register", - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "201" : { - "description" : "Successfully registered", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "secret" : { - "description" : "revoke key", - "type" : "string" - }, - "status" : { - "description" : "registered", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "409" : { - "description" : "Key already registered `duplicate-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Authentiq ID using email & phone.\n\nIf called with `email` and `phone` only, a verification code \nwill be sent by email. Do a second call adding `code` to \ncomplete the revocation.\n", - "operationId" : "key_revoke_nosecret", - "parameters" : [ { - "description" : "primary email associated to Key (ID)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "email" - }, { - "description" : "primary phone number, international representation", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "phone" - }, { - "description" : "verification code sent by email", - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "code" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "pending or done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Authentication error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Confirm with code sent `confirm-first`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - }, - "/key/{PK}" : { - "head" : { - "tags" : [ "key", "head" ], - "description" : "HEAD info on Authentiq ID\n", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Key exists" - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "410" : { - "description" : "Key is revoked `revoked-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "get" : { - "tags" : [ "key", "get" ], - "description" : "Get public details of an Authentiq ID.\n", - "operationId" : "key_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Successfully retrieved", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - }, - "since" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "410" : { - "description" : "Key is revoked (gone). `revoked-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "put" : { - "tags" : [ "key", "put" ], - "description" : "Update Authentiq ID by replacing the object.\n\nv4: `JWT(sub,email,phone)` to bind email/phone hash; \n\nv5: POST issuer-signed email & phone scopes\nand PUT to update registration `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_bind", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Already bound to another key `duplicate-hash`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "post" : { - "tags" : [ "key", "post" ], - "description" : "update properties of an Authentiq ID.\n(not operational in v4; use PUT for now)\n\nv5: POST issuer-signed email & phone scopes in\na self-signed JWT\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_update", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Identity (Key) with a revocation secret", - "operationId" : "key_revoke", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - }, { - "description" : "revokation secret", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "secret" - } ], - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - }, - "401" : { - "description" : "Key not found / wrong code `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - } - } - } - }, - "components" : { - "parameters" : { - "PK" : { - "description" : "Public Signing Key - Authentiq ID (43 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "PK" - }, - "JobID" : { - "description" : "Job ID (20 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "job" - } - }, - "requestBodies" : { - "AuthentiqID" : { - "description" : "Authentiq ID to register", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/AuthentiqID" - } - } - } - } - }, - "responses" : { - "ErrorResponse" : { - "description" : "Error response", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "Claims" : { - "description" : "Claim in JWT format, self- or issuer-signed. \n", - "properties" : { - "sub" : { - "description" : "UUID", - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "scope" : { - "description" : "claim scope", - "type" : "string" - }, - "type" : { - "type" : "string" - }, - "email" : { - "type" : "string" - } - }, - "required" : [ "sub", "scope" ] - }, - "Error" : { - "properties" : { - "detail" : { - "type" : "string" - }, - "error" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "description" : "unique uri for this error", - "type" : "string" - } - }, - "required" : [ "error" ] - }, - "AuthentiqID" : { - "description" : "Authentiq ID in JWT format, self-signed.\n", - "properties" : { - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - }, - "devtoken" : { - "description" : "device token for push messages", - "type" : "string" - } - }, - "required" : [ "sub" ] - }, - "PushToken" : { - "description" : "PushToken in JWT format, self-signed. \n", - "properties" : { - "aud" : { - "description" : "audience (URI)", - "type" : "string" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - }, - "nbf" : { - "type" : "integer" - }, - "iss" : { - "description" : "issuer (URI)", - "type" : "string" - }, - "exp" : { - "type" : "integer" - }, - "iat" : { - "type" : "integer" - } - }, - "required" : [ "sub", "iss", "aud" ] - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json b/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json deleted file mode 100644 index 8530316275e9e16d02d248cdf2dc820485ce0551..0000000000000000000000000000000000000000 --- a/gen-api-ex/6-dot-authentiqio.appspot.com-6-expected.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "hello@authentiq.com", - "name" : "Authentiq team", - "url" : "http://authentiq.io/support" - }, - "description" : "Strong authentication, without the passwords.", - "license" : { - "name" : "Apache 2.0", - "url" : "http://www.apache.org/licenses/LICENSE-2.0.html" - }, - "termsOfService" : "http://authentiq.com/terms/", - "title" : "Authentiq API", - "version" : "6", - "x-providerName" : "6-dot-authentiqio.appspot.com", - "x-logo" : { - "backgroundColor" : "#F26641", - "url" : "https://api.apis.guru/v2/cache/logo/https_www.authentiq.com_theme_images_authentiq-logo-a-inverse.svg" - }, - "x-apisguru-categories" : [ "security" ], - "x-origin" : [ { - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/AuthentiqID/authentiq-docs/master/docs/swagger/issuer.yaml", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://6-dot-authentiqio.appspot.com" - } ], - "paths" : { - "/key" : { - "post" : { - "tags" : [ "key", "post" ], - "description" : "Register a new ID `JWT(sub, devtoken)`\n\nv5: `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_register", - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "201" : { - "description" : "Successfully registered", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "secret" : { - "description" : "revoke key", - "type" : "string" - }, - "status" : { - "description" : "registered", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "409" : { - "description" : "Key already registered `duplicate-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Authentiq ID using email & phone.\n\nIf called with `email` and `phone` only, a verification code \nwill be sent by email. Do a second call adding `code` to \ncomplete the revocation.\n", - "operationId" : "key_revoke_nosecret", - "parameters" : [ { - "description" : "primary email associated to Key (ID)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "email" - }, { - "description" : "primary phone number, international representation", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "phone" - }, { - "description" : "verification code sent by email", - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "code" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "pending or done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Authentication error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Confirm with code sent `confirm-first`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/key/{PK}" : { - "head" : { - "tags" : [ "key", "head" ], - "description" : "HEAD info on Authentiq ID\n", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Key exists" - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "410" : { - "description" : "Key is revoked `revoked-key`", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "get" : { - "tags" : [ "key", "get" ], - "description" : "Get public details of an Authentiq ID.\n", - "operationId" : "key_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "responses" : { - "200" : { - "description" : "Successfully retrieved", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "since" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "410" : { - "description" : "Key is revoked (gone). `revoked-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "put" : { - "tags" : [ "key", "put" ], - "description" : "Update Authentiq ID by replacing the object.\n\nv4: `JWT(sub,email,phone)` to bind email/phone hash; \n\nv5: POST issuer-signed email & phone scopes\nand PUT to update registration `JWT(sub, pk, devtoken, ...)`\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_bind", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Already bound to another key `duplicate-hash`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "post" : { - "tags" : [ "key", "post" ], - "description" : "update properties of an Authentiq ID.\n(not operational in v4; use PUT for now)\n\nv5: POST issuer-signed email & phone scopes in\na self-signed JWT\n\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "key_update", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - } ], - "requestBody" : { - "$ref" : "#/components/requestBodies/AuthentiqID" - }, - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "key", "delete" ], - "description" : "Revoke an Identity (Key) with a revocation secret", - "operationId" : "key_revoke", - "parameters" : [ { - "$ref" : "#/components/parameters/PK" - }, { - "description" : "revokation secret", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "secret" - } ], - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Key not found / wrong code `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Unknown key `unknown-key`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/login" : { - "post" : { - "tags" : [ "login", "post" ], - "description" : "push sign-in request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "push_login_request", - "parameters" : [ { - "description" : "URI App will connect to", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "callback" - } ], - "requestBody" : { - "description" : "Push Token.", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/PushToken" - } - } - } - }, - "responses" : { - "200" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "sent", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Unauthorized for this callback audience `aud-error` or JWT should be self-signed `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/scope" : { - "post" : { - "tags" : [ "scope", "post" ], - "description" : "scope verification request\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_request", - "parameters" : [ { - "description" : "test only mode, using test issuer", - "required" : false, - "schema" : { - "type" : "integer" - }, - "in" : "query", - "name" : "test" - } ], - "requestBody" : { - "description" : "Claims of scope", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Claims" - } - } - } - }, - "responses" : { - "201" : { - "description" : "Successful response", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "job" : { - "description" : "20-character ID", - "type" : "string" - }, - "status" : { - "description" : "waiting", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "429" : { - "description" : "Too Many Requests on same address / number `rate-limit`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - }, - "/scope/{job}" : { - "head" : { - "tags" : [ "scope", "head" ], - "description" : "HEAD to get the status of a verification job", - "operationId" : "sign_retrieve_head", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Confirmed and signed" - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "get" : { - "tags" : [ "scope", "get" ], - "description" : "get the status / current content of a verification job", - "operationId" : "sign_retrieve", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successful response (JWT)", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "exp" : { - "type" : "integer" - }, - "field" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - }, - "application/jwt" : { - "schema" : { - "properties" : { - "exp" : { - "type" : "integer" - }, - "field" : { - "type" : "string" - }, - "sub" : { - "description" : "base64safe encoded public signing key", - "type" : "string" - } - }, - "type" : "object", - "title" : "JWT" - } - } - } - }, - "204" : { - "description" : "Confirmed, waiting for signing" - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "put" : { - "tags" : [ "scope", "put" ], - "description" : "authority updates a JWT with its signature\nSee: https://github.com/skion/authentiq/wiki/JWT-Examples\n", - "operationId" : "sign_update", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully updated", - "content" : { - "application/jwt" : { - "schema" : { - "properties" : { - "jwt" : { - "description" : "result is JWT or JSON??", - "type" : "string" - }, - "status" : { - "description" : "ready", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "409" : { - "description" : "Job not confirmed yet `confirm-first`", - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "post" : { - "tags" : [ "scope", "post" ], - "description" : "this is a scope confirmation", - "operationId" : "sign_confirm", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "202" : { - "description" : "Successfully confirmed", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "confirmed", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "401" : { - "description" : "Confirmation error `auth-error`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "405" : { - "description" : "JWT POSTed to scope `not-supported`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - }, - "delete" : { - "tags" : [ "scope", "delete" ], - "description" : "delete a verification job", - "operationId" : "sign_delete", - "parameters" : [ { - "$ref" : "#/components/parameters/JobID" - } ], - "responses" : { - "200" : { - "description" : "Successfully deleted", - "content" : { - "application/json" : { - "schema" : { - "properties" : { - "status" : { - "description" : "done", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "404" : { - "description" : "Job not found `unknown-job`", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/ErrorResponse" - } - } - } - } - }, - "components" : { - "parameters" : { - "JobID" : { - "description" : "Job ID (20 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "job" - }, - "PK" : { - "description" : "Public Signing Key - Authentiq ID (43 chars)", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "PK" - } - }, - "requestBodies" : { - "AuthentiqID" : { - "description" : "Authentiq ID to register", - "required" : true, - "content" : { - "application/jwt" : { - "schema" : { - "$ref" : "#/components/schemas/AuthentiqID" - } - } - } - } - }, - "responses" : { - "ErrorResponse" : { - "description" : "Error response", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "schemas" : { - "AuthentiqID" : { - "description" : "Authentiq ID in JWT format, self-signed.\n", - "properties" : { - "devtoken" : { - "description" : "device token for push messages", - "type" : "string" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - } - }, - "required" : [ "sub" ] - }, - "Claims" : { - "description" : "Claim in JWT format, self- or issuer-signed. \n", - "properties" : { - "email" : { - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "scope" : { - "description" : "claim scope", - "type" : "string" - }, - "sub" : { - "description" : "UUID", - "type" : "string" - }, - "type" : { - "type" : "string" - } - }, - "required" : [ "sub", "scope" ] - }, - "Error" : { - "properties" : { - "detail" : { - "type" : "string" - }, - "error" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "description" : "unique uri for this error", - "type" : "string" - } - }, - "required" : [ "error" ] - }, - "PushToken" : { - "description" : "PushToken in JWT format, self-signed. \n", - "properties" : { - "aud" : { - "description" : "audience (URI)", - "type" : "string" - }, - "exp" : { - "type" : "integer" - }, - "iat" : { - "type" : "integer" - }, - "iss" : { - "description" : "issuer (URI)", - "type" : "string" - }, - "nbf" : { - "type" : "integer" - }, - "sub" : { - "description" : "UUID and public signing key", - "type" : "string" - } - }, - "required" : [ "sub", "iss", "aud" ] - } - } - } -} \ No newline at end of file diff --git a/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json b/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json deleted file mode 100644 index 59e7e5317cba6e837b0ff9eefe63ba7156c1ed7a..0000000000000000000000000000000000000000 --- a/gen-api-ex/abstractapi.com-geolocation-1.0.0-actual.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "openapi" : "3.0.1", - "info" : { - "description" : "Abstract IP geolocation API allows developers to retrieve the region, country and city behind any IP worldwide. The API covers the geolocation of IPv4 and IPv6 addresses in 180+ countries worldwide. Extra information can be retrieved like the currency, flag or language associated to an IP.", - "title" : "IP geolocation API", - "version" : "1.0.0", - "x-providerName" : "abstractapi.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_global-uploads.webflow.com_5ebbd0a566a3996636e55959_5ec2ba29feeeb05d69160e7b_webclip.png" - }, - "x-apisguru-categories" : [ "location" ], - "x-serviceName" : "geolocation", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://documentation.abstractapi.com/ip-geolocation-openapi.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "paths" : { - "/v1" : { - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "get" : { - "description" : "Retrieve the location of an IP address", - "parameters" : [ { - "explode" : true, - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "api_key" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "195.154.25.40", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "ip_address" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "country,city,timezone", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "fields" - } ], - "responses" : { - "200" : { - "description" : "Location of geolocated IP", - "content" : { - "application/json" : { - "examples" : { - "0" : { - "value" : "{\"ip_address\":\"195.154.25.40\",\"city\":\"Paris\",\"city_geoname_id\":2988507,\"region\":\"?le-de-France\",\"region_iso_code\":\"IDF\",\"region_geoname_id\":3012874,\"postal_code\":\"75008\",\"country\":\"France\",\"country_code\":\"FR\",\"country_geoname_id\":3017382,\"country_is_eu\":true,\"continent\":\"Europe\",\"continent_code\":\"EU\",\"continent_geoname_id\":6255148,\"longitude\":2.4075,\"latitude\":48.8323,\"security\":{\"is_vpn\":false},\"timezone\":{\"name\":\"Europe/Paris\",\"abbreviation\":\"CEST\",\"gmt_offset\":2,\"current_time\":\"15:42:18\",\"is_dst\":true},\"flag\":{\"emoji\":\"<?<��\",\"unicode\":\"U+1F1EB U+1F1F7\",\"png\":\"https://static.abstractapi.com/country-flags/FR_flag.png\",\"svg\":\"https://static.abstractapi.com/country-flags/FR_flag.svg\"},\"currency\":{\"currency_name\":\"Euros\",\"currency_code\":\"EUR\"},\"connection\":{\"autonomous_system_number\":12876,\"autonomous_system_organization\":\"Online S.a.s.\",\"connection_type\":\"Corporate\",\"isp_name\":\"Online S.A.S.\",\"organization_name\":\"ONLINE\"}}" - } - }, - "schema" : { - "$ref" : "#/components/schemas/inline_response_200" - } - } - } - } - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ] - } - } - }, - "components" : { - "schemas" : { - "inline_response_200" : { - "properties" : { - "continent" : { - "type" : "string" - }, - "country" : { - "type" : "string" - }, - "flag" : { - "properties" : { - "emoji" : { - "type" : "string" - }, - "svg" : { - "type" : "string" - }, - "png" : { - "type" : "string" - }, - "unicode" : { - "type" : "string" - } - }, - "type" : "object" - }, - "country_geoname_id" : { - "type" : "integer" - }, - "city" : { - "type" : "string" - }, - "city_geoname_id" : { - "type" : "integer" - }, - "country_is_eu" : { - "type" : "boolean" - }, - "timezone" : { - "properties" : { - "name" : { - "type" : "string" - }, - "gmt_offset" : { - "type" : "integer" - }, - "abbreviation" : { - "type" : "string" - }, - "current_time" : { - "type" : "string" - }, - "is_dst" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "latitude" : { - "type" : "number" - }, - "continent_code" : { - "type" : "string" - }, - "ip_address" : { - "type" : "string" - }, - "region_geoname_id" : { - "type" : "integer" - }, - "region_iso_code" : { - "type" : "string" - }, - "country_code" : { - "type" : "string" - }, - "security" : { - "properties" : { - "is_vpn" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "connection" : { - "properties" : { - "isp_name" : { - "type" : "string" - }, - "connection_type" : { - "type" : "string" - }, - "organization_name" : { - "type" : "string" - }, - "autonomous_system_organization" : { - "type" : "string" - }, - "autonomous_system_number" : { - "type" : "integer" - } - }, - "type" : "object" - }, - "currency" : { - "properties" : { - "currency_name" : { - "type" : "string" - }, - "currency_code" : { - "type" : "string" - } - }, - "type" : "object" - }, - "continent_geoname_id" : { - "type" : "integer" - }, - "postal_code" : { - "type" : "string" - }, - "region" : { - "type" : "string" - }, - "longitude" : { - "type" : "number" - } - }, - "type" : "object" - } - } - }, - "externalDocs" : { - "description" : "API Documentation", - "url" : "https://www.abstractapi.com/ip-geolocation-api#docs" - } -} \ No newline at end of file diff --git a/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json b/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json deleted file mode 100644 index 78f32585f434c1cb5ecd0c65dc7e8516e0349efb..0000000000000000000000000000000000000000 --- a/gen-api-ex/abstractapi.com-geolocation-1.0.0-expected.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "openapi" : "3.0.1", - "info" : { - "description" : "Abstract IP geolocation API allows developers to retrieve the region, country and city behind any IP worldwide. The API covers the geolocation of IPv4 and IPv6 addresses in 180+ countries worldwide. Extra information can be retrieved like the currency, flag or language associated to an IP.", - "title" : "IP geolocation API", - "version" : "1.0.0", - "x-providerName" : "abstractapi.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_global-uploads.webflow.com_5ebbd0a566a3996636e55959_5ec2ba29feeeb05d69160e7b_webclip.png" - }, - "x-apisguru-categories" : [ "location" ], - "x-serviceName" : "geolocation", - "x-origin" : [ { - "format" : "openapi", - "url" : "https://documentation.abstractapi.com/ip-geolocation-openapi.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "paths" : { - "/v1" : { - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ], - "get" : { - "description" : "Retrieve the location of an IP address", - "parameters" : [ { - "explode" : true, - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "api_key" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "195.154.25.40", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "ip_address" - }, { - "explode" : true, - "required" : false, - "schema" : { - "example" : "country,city,timezone", - "type" : "string" - }, - "style" : "form", - "in" : "query", - "name" : "fields" - } ], - "responses" : { - "200" : { - "description" : "Location of geolocated IP", - "content" : { - "application/json" : { - "examples" : { - "0" : { - "value" : "{\"ip_address\":\"195.154.25.40\",\"city\":\"Paris\",\"city_geoname_id\":2988507,\"region\":\"?le-de-France\",\"region_iso_code\":\"IDF\",\"region_geoname_id\":3012874,\"postal_code\":\"75008\",\"country\":\"France\",\"country_code\":\"FR\",\"country_geoname_id\":3017382,\"country_is_eu\":true,\"continent\":\"Europe\",\"continent_code\":\"EU\",\"continent_geoname_id\":6255148,\"longitude\":2.4075,\"latitude\":48.8323,\"security\":{\"is_vpn\":false},\"timezone\":{\"name\":\"Europe/Paris\",\"abbreviation\":\"CEST\",\"gmt_offset\":2,\"current_time\":\"15:42:18\",\"is_dst\":true},\"flag\":{\"emoji\":\"<?<��\",\"unicode\":\"U+1F1EB U+1F1F7\",\"png\":\"https://static.abstractapi.com/country-flags/FR_flag.png\",\"svg\":\"https://static.abstractapi.com/country-flags/FR_flag.svg\"},\"currency\":{\"currency_name\":\"Euros\",\"currency_code\":\"EUR\"},\"connection\":{\"autonomous_system_number\":12876,\"autonomous_system_organization\":\"Online S.a.s.\",\"connection_type\":\"Corporate\",\"isp_name\":\"Online S.A.S.\",\"organization_name\":\"ONLINE\"}}" - } - }, - "schema" : { - "$ref" : "#/components/schemas/inline_response_200" - } - } - } - } - }, - "servers" : [ { - "url" : "https://ipgeolocation.abstractapi.com" - } ] - } - } - }, - "components" : { - "schemas" : { - "inline_response_200" : { - "properties" : { - "city" : { - "type" : "string" - }, - "city_geoname_id" : { - "type" : "integer" - }, - "connection" : { - "properties" : { - "autonomous_system_number" : { - "type" : "integer" - }, - "autonomous_system_organization" : { - "type" : "string" - }, - "connection_type" : { - "type" : "string" - }, - "isp_name" : { - "type" : "string" - }, - "organization_name" : { - "type" : "string" - } - }, - "type" : "object" - }, - "continent" : { - "type" : "string" - }, - "continent_code" : { - "type" : "string" - }, - "continent_geoname_id" : { - "type" : "integer" - }, - "country" : { - "type" : "string" - }, - "country_code" : { - "type" : "string" - }, - "country_geoname_id" : { - "type" : "integer" - }, - "country_is_eu" : { - "type" : "boolean" - }, - "currency" : { - "properties" : { - "currency_code" : { - "type" : "string" - }, - "currency_name" : { - "type" : "string" - } - }, - "type" : "object" - }, - "flag" : { - "properties" : { - "emoji" : { - "type" : "string" - }, - "png" : { - "type" : "string" - }, - "svg" : { - "type" : "string" - }, - "unicode" : { - "type" : "string" - } - }, - "type" : "object" - }, - "ip_address" : { - "type" : "string" - }, - "latitude" : { - "type" : "number" - }, - "longitude" : { - "type" : "number" - }, - "postal_code" : { - "type" : "string" - }, - "region" : { - "type" : "string" - }, - "region_geoname_id" : { - "type" : "integer" - }, - "region_iso_code" : { - "type" : "string" - }, - "security" : { - "properties" : { - "is_vpn" : { - "type" : "boolean" - } - }, - "type" : "object" - }, - "timezone" : { - "properties" : { - "abbreviation" : { - "type" : "string" - }, - "current_time" : { - "type" : "string" - }, - "gmt_offset" : { - "type" : "integer" - }, - "is_dst" : { - "type" : "boolean" - }, - "name" : { - "type" : "string" - } - }, - "type" : "object" - } - }, - "type" : "object" - } - } - }, - "externalDocs" : { - "description" : "API Documentation", - "url" : "https://www.abstractapi.com/ip-geolocation-api#docs" - } -} \ No newline at end of file diff --git a/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json b/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json deleted file mode 100644 index 47f0f2520860a920c3413661ffc5712e8dfab09d..0000000000000000000000000000000000000000 --- a/gen-api-ex/adyen.com-CheckoutUtilityService-1-actual.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "support@adyen.com", - "name" : "Adyen Support", - "url" : "https://support.adyen.com/", - "x-twitter" : "Adyen" - }, - "description" : "A web service containing utility functions available for merchants integrating with Checkout APIs.\n## Authentication\nEach request to the Checkout Utility API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the Checkout API key](https://docs.adyen.com/developers/user-management/how-to-get-the-checkout-api-key). Then set this key to the `X-API-Key` header value, for example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: Your_Checkout_API_key\" \\\n...\n```\nNote that when going live, you need to generate a new API Key to access the [live endpoints](https://docs.adyen.com/developers/api-reference/live-endpoints).\n\n## Versioning\nCheckout API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://checkout-test.adyen.com/v1/originKeys\n```", - "termsOfService" : "https://docs.adyen.com/legal/terms-conditions", - "title" : "Adyen Checkout Utility Service", - "version" : "1", - "x-providerName" : "adyen.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_twitter.com_Adyen_profile_image.jpeg" - }, - "x-apisguru-categories" : [ "payment" ], - "x-serviceName" : "CheckoutUtilityService", - "x-origin" : [ { - "converter" : { - "url" : "https://github.com/lucybot/api-spec-converter", - "version" : "2.7.11" - }, - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/adyen/adyen-openapi/master/specs/3.0/CheckoutUtilityService-v1.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://checkout-test.adyen.com/v1" - } ], - "paths" : { - "/originKeys" : { - "post" : { - "summary" : "Create originKey values for one or more merchant domains.", - "description" : "This operation takes the origin domains and returns a JSON object containing the corresponding origin keys for the domains.", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "OK - the request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityResponse" - } - } - } - }, - "400" : { - "description" : "Bad Request - a problem reading or understanding the request." - }, - "422" : { - "description" : "Unprocessable Entity - a request validation error." - }, - "401" : { - "description" : "Unauthorized - authentication required." - }, - "500" : { - "description" : "Internal Server Error - the server could not process the request." - }, - "403" : { - "description" : "Forbidden - insufficient permissions to process the request." - } - }, - "x-groupName" : "General", - "x-sortIndex" : 0 - } - } - }, - "components" : { - "schemas" : { - "CheckoutUtilityRequest" : { - "properties" : { - "originDomains" : { - "description" : "The list of origin domains, for which origin keys are requested.", - "type" : "array", - "items" : { - "type" : "string" - } - } - }, - "required" : [ "originDomains" ] - }, - "CheckoutUtilityResponse" : { - "properties" : { - "originKeys" : { - "description" : "The list of origin keys for all requested domains. For each list item, the key is the domain and the value is the origin key.", - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - } - } - } - }, - "x-groups" : [ "General" ] -} \ No newline at end of file diff --git a/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json b/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json deleted file mode 100644 index cd12a31088cded16ed8a2b53d9005e30b396683c..0000000000000000000000000000000000000000 --- a/gen-api-ex/adyen.com-CheckoutUtilityService-1-expected.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "contact" : { - "email" : "support@adyen.com", - "name" : "Adyen Support", - "url" : "https://support.adyen.com/", - "x-twitter" : "Adyen" - }, - "description" : "A web service containing utility functions available for merchants integrating with Checkout APIs.\n## Authentication\nEach request to the Checkout Utility API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the Checkout API key](https://docs.adyen.com/developers/user-management/how-to-get-the-checkout-api-key). Then set this key to the `X-API-Key` header value, for example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: Your_Checkout_API_key\" \\\n...\n```\nNote that when going live, you need to generate a new API Key to access the [live endpoints](https://docs.adyen.com/developers/api-reference/live-endpoints).\n\n## Versioning\nCheckout API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://checkout-test.adyen.com/v1/originKeys\n```", - "termsOfService" : "https://docs.adyen.com/legal/terms-conditions", - "title" : "Adyen Checkout Utility Service", - "version" : "1", - "x-providerName" : "adyen.com", - "x-logo" : { - "url" : "https://api.apis.guru/v2/cache/logo/https_twitter.com_Adyen_profile_image.jpeg" - }, - "x-apisguru-categories" : [ "payment" ], - "x-serviceName" : "CheckoutUtilityService", - "x-origin" : [ { - "converter" : { - "url" : "https://github.com/lucybot/api-spec-converter", - "version" : "2.7.11" - }, - "format" : "openapi", - "url" : "https://raw.githubusercontent.com/adyen/adyen-openapi/master/specs/3.0/CheckoutUtilityService-v1.json", - "version" : "3.0" - } ] - }, - "servers" : [ { - "url" : "https://checkout-test.adyen.com/v1" - } ], - "paths" : { - "/originKeys" : { - "post" : { - "summary" : "Create originKey values for one or more merchant domains.", - "description" : "This operation takes the origin domains and returns a JSON object containing the corresponding origin keys for the domains.", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "OK - the request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CheckoutUtilityResponse" - } - } - } - }, - "400" : { - "description" : "Bad Request - a problem reading or understanding the request." - }, - "401" : { - "description" : "Unauthorized - authentication required." - }, - "403" : { - "description" : "Forbidden - insufficient permissions to process the request." - }, - "422" : { - "description" : "Unprocessable Entity - a request validation error." - }, - "500" : { - "description" : "Internal Server Error - the server could not process the request." - } - }, - "x-groupName" : "General", - "x-sortIndex" : 0 - } - } - }, - "components" : { - "schemas" : { - "CheckoutUtilityRequest" : { - "properties" : { - "originDomains" : { - "description" : "The list of origin domains, for which origin keys are requested.", - "type" : "array", - "items" : { - "type" : "string" - } - } - }, - "required" : [ "originDomains" ] - }, - "CheckoutUtilityResponse" : { - "properties" : { - "originKeys" : { - "description" : "The list of origin keys for all requested domains. For each list item, the key is the domain and the value is the origin key.", - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - } - } - } - }, - "x-groups" : [ "General" ] -} \ No newline at end of file diff --git a/gen-api-ex/petstore-v2-actual.json b/gen-api-ex/petstore-v2-actual.json deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/gen-api-ex/petstore-v2-expected.json b/gen-api-ex/petstore-v2-expected.json deleted file mode 100644 index 59ea6f3d163d188f496430ddec24a2adf9c5bc84..0000000000000000000000000000000000000000 --- a/gen-api-ex/petstore-v2-expected.json +++ /dev/null @@ -1,992 +0,0 @@ -{ - "openapi" : "3.0.0", - "info" : { - "description" : "This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.", - "license" : { - "name" : "Apache-2.0", - "url" : "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "title" : "OpenAPI Petstore", - "version" : "1.0.0" - }, - "servers" : [ { - "url" : "https://petstore.swagger.io/v2" - } ], - "tags" : [ { - "name" : "pet", - "description" : "Everything about your Pets" - }, { - "name" : "store", - "description" : "Access to Petstore orders" - }, { - "name" : "user", - "description" : "Operations about user" - } ], - "paths" : { - "/pet" : { - "put" : { - "tags" : [ "pet" ], - "summary" : "Update an existing pet", - "description" : "", - "operationId" : "updatePet", - "requestBody" : { - "$ref" : "#/components/requestBodies/Pet" - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Pet not found" - }, - "405" : { - "description" : "Validation exception" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - }, - "post" : { - "tags" : [ "pet" ], - "summary" : "Add a new pet to the store", - "description" : "", - "operationId" : "addPet", - "requestBody" : { - "$ref" : "#/components/requestBodies/Pet" - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "405" : { - "description" : "Invalid input" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/pet/findByStatus" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Finds Pets by status", - "description" : "Multiple status values can be provided with comma separated strings", - "operationId" : "findPetsByStatus", - "parameters" : [ { - "deprecated" : true, - "description" : "Status values that need to be considered for filter", - "explode" : false, - "required" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] - } - }, - "style" : "form", - "in" : "query", - "name" : "status" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - }, - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "400" : { - "description" : "Invalid status value" - } - }, - "security" : [ { - "petstore_auth" : [ "read:pets" ] - } ] - } - }, - "/pet/findByTags" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Finds Pets by tags", - "description" : "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", - "operationId" : "findPetsByTags", - "parameters" : [ { - "description" : "Tags to filter by", - "explode" : false, - "required" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "style" : "form", - "in" : "query", - "name" : "tags" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - }, - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "400" : { - "description" : "Invalid tag value" - } - }, - "deprecated" : true, - "security" : [ { - "petstore_auth" : [ "read:pets" ] - } ] - } - }, - "/pet/{petId}" : { - "get" : { - "tags" : [ "pet" ], - "summary" : "Find pet by ID", - "description" : "Returns a single pet", - "operationId" : "getPetById", - "parameters" : [ { - "description" : "ID of pet to return", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Pet not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - }, - "post" : { - "tags" : [ "pet" ], - "summary" : "Updates a pet in the store with form data", - "description" : "", - "operationId" : "updatePetWithForm", - "parameters" : [ { - "description" : "ID of pet that needs to be updated", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "requestBody" : { - "content" : { - "application/x-www-form-urlencoded" : { - "schema" : { - "properties" : { - "name" : { - "description" : "Updated name of the pet", - "type" : "string" - }, - "status" : { - "description" : "Updated status of the pet", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "responses" : { - "405" : { - "description" : "Invalid input" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - }, - "delete" : { - "tags" : [ "pet" ], - "summary" : "Deletes a pet", - "description" : "", - "operationId" : "deletePet", - "parameters" : [ { - "required" : false, - "schema" : { - "type" : "string" - }, - "in" : "header", - "name" : "api_key" - }, { - "description" : "Pet id to delete", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "responses" : { - "400" : { - "description" : "Invalid pet value" - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/pet/{petId}/uploadImage" : { - "post" : { - "tags" : [ "pet" ], - "summary" : "uploads an image", - "description" : "", - "operationId" : "uploadFile", - "parameters" : [ { - "description" : "ID of pet to update", - "required" : true, - "schema" : { - "format" : "int64", - "type" : "integer" - }, - "in" : "path", - "name" : "petId" - } ], - "requestBody" : { - "content" : { - "multipart/form-data" : { - "schema" : { - "properties" : { - "additionalMetadata" : { - "description" : "Additional data to pass to server", - "type" : "string" - }, - "file" : { - "description" : "file to upload", - "format" : "binary", - "type" : "string" - } - }, - "type" : "object" - } - } - } - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ApiResponse" - } - } - } - } - }, - "security" : [ { - "petstore_auth" : [ "write:pets", "read:pets" ] - } ] - } - }, - "/store/inventory" : { - "get" : { - "tags" : [ "store" ], - "summary" : "Returns pet inventories by status", - "description" : "Returns a map of status codes to quantities", - "operationId" : "getInventory", - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "type" : "object", - "additionalProperties" : { - "format" : "int32", - "type" : "integer" - } - } - } - } - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/store/order" : { - "post" : { - "tags" : [ "store" ], - "summary" : "Place an order for a pet", - "description" : "", - "operationId" : "placeOrder", - "requestBody" : { - "description" : "order placed for purchasing the pet", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "400" : { - "description" : "Invalid Order" - } - } - } - }, - "/store/order/{orderId}" : { - "get" : { - "tags" : [ "store" ], - "summary" : "Find purchase order by ID", - "description" : "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions", - "operationId" : "getOrderById", - "parameters" : [ { - "description" : "ID of pet that needs to be fetched", - "required" : true, - "schema" : { - "format" : "int64", - "maximum" : 10, - "minimum" : 1, - "type" : "integer" - }, - "in" : "path", - "name" : "orderId" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Order" - } - } - } - }, - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Order not found" - } - } - }, - "delete" : { - "tags" : [ "store" ], - "summary" : "Delete purchase order by ID", - "description" : "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors", - "operationId" : "deleteOrder", - "parameters" : [ { - "description" : "ID of the order that needs to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "orderId" - } ], - "responses" : { - "400" : { - "description" : "Invalid ID supplied" - }, - "404" : { - "description" : "Order not found" - } - } - } - }, - "/user" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Create user", - "description" : "This can only be done by the logged in user.", - "operationId" : "createUser", - "requestBody" : { - "description" : "Created user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/createWithArray" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Creates list of users with given input array", - "description" : "", - "operationId" : "createUsersWithArrayInput", - "requestBody" : { - "$ref" : "#/components/requestBodies/UserArray" - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/createWithList" : { - "post" : { - "tags" : [ "user" ], - "summary" : "Creates list of users with given input array", - "description" : "", - "operationId" : "createUsersWithListInput", - "requestBody" : { - "$ref" : "#/components/requestBodies/UserArray" - }, - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/login" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Logs user into the system", - "description" : "", - "operationId" : "loginUser", - "parameters" : [ { - "description" : "The user name for login", - "required" : true, - "schema" : { - "pattern" : "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$", - "type" : "string" - }, - "in" : "query", - "name" : "username" - }, { - "description" : "The password for login in clear text", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "query", - "name" : "password" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "Set-Cookie" : { - "description" : "Cookie authentication key for use with the `api_key` apiKey authentication.", - "schema" : { - "example" : "AUTH_KEY=abcde12345; Path=/; HttpOnly", - "type" : "string" - } - }, - "X-Rate-Limit" : { - "description" : "calls per hour allowed by the user", - "schema" : { - "format" : "int32", - "type" : "integer" - } - }, - "X-Expires-After" : { - "description" : "date in UTC when token expires", - "schema" : { - "format" : "date-time", - "type" : "string" - } - } - }, - "content" : { - "application/xml" : { - "schema" : { - "type" : "string" - } - }, - "application/json" : { - "schema" : { - "type" : "string" - } - } - } - }, - "400" : { - "description" : "Invalid username/password supplied" - } - } - } - }, - "/user/logout" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Logs out current logged in user session", - "description" : "", - "operationId" : "logoutUser", - "responses" : { - "default" : { - "description" : "successful operation" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - }, - "/user/{username}" : { - "get" : { - "tags" : [ "user" ], - "summary" : "Get user by user name", - "description" : "", - "operationId" : "getUserByName", - "parameters" : [ { - "description" : "The name that needs to be fetched. Use user1 for testing.", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - }, - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "400" : { - "description" : "Invalid username supplied" - }, - "404" : { - "description" : "User not found" - } - } - }, - "put" : { - "tags" : [ "user" ], - "summary" : "Updated user", - "description" : "This can only be done by the logged in user.", - "operationId" : "updateUser", - "parameters" : [ { - "description" : "name that need to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "requestBody" : { - "description" : "Updated user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "responses" : { - "400" : { - "description" : "Invalid user supplied" - }, - "404" : { - "description" : "User not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - }, - "delete" : { - "tags" : [ "user" ], - "summary" : "Delete user", - "description" : "This can only be done by the logged in user.", - "operationId" : "deleteUser", - "parameters" : [ { - "description" : "The name that needs to be deleted", - "required" : true, - "schema" : { - "type" : "string" - }, - "in" : "path", - "name" : "username" - } ], - "responses" : { - "400" : { - "description" : "Invalid username supplied" - }, - "404" : { - "description" : "User not found" - } - }, - "security" : [ { - "api_key" : [ ] - } ] - } - } - }, - "components" : { - "requestBodies" : { - "UserArray" : { - "description" : "List of user object", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/User" - } - } - } - } - }, - "Pet" : { - "description" : "Pet object that needs to be added to the store", - "required" : true, - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - }, - "application/xml" : { - "schema" : { - "$ref" : "#/components/schemas/Pet" - } - } - } - } - }, - "schemas" : { - "Order" : { - "description" : "An order for a pets from the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "petId" : { - "format" : "int64", - "type" : "integer" - }, - "quantity" : { - "format" : "int32", - "type" : "integer" - }, - "shipDate" : { - "format" : "date-time", - "type" : "string" - }, - "status" : { - "description" : "Order Status", - "type" : "string", - "enum" : [ "placed", "approved", "delivered" ] - }, - "complete" : { - "type" : "boolean", - "default" : false - } - }, - "type" : "object", - "title" : "Pet Order", - "xml" : { - "name" : "Order" - } - }, - "Category" : { - "description" : "A category for a pet", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "name" : { - "pattern" : "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$", - "type" : "string" - } - }, - "type" : "object", - "title" : "Pet category", - "xml" : { - "name" : "Category" - } - }, - "User" : { - "description" : "A User who is purchasing from the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "username" : { - "type" : "string" - }, - "firstName" : { - "type" : "string" - }, - "lastName" : { - "type" : "string" - }, - "email" : { - "type" : "string" - }, - "password" : { - "type" : "string" - }, - "phone" : { - "type" : "string" - }, - "userStatus" : { - "description" : "User Status", - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object", - "title" : "a User", - "xml" : { - "name" : "User" - } - }, - "Tag" : { - "description" : "A tag for a pet", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "name" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "Pet Tag", - "xml" : { - "name" : "Tag" - } - }, - "Pet" : { - "description" : "A pet for sale in the pet store", - "properties" : { - "id" : { - "format" : "int64", - "type" : "integer" - }, - "category" : { - "$ref" : "#/components/schemas/Category" - }, - "name" : { - "example" : "doggie", - "type" : "string" - }, - "photoUrls" : { - "type" : "array", - "xml" : { - "name" : "photoUrl", - "wrapped" : true - }, - "items" : { - "type" : "string" - } - }, - "tags" : { - "type" : "array", - "xml" : { - "name" : "tag", - "wrapped" : true - }, - "items" : { - "$ref" : "#/components/schemas/Tag" - } - }, - "status" : { - "description" : "pet status in the store", - "deprecated" : true, - "type" : "string", - "enum" : [ "available", "pending", "sold" ] - } - }, - "type" : "object", - "title" : "a Pet", - "xml" : { - "name" : "Pet" - }, - "required" : [ "name", "photoUrls" ] - }, - "ApiResponse" : { - "description" : "Describes the result of uploading an image resource", - "properties" : { - "code" : { - "format" : "int32", - "type" : "integer" - }, - "type" : { - "type" : "string" - }, - "message" : { - "type" : "string" - } - }, - "type" : "object", - "title" : "An uploaded response" - } - }, - "securitySchemes" : { - "petstore_auth" : { - "type" : "oauth2", - "flows" : { - "implicit" : { - "authorizationUrl" : "http://petstore.swagger.io/api/oauth/dialog", - "scopes" : { - "write:pets" : "modify pets in your account", - "read:pets" : "read your pets" - } - } - } - }, - "api_key" : { - "type" : "apiKey", - "name" : "api_key", - "in" : "header" - } - } - }, - "externalDocs" : { - "description" : "Find out more about Swagger", - "url" : "http://swagger.io" - } -} \ No newline at end of file diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java index 9e6d4b58d3cd5d5143e4240f3be826760cc37803..b6bf6c4f26322961c35599aba12ca4fb2a26b604 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -486,7 +489,7 @@ public class ASTNode<T extends ASTNode> implements Cloneable { } /** * @aspect <NoAspect> - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ /** @apilevel internal */ protected void collect_contributors_OpenAPIObject_schemaTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { @@ -495,16 +498,114 @@ public class ASTNode<T extends ASTNode> implements Cloneable { } } /** @apilevel internal */ - protected void contributeTo_OpenAPIObject_schemaTuples(Set<SchemaTuple> collection) { + protected void contributeTo_OpenAPIObject_schemaTuples(List<SchemaTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_responseTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_responseTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_responseTuples(List<ResponseTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_parameterTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_parameterTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_parameterTuples(List<ParameterTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_requestBodyTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_requestBodyTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_requestBodyTuples(List<RequestBodyTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_headerTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_headerTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_headerTuples(List<HeaderTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_securitySchemeTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_securitySchemeTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_securitySchemeTuples(List<SecuritySchemeTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_linkTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_linkTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_linkTuples(List<LinkTuple> collection) { + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_callbackTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + for (int i = 0; i < getNumChild(); i++) { + getChild(i).collect_contributors_OpenAPIObject_callbackTuples(_root, _map); + } + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_callbackTuples(List<CallbackTuple> collection) { } /** * @attribute inh - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13") + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5") public OpenAPIObject root() { if (root_visited) { throw new RuntimeException("Circular definition of attribute ASTNode.root()."); @@ -525,43 +626,43 @@ protected boolean root_visited = false; return false; } /** @apilevel internal */ - public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { + public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { ASTNode self = this; ASTNode parent = getParent(); - while (parent != null && !parent.canDefine_root(self, _callerNode)) { + while (parent != null && !parent.canDefine_inferUrl(self, _callerNode, urls)) { _callerNode = self; self = parent; parent = self.getParent(); } - return parent.Define_root(self, _callerNode); + return parent.Define_inferUrl(self, _callerNode, urls); } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:14 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:26 * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute root + * @return {@code true} if this node has an equation for the inherited attribute inferUrl */ - protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { + protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { return false; } /** @apilevel internal */ - public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { + public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { ASTNode self = this; ASTNode parent = getParent(); - while (parent != null && !parent.canDefine_inferUrl(self, _callerNode, urls)) { + while (parent != null && !parent.canDefine_root(self, _callerNode)) { _callerNode = self; self = parent; parent = self.getParent(); } - return parent.Define_inferUrl(self, _callerNode, urls); + return parent.Define_root(self, _callerNode); } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:21 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:6 * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute inferUrl + * @return {@code true} if this node has an equation for the inherited attribute root */ - protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { + protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { return false; } /** @apilevel internal */ diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java index e5b762c97fb83504f26a3e9978d5409d6b5c1025..f5c67d6039961f7724e149a0bf37828e3f2358f4 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java index 5c6d56119397b77b61a9b0ad03782695e14a2cfe..d926a96a0cf060c1d525edb87b942e11d48e6e3f 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java index 33c0d6feafa4610e2c2199b1d28db0f668c16e75..996791c9e1ad4bf3fec761de93f25cc02650d500 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:109 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:107 * @astdecl AdditionalProperties : ASTNode ::= SchemaOb; * @production AdditionalProperties : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java index 5a39a789afbdd1aac66039267f62198429ec175a..4cf3ac4dceae7bf63c599a5e9b9f6625bda196a5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:115 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:113 * @astdecl AllOfSchema : ASTNode ::= SchemaOb; * @production AllOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java index 4ac5ae8d10b4f810e97187da4c4fd39aa82b2736..fb2cc618f47fb5c1d7abddc6e3d1cc812ab52ee5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:116 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:114 * @astdecl AnyOfSchema : ASTNode ::= SchemaOb; * @production AnyOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java index 69e53dc8656c697ab4bbb34f1b9bb06644b8029d..70819f461dd7df727054b73e15673817765fd222 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java index adec7a03dc9bf14885cdfd3e8b740e7d104abdd9..16a824bedd782b0972f01a298d1b00c07c36ac94 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:136 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:134 * @astdecl AuthorizationCode : ASTNode ::= OAuthFlowObject; * @production AuthorizationCode : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java index ad808103010c25f1295abfda29050e725210a745..8f23a445e915c3d5ce6d1778b506296b801343ea 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:82 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:80 * @astdecl CallbackOb : ASTNode; * @production CallbackOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:482 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:507 */ public static CallbackOb parseCallback(Callback callback, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { CallbackObject callbackObject = new CallbackObject(); @@ -34,12 +37,11 @@ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { if( callback.isRef() ){ CallbackReference c = new CallbackReference(); c.setRef(callback.getRef()); - c.setCallbackOb(parseCallback(callback.getReference(context).getMappedContent(Callback.class), context, map)); return c; } else { if( callback.getCallbackPaths() != null ){ for( String key : callback.getCallbackPaths().keySet() ) - callbackObject.addExpression(new Expression(key, PathItemOb.parsePath(callback.getCallbackPath(key), context, map))); + callbackObject.addExpression(new Expression(key, PathItemObject.parsePath(callback.getCallbackPath(key), context, map))); } if( callback.getExtensions() != null ){ for( String key : callback.getExtensions().keySet() ) @@ -127,18 +129,18 @@ public abstract class CallbackOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public abstract Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public abstract CallbackObject callbackObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java index 7e0f85d455057746a4ced482eaae9e23f6322c3c..56cd24533dad2a9d22afabb893e30b5923edecdf 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:84 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:82 * @astdecl CallbackObject : CallbackOb ::= Expression* Extension*; * @production CallbackObject : {@link CallbackOb} ::= <span class="component">{@link Expression}*</span> <span class="component">{@link Extension}*</span>; @@ -385,10 +388,10 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(callbackOb); @@ -404,9 +407,9 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; if( c.getNumExpression() != 0 ){ Map<String, Path> paths = new HashMap<>(); - PathItemOb p; + PathItemObject p; for( Expression e : c.getExpressions() ) { - p = e.getPathItemOb(); + p = e.getPathItemObject(); paths.put(e.getName(), p.composePath(p, map)); } callback.setCallbackPaths(paths); @@ -422,11 +425,11 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; protected boolean callbackObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:49 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:44 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public CallbackObject callbackObject() { if (callbackObject_visited) { throw new RuntimeException("Circular definition of attribute CallbackOb.callbackObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java index d5a0c5d5e60ae9be51e527602f168fc39bdbc9ec..cefb84fb7b8f7ddb912abea1fef229746b3ab1f5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:83 - * @astdecl CallbackReference : CallbackOb ::= <Ref:String> <CallbackOb:CallbackOb>; - * @production CallbackReference : {@link CallbackOb} ::= <span class="component"><Ref:String></span> <span class="component"><CallbackOb:CallbackOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:81 + * @astdecl CallbackReference : CallbackOb ::= <Ref:String>; + * @production CallbackReference : {@link CallbackOb} ::= <span class="component"><Ref:String></span>; */ public class CallbackReference extends CallbackOb implements Cloneable { @@ -43,48 +46,47 @@ public class CallbackReference extends CallbackOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "CallbackOb"}, - type = {"String", "CallbackOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public CallbackReference(String p0, CallbackOb p1) { + public CallbackReference(String p0) { setRef(p0); - setCallbackOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public CallbackReference clone() throws CloneNotSupportedException { CallbackReference node = (CallbackReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public CallbackReference copy() { try { @@ -104,7 +106,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public CallbackReference fullCopy() { @@ -115,7 +117,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public CallbackReference treeCopyNoTransform() { CallbackReference tree = (CallbackReference) copy(); @@ -136,7 +138,7 @@ public class CallbackReference extends CallbackOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public CallbackReference treeCopy() { CallbackReference tree = (CallbackReference) copy(); @@ -152,10 +154,10 @@ public class CallbackReference extends CallbackOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((CallbackReference) node).tokenString_Ref) && (tokenCallbackOb_CallbackOb == ((CallbackReference) node).tokenCallbackOb_CallbackOb); + return super.is$Equal(node) && (tokenString_Ref == ((CallbackReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class CallbackReference extends CallbackOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme CallbackOb. - * @param value The new value for the lexeme CallbackOb. - * @apilevel high-level - */ - public void setCallbackOb(CallbackOb value) { - tokenCallbackOb_CallbackOb = value; - } - /** @apilevel internal - */ - protected CallbackOb tokenCallbackOb_CallbackOb; - /** - * Retrieves the value for the lexeme CallbackOb. - * @return The value for the lexeme CallbackOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="CallbackOb") - public CallbackOb getCallbackOb() { - return tokenCallbackOb_CallbackOb; - } /** @apilevel internal */ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:558") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:548") public Callback composeCallback(CallbackOb callbackOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(callbackOb); @@ -232,21 +214,22 @@ protected java.util.Set composeCallback_CallbackOb_Map_Object__ASTNode__visited; protected boolean callbackObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:48") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:43") public CallbackObject callbackObject() { if (callbackObject_visited) { throw new RuntimeException("Circular definition of attribute CallbackOb.callbackObject()."); } callbackObject_visited = true; try { - if( getCallbackOb() instanceof CallbackObject ) - return (CallbackObject) getCallbackOb(); - else - return getCallbackOb().callbackObject(); + for( CallbackTuple t : root().callbackTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getCallbackOb().callbackObject(); + } + return new CallbackObject(); } finally { callbackObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java index 7035a5e139264fb632caa36794ea5dee956e9af7..f6fb72897e74f72ee87a1fc209030d06b13ed82c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:31 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:32 * @astdecl CallbackTuple : ASTNode ::= <Key:String> CallbackOb; * @production CallbackTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link CallbackOb}</span>; @@ -212,4 +215,22 @@ public class CallbackTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_callbackTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:37 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_callbackTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_callbackTuples(List<CallbackTuple> collection) { + super.contributeTo_OpenAPIObject_callbackTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java index adbc890b2e41664fbaaa1e283d93869b827e1f1d..5b9757fec48bc227b003b753bea6d6a090eecb28 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:135 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:133 * @astdecl ClientCredentials : ASTNode ::= OAuthFlowObject; * @production ClientCredentials : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java index 7dc5938f86894e054f17d62f94b4d3c3536ae01a..65ce67451b7254c9d97c07f66a1764fb0e828a38 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:22 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:23 * @astdecl ComponentsObject : ASTNode ::= SchemaTuple* ResponseTuple* ParameterTuple* ExampleTuple* RequestBodyTuple* HeaderTuple* SecuritySchemeTuple* LinkTuple* CallbackTuple* Extension*; * @production ComponentsObject : {@link ASTNode} ::= <span class="component">{@link SchemaTuple}*</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link ParameterTuple}*</span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link RequestBodyTuple}*</span> <span class="component">{@link HeaderTuple}*</span> <span class="component">{@link SecuritySchemeTuple}*</span> <span class="component">{@link LinkTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -118,7 +121,7 @@ public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:142 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:177 */ public static ComponentsObject parseComponents(Components components, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ComponentsObject componentsObject = new ComponentsObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java index 510b65891fcf856fe8d9bad42e3c417960d1ff26..102d7e278ad23efde3dfc59bbde4fc857da27aa7 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:8 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:9 * @astdecl ContactObject : ASTNode ::= <Name:String> <Url:String> <Email:String> Extension*; * @production ContactObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Url:String></span> <span class="component"><Email:String></span> <span class="component">{@link Extension}*</span>; @@ -49,7 +52,7 @@ public class ContactObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:68 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:103 */ public static ContactObject parseContact(Contact contact, Map<Object, ASTNode> map){ ContactObject contactObject = new ContactObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java index 16f49cb079da89a2cf9c904ca525b9c5d0a87970..1b9d52077abeece3a014ba7189f58a9d9688f1e1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:62 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:60 * @astdecl ContentTuple : ASTNode ::= <Key:String> MediaTypeObject; * @production ContentTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link MediaTypeObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java index f44a1adf62cb56e0ba62e5cbbf4ab83edfd96cdd..a9bb302349df71b9dc3f5da466a73a95021ecd14 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:48 - * @astdecl Delete : OperationOb ::= <OperationObject:OperationObject>; - * @production Delete : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:46 + * @astdecl Delete : ASTNode ::= OperationObject; + * @production Delete : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Delete extends OperationOb implements Cloneable { +public class Delete extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Delete extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Delete(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Delete clone() throws CloneNotSupportedException { Delete node = (Delete) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Delete copy() { try { @@ -103,7 +107,7 @@ public class Delete extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Delete fullCopy() { @@ -114,7 +118,7 @@ public class Delete extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Delete treeCopyNoTransform() { Delete tree = (Delete) copy(); @@ -135,7 +139,7 @@ public class Delete extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Delete treeCopy() { Delete tree = (Delete) copy(); @@ -151,81 +155,36 @@ public class Delete extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Delete) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java index a4fdd64dcd6fa494bf68b788a5a4ade47744468e..51256379d9e74f039e2914898123894eca29ca31 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:120 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:118 * @astdecl DiscriminatorObject : ASTNode ::= <PropertyName:String> MappingTuple*; * @production DiscriminatorObject : {@link ASTNode} ::= <span class="component"><PropertyName:String></span> <span class="component">{@link MappingTuple}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:840 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:830 */ public static Discriminator composeDiscriminator (DiscriminatorObject discriminatorObject, Map<Object, ASTNode> map) { Discriminator discriminator = new Discriminator(); @@ -44,7 +47,7 @@ public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:752 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:773 */ public static DiscriminatorObject parseDiscriminator (Discriminator discriminator, Map<Object, ASTNode> map) { DiscriminatorObject discriminatorObject = new DiscriminatorObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java index 65618cf6050c5793d9c7111e8ccca858bea9cd0c..20e514a41ff5ecf34c04820185a3bef2cc9b56f9 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:74 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:72 * @astdecl EncodingObject : ASTNode ::= <ContentType:String> HeaderTuple* <Style:String> <Explode:Boolean> <AllowReserved:Boolean> Extension*; * @production EncodingObject : {@link ASTNode} ::= <span class="component"><ContentType:String></span> <span class="component">{@link HeaderTuple}*</span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:493 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:483 */ public static EncodingProperty composeEncodingProperty (EncodingObject encodingObject, Map<Object, ASTNode> map){ EncodingProperty encodingProperty = new EncodingProperty(); @@ -56,7 +59,7 @@ public class EncodingObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:427 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:453 */ public static EncodingObject parseEncoding(EncodingProperty encodingProperty, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { EncodingObject encodingObject = new EncodingObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java index 8404db7eff735a2de92aefe58e639fa69280585c..bb617a9685bf6cfd656bc7adf6e8849b3e0067a7 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:71 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:69 * @astdecl EncodingTuple : ASTNode ::= <Key:String> EncodingObject; * @production EncodingTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link EncodingObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java index 2f2aead6c403452f0e06dd99c97a9517dae60e99..43112f190c7f05d9eaeb4a8a1722b65975e89b7d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:19 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:20 * @astdecl Enum : ASTNode ::= <EnumValue:String>; * @production Enum : {@link ASTNode} ::= <span class="component"><EnumValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java index e6d5bba9532613359943729610f324a036d54c38..4ca43e5a9f13826054b93cc84e45fa085e47eef5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:110 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:108 * @astdecl EnumObj : ASTNode ::= <EnumOb:Object>; * @production EnumObj : {@link ASTNode} ::= <span class="component"><EnumOb:Object></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java index bfa74789c2292227fcb883a313d92520efdb3db0..c6c8cfe21355471d5e8f7510bed8f19bfb0b8189 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:89 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:87 * @astdecl ExampleObject : ASTNode ::= <Summary:String> <Description:String> <Value:Object> <ExternalValue:String> Extension*; * @production ExampleObject : {@link ASTNode} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component"><Value:Object></span> <span class="component"><ExternalValue:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:585 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:575 */ public static Example composeExample (ExampleObject exampleObject, Map<Object, ASTNode> map){ Example example = new Example(); @@ -50,7 +53,7 @@ public class ExampleObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:505 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:529 */ public static ExampleObject parseExample(Example example, OAIContext context, Map<Object, ASTNode> map){ ExampleObject exampleObject = new ExampleObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java index 268a8669559d8a9bf7a1d9453c85de9bb148d579..75773890ef6c6c91088cbb0e9f3888dc6896333a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:26 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:27 * @astdecl ExampleTuple : ASTNode ::= <Key:String> ExampleObject; * @production ExampleTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ExampleObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java index f82ffed88240247b700a9b02f9d91e98c898704b..da8a0d9081e3a55445d2f7566d8a67965c137bdc 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:85 - * @astdecl Expression : ASTNode ::= <Name:String> PathItemOb; - * @production Expression : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link PathItemOb}</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:83 + * @astdecl Expression : ASTNode ::= <Name:String> PathItemObject; + * @production Expression : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link PathItemObject}</span>; */ public class Expression extends ASTNode<ASTNode> implements Cloneable { @@ -44,11 +47,11 @@ public class Expression extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( - name = {"Name", "PathItemOb"}, - type = {"String", "PathItemOb"}, + name = {"Name", "PathItemObject"}, + type = {"String", "PathItemObject"}, kind = {"Token", "Child"} ) - public Expression(String p0, PathItemOb p1) { + public Expression(String p0, PathItemObject p1) { setName(p0); setChild(p1, 0); } @@ -179,30 +182,30 @@ public class Expression extends ASTNode<ASTNode> implements Cloneable { return tokenString_Name != null ? tokenString_Name : ""; } /** - * Replaces the PathItemOb child. - * @param node The new node to replace the PathItemOb child. + * Replaces the PathItemObject child. + * @param node The new node to replace the PathItemObject child. * @apilevel high-level */ - public void setPathItemOb(PathItemOb node) { + public void setPathItemObject(PathItemObject node) { setChild(node, 0); } /** - * Retrieves the PathItemOb child. - * @return The current node used as the PathItemOb child. + * Retrieves the PathItemObject child. + * @return The current node used as the PathItemObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="PathItemOb") - public PathItemOb getPathItemOb() { - return (PathItemOb) getChild(0); + @ASTNodeAnnotation.Child(name="PathItemObject") + public PathItemObject getPathItemObject() { + return (PathItemObject) getChild(0); } /** - * Retrieves the PathItemOb child. + * Retrieves the PathItemObject child. * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the PathItemOb child. + * @return The current node used as the PathItemObject child. * @apilevel low-level */ - public PathItemOb getPathItemObNoTransform() { - return (PathItemOb) getChildNoTransform(0); + public PathItemObject getPathItemObjectNoTransform() { + return (PathItemObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java index 3562f3fa87076389afd30433d50b79a9bb4275b3..88e4f03d25e4ff20f932f925df6679341ffe0346 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:86 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:84 * @astdecl Extension : ASTNode ::= <Key:String> <Value:Object>; * @production Extension : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component"><Value:Object></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java index 67056a7f178c0d39e28ad19ec031eb741298b837..ac998aea420194452eac23f6846da1a5daebb3e2 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:56 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:54 * @astdecl ExternalDocObject : ASTNode ::= <Description:String> <Url:String> Extension*; * @production ExternalDocObject : {@link ASTNode} ::= <span class="component"><Description:String></span> <span class="component"><Url:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:365 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:355 */ public static ExternalDocs composeExternalDocs (ExternalDocObject externalDocObject, Map<Object, ASTNode> map){ ExternalDocs externalDocs = new ExternalDocs(); @@ -46,7 +49,7 @@ public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:312 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:340 */ public static ExternalDocObject parseExternalDocs(ExternalDocs externalDocs, Map<Object, ASTNode> map){ ExternalDocObject externalDocObject = new ExternalDocObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java index c79388d26e81f8f9188cdf0d0858995cea148c10..518fec67e4518c79a1d1cb117b8cbfc2d892c1df 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,37 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:45 - * @astdecl Get : OperationOb ::= <OperationObject:OperationObject>; - * @production Get : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:43 + * @astdecl Get : ASTNode ::= OperationObject; + * @production Get : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Get extends OperationOb implements Cloneable { +public class Get extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:165 + */ + public void connectGET (String path) throws Exception{ + URL url = new URL(path); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + + con.setRequestMethod("GET"); // optional default is GET + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (GET) : " + responseCode); + } /** * @declaredat ASTNode:1 */ @@ -38,52 +66,53 @@ public class Get extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Get(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Get clone() throws CloneNotSupportedException { Get node = (Get) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Get copy() { try { @@ -103,7 +132,7 @@ public class Get extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Get fullCopy() { @@ -114,7 +143,7 @@ public class Get extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Get treeCopyNoTransform() { Get tree = (Get) copy(); @@ -135,7 +164,7 @@ public class Get extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Get treeCopy() { Get tree = (Get) copy(); @@ -151,52 +180,100 @@ public class Get extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Get) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); + } + /** + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:38 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:38") public String inferRandomUrl(String pathRef, OperationObject operationObject) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(pathRef); _parameters.add(operationObject); if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); + throw new RuntimeException("Circular definition of attribute Get.inferRandomUrl(String,OperationObject)."); } inferRandomUrl_String_OperationObject_visited.add(_parameters); try { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + //System.out.println(p.getName() + " ---------- " + str.substring(0, str.indexOf("?")) + " -------- " + p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?")))); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ){ + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + //System.out.println(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + } + System.out.println(paths.size() + " Paths are inferred."); + + for( String path : paths ){ + System.out.println(path); + //connectGET(path); + } + } + return pathRef; + }catch (Exception e) { return ""; + } } finally { inferRandomUrl_String_OperationObject_visited.remove(_parameters); @@ -207,10 +284,10 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj /** * @attribute syn * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:207 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") + @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:207") public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { java.util.List _parameters = new java.util.ArrayList(3); _parameters.add(pathRef); @@ -218,7 +295,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj _parameters.add(responses); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); + throw new RuntimeException("Circular definition of attribute Get.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); } generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); try { @@ -267,6 +344,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj URL url = new URL(pathRef); HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setRequestMethod("GET"); // optional default is GET @@ -282,10 +360,15 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj // print result System.out.println("HTTP status code (GET) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } } return pathRef; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java index 9d81857331ccee4116e41c135cb383ab565bf602..204846e6bfc466041e74047a4afe597443f74dfe 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:50 - * @astdecl Head : OperationOb ::= <OperationObject:OperationObject>; - * @production Head : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:48 + * @astdecl Head : ASTNode ::= OperationObject; + * @production Head : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Head extends OperationOb implements Cloneable { +public class Head extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Head extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Head(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Head clone() throws CloneNotSupportedException { Head node = (Head) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Head copy() { try { @@ -103,7 +107,7 @@ public class Head extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Head fullCopy() { @@ -114,7 +118,7 @@ public class Head extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Head treeCopyNoTransform() { Head tree = (Head) copy(); @@ -135,7 +139,7 @@ public class Head extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Head treeCopy() { Head tree = (Head) copy(); @@ -151,81 +155,36 @@ public class Head extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Head) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java index 5153fa6f2fdf5aab5cb8e1955eaf5799adc017fd..4b50074933dba61e9a7c9bf1ca5a92c3f965fb6b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:98 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:96 * @astdecl HeaderOb : ASTNode; * @production HeaderOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:561 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:584 */ public static HeaderOb parseHeader(Header header, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { HeaderObject headerObject = new HeaderObject(); @@ -34,7 +37,6 @@ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { if( header.isRef() ){ HeaderReference h = new HeaderReference(); h.setRef(header.getRef()); - h.setHeaderOb(parseHeader(header.getReference(context).getMappedContent(Header.class), context, map)); return h; } else { if( header.getRequired() != null ) @@ -147,18 +149,18 @@ public abstract class HeaderOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public abstract Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public abstract HeaderObject headerObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java index c0729052f41203378258c168ff49f5d38e9a8d01..5ce062ad1ceaf87eeabb0853f4f55fadcb990fbf 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:100 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:98 * @astdecl HeaderObject : HeaderOb ::= <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; * @production HeaderObject : {@link HeaderOb} ::= <span class="component"><Description:String></span> <span class="component"><Required:Boolean></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component"><AllowEmptyValue:Boolean></span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -718,10 +721,10 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(headerOb); @@ -772,11 +775,11 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; protected boolean headerObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:67 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:64 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public HeaderObject headerObject() { if (headerObject_visited) { throw new RuntimeException("Circular definition of attribute HeaderOb.headerObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java index 88636092f4795d6ace9ae6090876dfb3c8b18b32..464de15273d30b614c6b4136ef141b643463f77b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:99 - * @astdecl HeaderReference : HeaderOb ::= <Ref:String> <HeaderOb:HeaderOb>; - * @production HeaderReference : {@link HeaderOb} ::= <span class="component"><Ref:String></span> <span class="component"><HeaderOb:HeaderOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:97 + * @astdecl HeaderReference : HeaderOb ::= <Ref:String>; + * @production HeaderReference : {@link HeaderOb} ::= <span class="component"><Ref:String></span>; */ public class HeaderReference extends HeaderOb implements Cloneable { @@ -43,48 +46,47 @@ public class HeaderReference extends HeaderOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "HeaderOb"}, - type = {"String", "HeaderOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public HeaderReference(String p0, HeaderOb p1) { + public HeaderReference(String p0) { setRef(p0); - setHeaderOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public HeaderReference clone() throws CloneNotSupportedException { HeaderReference node = (HeaderReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public HeaderReference copy() { try { @@ -104,7 +106,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public HeaderReference fullCopy() { @@ -115,7 +117,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public HeaderReference treeCopyNoTransform() { HeaderReference tree = (HeaderReference) copy(); @@ -136,7 +138,7 @@ public class HeaderReference extends HeaderOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public HeaderReference treeCopy() { HeaderReference tree = (HeaderReference) copy(); @@ -152,10 +154,10 @@ public class HeaderReference extends HeaderOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((HeaderReference) node).tokenString_Ref) && (tokenHeaderOb_HeaderOb == ((HeaderReference) node).tokenHeaderOb_HeaderOb); + return super.is$Equal(node) && (tokenString_Ref == ((HeaderReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class HeaderReference extends HeaderOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme HeaderOb. - * @param value The new value for the lexeme HeaderOb. - * @apilevel high-level - */ - public void setHeaderOb(HeaderOb value) { - tokenHeaderOb_HeaderOb = value; - } - /** @apilevel internal - */ - protected HeaderOb tokenHeaderOb_HeaderOb; - /** - * Retrieves the value for the lexeme HeaderOb. - * @return The value for the lexeme HeaderOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="HeaderOb") - public HeaderOb getHeaderOb() { - return tokenHeaderOb_HeaderOb; - } /** @apilevel internal */ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:638") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:628") public Header composeHeader(HeaderOb headerOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(headerOb); @@ -232,21 +214,22 @@ protected java.util.Set composeHeader_HeaderOb_Map_Object__ASTNode__visited; protected boolean headerObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:66") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:63") public HeaderObject headerObject() { if (headerObject_visited) { throw new RuntimeException("Circular definition of attribute HeaderOb.headerObject()."); } headerObject_visited = true; try { - if( getHeaderOb() instanceof HeaderObject ) - return (HeaderObject) getHeaderOb(); - else - return getHeaderOb().headerObject(); + for( HeaderTuple t : root().headerTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getHeaderOb().headerObject(); + } + return new HeaderObject(); } finally { headerObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java index f42e29120900e5c14e20d24c142fe0e8b309e41f..d8fa04c583b9fe70a088ec2b8387df18b82bccbf 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:28 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:29 * @astdecl HeaderTuple : ASTNode ::= <Key:String> HeaderOb; * @production HeaderTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link HeaderOb}</span>; @@ -212,4 +215,22 @@ public class HeaderTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_headerTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:25 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_headerTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_headerTuples(List<HeaderTuple> collection) { + super.contributeTo_OpenAPIObject_headerTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java index b477bbae9b52559357ef52efb127be6b3a5b3147..43ea587de89575395d98883fd51c5621fdec60c7 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:133 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:131 * @astdecl Implicit : ASTNode ::= OAuthFlowObject; * @production Implicit : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java new file mode 100644 index 0000000000000000000000000000000000000000..fa1d740b8e9569e90d7f28d99d736611f058f26e --- /dev/null +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/InferredParameter.java @@ -0,0 +1,190 @@ +/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ +package de.tudresden.inf.st.openapi.ast; +import org.openapi4j.core.exception.ResolutionException; +import org.openapi4j.core.validation.ValidationException; +import org.openapi4j.parser.model.v3.*; +import org.openapi4j.core.model.reference.Reference; +import org.openapi4j.core.model.OAIContext; +import java.io.IOException; +import java.util.*; +import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import org.openapi4j.core.exception.DecodeException; +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import javax.net.ssl.HttpsURLConnection; +import java.util.Random; +import java.util.stream.IntStream; +/** + * @ast node + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:3 + * @astdecl InferredParameter : ASTNode ::= <Parameter:String>; + * @production InferredParameter : {@link ASTNode} ::= <span class="component"><Parameter:String></span>; + + */ +public class InferredParameter extends ASTNode<ASTNode> implements Cloneable { + /** + * @declaredat ASTNode:1 + */ + public InferredParameter() { + super(); + } + /** + * Initializes the child array to the correct size. + * Initializes List and Opt nta children. + * @apilevel internal + * @ast method + * @declaredat ASTNode:10 + */ + public void init$Children() { + } + /** + * @declaredat ASTNode:12 + */ + @ASTNodeAnnotation.Constructor( + name = {"Parameter"}, + type = {"String"}, + kind = {"Token"} + ) + public InferredParameter(String p0) { + setParameter(p0); + } + /** @apilevel low-level + * @declaredat ASTNode:21 + */ + protected int numChildren() { + return 0; + } + /** + * @apilevel internal + * @declaredat ASTNode:27 + */ + public boolean mayHaveRewrite() { + return false; + } + /** @apilevel internal + * @declaredat ASTNode:31 + */ + public void flushAttrCache() { + super.flushAttrCache(); + } + /** @apilevel internal + * @declaredat ASTNode:35 + */ + public void flushCollectionCache() { + super.flushCollectionCache(); + } + /** @apilevel internal + * @declaredat ASTNode:39 + */ + public InferredParameter clone() throws CloneNotSupportedException { + InferredParameter node = (InferredParameter) super.clone(); + return node; + } + /** @apilevel internal + * @declaredat ASTNode:44 + */ + public InferredParameter copy() { + try { + InferredParameter node = (InferredParameter) clone(); + node.parent = null; + if (children != null) { + node.children = (ASTNode[]) children.clone(); + } + return node; + } catch (CloneNotSupportedException e) { + throw new Error("Error: clone not supported for " + getClass().getName()); + } + } + /** + * Create a deep copy of the AST subtree at this node. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @deprecated Please use treeCopy or treeCopyNoTransform instead + * @declaredat ASTNode:63 + */ + @Deprecated + public InferredParameter fullCopy() { + return treeCopyNoTransform(); + } + /** + * Create a deep copy of the AST subtree at this node. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @declaredat ASTNode:73 + */ + public InferredParameter treeCopyNoTransform() { + InferredParameter tree = (InferredParameter) copy(); + if (children != null) { + for (int i = 0; i < children.length; ++i) { + ASTNode child = (ASTNode) children[i]; + if (child != null) { + child = child.treeCopyNoTransform(); + tree.setChild(child, i); + } + } + } + return tree; + } + /** + * Create a deep copy of the AST subtree at this node. + * The subtree of this node is traversed to trigger rewrites before copy. + * The copy is dangling, i.e. has no parent. + * @return dangling copy of the subtree at this node + * @apilevel low-level + * @declaredat ASTNode:93 + */ + public InferredParameter treeCopy() { + InferredParameter tree = (InferredParameter) copy(); + if (children != null) { + for (int i = 0; i < children.length; ++i) { + ASTNode child = (ASTNode) getChild(i); + if (child != null) { + child = child.treeCopy(); + tree.setChild(child, i); + } + } + } + return tree; + } + /** @apilevel internal + * @declaredat ASTNode:107 + */ + protected boolean is$Equal(ASTNode node) { + return super.is$Equal(node) && (tokenString_Parameter == ((InferredParameter) node).tokenString_Parameter); + } + /** + * Replaces the lexeme Parameter. + * @param value The new value for the lexeme Parameter. + * @apilevel high-level + */ + public void setParameter(String value) { + tokenString_Parameter = value; + } + /** @apilevel internal + */ + protected String tokenString_Parameter; + /** + * Retrieves the value for the lexeme Parameter. + * @return The value for the lexeme Parameter. + * @apilevel high-level + */ + @ASTNodeAnnotation.Token(name="Parameter") + public String getParameter() { + return tokenString_Parameter != null ? tokenString_Parameter : ""; + } + /** @apilevel internal */ + public ASTNode rewriteTo() { + return super.rewriteTo(); + } + /** @apilevel internal */ + public boolean canRewrite() { + return false; + } +} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java index 981174b22438e4d77cd3fe683fbef23c4c46ca7a..74a8e66deccee35c9036697b8aea434557e1ac45 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:5 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:6 * @astdecl InfoObject : ASTNode ::= <Title:String> <Description:String> <TermsOfService:String> [ContactObject] [LicenseObject] <Version:String> Extension*; * @production InfoObject : {@link ASTNode} ::= <span class="component"><Title:String></span> <span class="component"><Description:String></span> <span class="component"><TermsOfService:String></span> <span class="component">[{@link ContactObject}]</span> <span class="component">[{@link LicenseObject}]</span> <span class="component"><Version:String></span> <span class="component">{@link Extension}*</span>; @@ -55,7 +58,7 @@ public class InfoObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:44 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:79 */ public static InfoObject parseInfo(Info info, Map<Object, ASTNode> map) { InfoObject infoObject = new InfoObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java index 87a3c379e2d0807f83465cdc1b283425e972c53d..4850f0023d80ca38e107ce039cbeab76d0d24942 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:111 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:109 * @astdecl ItemsSchema : ASTNode ::= SchemaOb; * @production ItemsSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java index 8c97e780341394c293a60c14f96318ff72dc59e6..b19b425bb0793a3face3747d459e51105a6867b4 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java index 000bc13e1d756881b660760c5ff587415a0000ad..0a2e949103c8e9e679e704bc67d22d73cd9cc3ae 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:11 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:12 * @astdecl LicenseObject : ASTNode ::= <Name:String> <Url:String> Extension*; * @production LicenseObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Url:String></span> <span class="component">{@link Extension}*</span>; @@ -47,7 +50,7 @@ public class LicenseObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:86 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:121 */ public static LicenseObject parseLicense(License license, Map<Object, ASTNode> map){ LicenseObject licenseObject = new LicenseObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java index 827c3456775a7501dcf271e7ea0976bd597f29c8..51b1a37d360d5c16a0658767516b767fa65aa5dc 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:92 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:90 * @astdecl LinkOb : ASTNode; * @production LinkOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:530 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:554 */ public static LinkOb parseLink(Link link, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { LinkObject linkObject = new LinkObject(); @@ -34,7 +37,6 @@ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { if( link.isRef() ){ LinkReference l = new LinkReference(); l.setRef(link.getRef()); - l.setLinkOb(parseLink(link.getReference(context).getMappedContent(Link.class), context, map)); return l; } else { if( link.getOperationRef() != null ) @@ -135,18 +137,18 @@ public abstract class LinkOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public abstract Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public abstract LinkObject linkObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java index 2b418d715a236ad1f32fd6de777146369f4eaf85..361b2b2a4a2409373da5283c6d195f32b7fa1b81 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:94 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:92 * @astdecl LinkObject : LinkOb ::= <OperationRef:String> <OperationID:String> LinkParameterTuple* HeaderTuple* <Description:String> [ServerObject] Extension*; * @production LinkObject : {@link LinkOb} ::= <span class="component"><OperationRef:String></span> <span class="component"><OperationID:String></span> <span class="component">{@link LinkParameterTuple}*</span> <span class="component">{@link HeaderTuple}*</span> <span class="component"><Description:String></span> <span class="component">[{@link ServerObject}]</span> <span class="component">{@link Extension}*</span>; @@ -613,10 +616,10 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(linkOb); @@ -655,11 +658,11 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; protected boolean linkObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:58 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:54 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public LinkObject linkObject() { if (linkObject_visited) { throw new RuntimeException("Circular definition of attribute LinkOb.linkObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java index cb7ca6835b9c0dcb834490a857697140425fdca3..28fa4c0e4b6bacf5c69406405922fcefde418107 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:95 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:93 * @astdecl LinkParameterTuple : ASTNode ::= <LinkParameterKey:String> <LinkParameterValue:String>; * @production LinkParameterTuple : {@link ASTNode} ::= <span class="component"><LinkParameterKey:String></span> <span class="component"><LinkParameterValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java index b3e65fa3cd7eeea5582c237ac3832763ab4e3d5a..4ae550cb638218ac62eff02cc5fca9039d55b76c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:93 - * @astdecl LinkReference : LinkOb ::= <Ref:String> <LinkOb:LinkOb>; - * @production LinkReference : {@link LinkOb} ::= <span class="component"><Ref:String></span> <span class="component"><LinkOb:LinkOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:91 + * @astdecl LinkReference : LinkOb ::= <Ref:String>; + * @production LinkReference : {@link LinkOb} ::= <span class="component"><Ref:String></span>; */ public class LinkReference extends LinkOb implements Cloneable { @@ -43,48 +46,47 @@ public class LinkReference extends LinkOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "LinkOb"}, - type = {"String", "LinkOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public LinkReference(String p0, LinkOb p1) { + public LinkReference(String p0) { setRef(p0); - setLinkOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public LinkReference clone() throws CloneNotSupportedException { LinkReference node = (LinkReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public LinkReference copy() { try { @@ -104,7 +106,7 @@ public class LinkReference extends LinkOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public LinkReference fullCopy() { @@ -115,7 +117,7 @@ public class LinkReference extends LinkOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public LinkReference treeCopyNoTransform() { LinkReference tree = (LinkReference) copy(); @@ -136,7 +138,7 @@ public class LinkReference extends LinkOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public LinkReference treeCopy() { LinkReference tree = (LinkReference) copy(); @@ -152,10 +154,10 @@ public class LinkReference extends LinkOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((LinkReference) node).tokenString_Ref) && (tokenLinkOb_LinkOb == ((LinkReference) node).tokenLinkOb_LinkOb); + return super.is$Equal(node) && (tokenString_Ref == ((LinkReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class LinkReference extends LinkOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme LinkOb. - * @param value The new value for the lexeme LinkOb. - * @apilevel high-level - */ - public void setLinkOb(LinkOb value) { - tokenLinkOb_LinkOb = value; - } - /** @apilevel internal - */ - protected LinkOb tokenLinkOb_LinkOb; - /** - * Retrieves the value for the lexeme LinkOb. - * @return The value for the lexeme LinkOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="LinkOb") - public LinkOb getLinkOb() { - return tokenLinkOb_LinkOb; - } /** @apilevel internal */ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:606") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:596") public Link composeLink(LinkOb linkOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(linkOb); @@ -232,21 +214,22 @@ protected java.util.Set composeLink_LinkOb_Map_Object__ASTNode__visited; protected boolean linkObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:57") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:53") public LinkObject linkObject() { if (linkObject_visited) { throw new RuntimeException("Circular definition of attribute LinkOb.linkObject()."); } linkObject_visited = true; try { - if( getLinkOb() instanceof LinkObject ) - return (LinkObject) getLinkOb(); - else - return getLinkOb().linkObject(); + for( LinkTuple t : root().linkTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getLinkOb().linkObject(); + } + return new LinkObject(); } finally { linkObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java index 129378c8486cc20738486ab374d6a624cf18498a..178a7e2f33310a4643a01ff6ee58ae474c2a11b0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:30 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:31 * @astdecl LinkTuple : ASTNode ::= <Key:String> LinkOb; * @production LinkTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link LinkOb}</span>; @@ -212,4 +215,22 @@ public class LinkTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_linkTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:33 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_linkTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_linkTuples(List<LinkTuple> collection) { + super.contributeTo_OpenAPIObject_linkTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java index 8a0c2d31e4906a25296f475b411e5bb4f3b323d0..4092280ccc565238ae972be72afadbb682ac38b9 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:121 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:119 * @astdecl MappingTuple : ASTNode ::= <Key:String> <Value:String>; * @production MappingTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java index b1d926441ad3a74dbd073a031c0d481f3f3acaaa..8e89ffd09e10f4a1bf3de45e3efcab49e6311895 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:70 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:68 * @astdecl MediaTypeObject : ASTNode ::= [SchemaOb] <Example:Object> ExampleTuple* EncodingTuple* Extension*; * @production MediaTypeObject : {@link ASTNode} ::= <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link EncodingTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:468 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:458 */ public static MediaType composeMediaType (MediaTypeObject mediaTypeObject, Map<Object, ASTNode> map){ MediaType mediaType = new MediaType(); @@ -54,7 +57,7 @@ public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:403 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:429 */ public static MediaTypeObject parseMediaType(MediaType mediaType, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { MediaTypeObject mediaTypeObject = new MediaTypeObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java index 7df53b01f42db2734c560c5dc1bf2dd49188bd03..2fc0e34abb94bf853e82848a0737535177663bd5 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:112 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:110 * @astdecl NotSchema : ASTNode ::= SchemaOb; * @production NotSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java index 0c7cfd0720b9d9a59758951e9f7e6d8563319d52..aa1dbf1a87ae0616ba8514590f5ed67e1df6938e 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:139 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:137 * @astdecl OAuthFlowObject : ASTNode ::= <AuthorizationUrl:String> <TokenUrl:String> <RefreshUrl:String> ScopesTuple* <Configuration:String> Extension*; * @production OAuthFlowObject : {@link ASTNode} ::= <span class="component"><AuthorizationUrl:String></span> <span class="component"><TokenUrl:String></span> <span class="component"><RefreshUrl:String></span> <span class="component">{@link ScopesTuple}*</span> <span class="component"><Configuration:String></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:927 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:917 */ public static OAuthFlow composeOAuthFlow (OAuthFlowObject oAuthFlowObject, Map<Object, ASTNode> map){ OAuthFlow oAuthFlow = new OAuthFlow(); @@ -47,7 +50,7 @@ public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:852 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:873 */ public static OAuthFlowObject parseOAuthFlow(OAuthFlow oAuthFlow, Map<Object, ASTNode> map){ OAuthFlowObject oAuthFlowObject = new OAuthFlowObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java index 15faf4ab2a0366d858d90324d5802b9543ad2c2b..569945ea5d530bbcfc959b40f945377ceef732ed 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:132 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:130 * @astdecl OAuthFlowsObject : ASTNode ::= [Implicit] [Password] [ClientCredentials] [AuthorizationCode] Extension*; * @production OAuthFlowsObject : {@link ASTNode} ::= <span class="component">[{@link Implicit}]</span> <span class="component">[{@link Password}]</span> <span class="component">[{@link ClientCredentials}]</span> <span class="component">[{@link AuthorizationCode}]</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:912 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:902 */ public static OAuthFlows composeOAuthFlows (OAuthFlowsObject oAuthFlowsObject, Map<Object, ASTNode> map){ OAuthFlows oAuthFlows = new OAuthFlows(); @@ -44,7 +47,7 @@ public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:820 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:841 */ public static OAuthFlowsObject parseOAuthFlows(OAuthFlows oAuthFlows, Map<Object, ASTNode> map){ OAuthFlowsObject oAuthFlowsObject = new OAuthFlowsObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java index c16177ec2b37f554db27e7a8a32dd1175f4129bf..582747339fd8a9ee04464070f662f602e17a1f58 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:117 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:115 * @astdecl OneOfSchema : ASTNode ::= SchemaOb; * @production OneOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java index ff1db0e66b1db4444098bbc9e3be0c1c7a4e5ba7..9ff5b537122fc007877c5e5cb8f47ccc5a0bbd20 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -19,8 +22,8 @@ import java.util.stream.IntStream; /** * @ast node * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:2 - * @astdecl OpenAPIObject : ASTNode ::= <OpenAPI:String> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension*; - * @production OpenAPIObject : {@link ASTNode} ::= <span class="component"><OpenAPI:String></span> <span class="component">[{@link InfoObject}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link PathsObject}*</span> <span class="component">[{@link ComponentsObject}]</span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link TagObject}*</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Context:OAIContext></span> <span class="component">{@link Extension}*</span>; + * @astdecl OpenAPIObject : ASTNode ::= <OpenAPI:String> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension* InferredParameter*; + * @production OpenAPIObject : {@link ASTNode} ::= <span class="component"><OpenAPI:String></span> <span class="component">[{@link InfoObject}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link PathsObject}*</span> <span class="component">[{@link ComponentsObject}]</span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link TagObject}*</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Context:OAIContext></span> <span class="component">{@link Extension}*</span> <span class="component">{@link InferredParameter}*</span>; */ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { @@ -45,7 +48,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { if( openapi.getNumPathsObject() != 0 ){ Map<String, Path> paths = new HashMap<>(); for( PathsObject p : openapi.getPathsObjects() ) - paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), PathItemObject.composePath(p.getPathItemObject(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -75,9 +78,21 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { return api3; } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:16 + */ + public void generateRequestsWithInferredParameters () throws Exception { + Set<String> urls = new HashSet<>(); + + generateRequests(); + + for( PathsObject p : getPathsObjects() ) + p.inferUrl(urls); + } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:40 */ public static OpenAPIObject parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException, DecodeException { OpenAPIObject openapi = new OpenAPIObject(); @@ -91,7 +106,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { openapi.setInfoObject(InfoObject.parseInfo(api.getInfo(), map)); if( api.getPaths() != null ){ for( String key : api.getPaths().keySet() ) - openapi.addPathsObject(new PathsObject( key, PathItemOb.parsePath(api.getPath(key), api.getContext(), map))); + openapi.addPathsObject(new PathsObject( key, PathItemObject.parsePath(api.getPath(key), api.getContext(), map))); } if( api.getServers() != null ){ for( Server s : api.getServers() ) @@ -125,7 +140,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { Set<String> urls = new HashSet<>(); Map<ResponseObject, String> responses = new HashMap<>(); - for( PathsObject p : this.getPathsObjects() ) + for( PathsObject p : getPathsObjects() ) p.generateUrl(responses); System.out.println(responses.size()); @@ -205,7 +220,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { - children = new ASTNode[8]; + children = new ASTNode[9]; setChild(new Opt(), 0); setChild(new JastAddList(), 1); setChild(new JastAddList(), 2); @@ -214,16 +229,17 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { setChild(new JastAddList(), 5); setChild(new Opt(), 6); setChild(new JastAddList(), 7); + setChild(new JastAddList(), 8); } /** - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ @ASTNodeAnnotation.Constructor( - name = {"OpenAPI", "InfoObject", "ServerObject", "PathsObject", "ComponentsObject", "SecurityRequirementObject", "TagObject", "ExternalDocObject", "Context", "Extension"}, - type = {"String", "Opt<InfoObject>", "JastAddList<ServerObject>", "JastAddList<PathsObject>", "Opt<ComponentsObject>", "JastAddList<SecurityRequirementObject>", "JastAddList<TagObject>", "Opt<ExternalDocObject>", "OAIContext", "JastAddList<Extension>"}, - kind = {"Token", "Opt", "List", "List", "Opt", "List", "List", "Opt", "Token", "List"} + name = {"OpenAPI", "InfoObject", "ServerObject", "PathsObject", "ComponentsObject", "SecurityRequirementObject", "TagObject", "ExternalDocObject", "Context", "Extension", "InferredParameter"}, + type = {"String", "Opt<InfoObject>", "JastAddList<ServerObject>", "JastAddList<PathsObject>", "Opt<ComponentsObject>", "JastAddList<SecurityRequirementObject>", "JastAddList<TagObject>", "Opt<ExternalDocObject>", "OAIContext", "JastAddList<Extension>", "JastAddList<InferredParameter>"}, + kind = {"Token", "Opt", "List", "List", "Opt", "List", "List", "Opt", "Token", "List", "List"} ) - public OpenAPIObject(String p0, Opt<InfoObject> p1, JastAddList<ServerObject> p2, JastAddList<PathsObject> p3, Opt<ComponentsObject> p4, JastAddList<SecurityRequirementObject> p5, JastAddList<TagObject> p6, Opt<ExternalDocObject> p7, OAIContext p8, JastAddList<Extension> p9) { + public OpenAPIObject(String p0, Opt<InfoObject> p1, JastAddList<ServerObject> p2, JastAddList<PathsObject> p3, Opt<ComponentsObject> p4, JastAddList<SecurityRequirementObject> p5, JastAddList<TagObject> p6, Opt<ExternalDocObject> p7, OAIContext p8, JastAddList<Extension> p9, JastAddList<InferredParameter> p10) { setOpenAPI(p0); setChild(p1, 0); setChild(p2, 1); @@ -234,45 +250,74 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { setChild(p7, 6); setContext(p8); setChild(p9, 7); + setChild(p10, 8); } /** @apilevel low-level - * @declaredat ASTNode:39 + * @declaredat ASTNode:41 */ protected int numChildren() { - return 8; + return 9; } /** * @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:47 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:49 + * @declaredat ASTNode:51 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:53 + * @declaredat ASTNode:55 */ public void flushCollectionCache() { super.flushCollectionCache(); OpenAPIObject_schemaTuples_visited = false; OpenAPIObject_schemaTuples_computed = null; OpenAPIObject_schemaTuples_value = null; + OpenAPIObject_responseTuples_visited = false; + OpenAPIObject_responseTuples_computed = null; + OpenAPIObject_responseTuples_value = null; + OpenAPIObject_parameterTuples_visited = false; + OpenAPIObject_parameterTuples_computed = null; + OpenAPIObject_parameterTuples_value = null; + OpenAPIObject_requestBodyTuples_visited = false; + OpenAPIObject_requestBodyTuples_computed = null; + OpenAPIObject_requestBodyTuples_value = null; + OpenAPIObject_headerTuples_visited = false; + OpenAPIObject_headerTuples_computed = null; + OpenAPIObject_headerTuples_value = null; + OpenAPIObject_securitySchemeTuples_visited = false; + OpenAPIObject_securitySchemeTuples_computed = null; + OpenAPIObject_securitySchemeTuples_value = null; + OpenAPIObject_linkTuples_visited = false; + OpenAPIObject_linkTuples_computed = null; + OpenAPIObject_linkTuples_value = null; + OpenAPIObject_callbackTuples_visited = false; + OpenAPIObject_callbackTuples_computed = null; + OpenAPIObject_callbackTuples_value = null; contributorMap_OpenAPIObject_schemaTuples = null; + contributorMap_OpenAPIObject_responseTuples = null; + contributorMap_OpenAPIObject_parameterTuples = null; + contributorMap_OpenAPIObject_requestBodyTuples = null; + contributorMap_OpenAPIObject_headerTuples = null; + contributorMap_OpenAPIObject_securitySchemeTuples = null; + contributorMap_OpenAPIObject_linkTuples = null; + contributorMap_OpenAPIObject_callbackTuples = null; } /** @apilevel internal - * @declaredat ASTNode:61 + * @declaredat ASTNode:91 */ public OpenAPIObject clone() throws CloneNotSupportedException { OpenAPIObject node = (OpenAPIObject) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:66 + * @declaredat ASTNode:96 */ public OpenAPIObject copy() { try { @@ -292,7 +337,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:85 + * @declaredat ASTNode:115 */ @Deprecated public OpenAPIObject fullCopy() { @@ -303,7 +348,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:95 + * @declaredat ASTNode:125 */ public OpenAPIObject treeCopyNoTransform() { OpenAPIObject tree = (OpenAPIObject) copy(); @@ -324,7 +369,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:115 + * @declaredat ASTNode:145 */ public OpenAPIObject treeCopy() { OpenAPIObject tree = (OpenAPIObject) copy(); @@ -340,7 +385,7 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:129 + * @declaredat ASTNode:159 */ protected boolean is$Equal(ASTNode node) { return super.is$Equal(node) && (tokenString_OpenAPI == ((OpenAPIObject) node).tokenString_OpenAPI) && (tokenOAIContext_Context == ((OpenAPIObject) node).tokenOAIContext_Context); @@ -1088,9 +1133,119 @@ public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } + /** + * Replaces the InferredParameter list. + * @param list The new list node to be used as the InferredParameter list. + * @apilevel high-level + */ + public void setInferredParameterList(JastAddList<InferredParameter> list) { + setChild(list, 8); + } + /** + * Retrieves the number of children in the InferredParameter list. + * @return Number of children in the InferredParameter list. + * @apilevel high-level + */ + public int getNumInferredParameter() { + return getInferredParameterList().getNumChild(); + } + /** + * Retrieves the number of children in the InferredParameter list. + * Calling this method will not trigger rewrites. + * @return Number of children in the InferredParameter list. + * @apilevel low-level + */ + public int getNumInferredParameterNoTransform() { + return getInferredParameterListNoTransform().getNumChildNoTransform(); + } + /** + * Retrieves the element at index {@code i} in the InferredParameter list. + * @param i Index of the element to return. + * @return The element at position {@code i} in the InferredParameter list. + * @apilevel high-level + */ + public InferredParameter getInferredParameter(int i) { + return (InferredParameter) getInferredParameterList().getChild(i); + } + /** + * Check whether the InferredParameter list has any children. + * @return {@code true} if it has at least one child, {@code false} otherwise. + * @apilevel high-level + */ + public boolean hasInferredParameter() { + return getInferredParameterList().getNumChild() != 0; + } + /** + * Append an element to the InferredParameter list. + * @param node The element to append to the InferredParameter list. + * @apilevel high-level + */ + public void addInferredParameter(InferredParameter node) { + JastAddList<InferredParameter> list = (parent == null) ? getInferredParameterListNoTransform() : getInferredParameterList(); + list.addChild(node); + } + /** @apilevel low-level + */ + public void addInferredParameterNoTransform(InferredParameter node) { + JastAddList<InferredParameter> list = getInferredParameterListNoTransform(); + list.addChild(node); + } + /** + * Replaces the InferredParameter list element at index {@code i} with the new node {@code node}. + * @param node The new node to replace the old list element. + * @param i The list index of the node to be replaced. + * @apilevel high-level + */ + public void setInferredParameter(InferredParameter node, int i) { + JastAddList<InferredParameter> list = getInferredParameterList(); + list.setChild(node, i); + } + /** + * Retrieves the InferredParameter list. + * @return The node representing the InferredParameter list. + * @apilevel high-level + */ + @ASTNodeAnnotation.ListChild(name="InferredParameter") + public JastAddList<InferredParameter> getInferredParameterList() { + JastAddList<InferredParameter> list = (JastAddList<InferredParameter>) getChild(8); + return list; + } + /** + * Retrieves the InferredParameter list. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The node representing the InferredParameter list. + * @apilevel low-level + */ + public JastAddList<InferredParameter> getInferredParameterListNoTransform() { + return (JastAddList<InferredParameter>) getChildNoTransform(8); + } + /** + * @return the element at index {@code i} in the InferredParameter list without + * triggering rewrites. + */ + public InferredParameter getInferredParameterNoTransform(int i) { + return (InferredParameter) getInferredParameterListNoTransform().getChildNoTransform(i); + } + /** + * Retrieves the InferredParameter list. + * @return The node representing the InferredParameter list. + * @apilevel high-level + */ + public JastAddList<InferredParameter> getInferredParameters() { + return getInferredParameterList(); + } + /** + * Retrieves the InferredParameter list. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The node representing the InferredParameter list. + * @apilevel low-level + */ + public JastAddList<InferredParameter> getInferredParametersNoTransform() { + return getInferredParameterListNoTransform(); + } /** * @aspect <NoAspect> - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ /** @apilevel internal */ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_schemaTuples = null; @@ -1104,32 +1259,147 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 - * @apilevel internal + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 */ - public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { - int childIndex = this.getIndexOfChild(_callerNode); - return this; + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_responseTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_responseTuples() { + if (contributorMap_OpenAPIObject_responseTuples == null) { + contributorMap_OpenAPIObject_responseTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_responseTuples(this, contributorMap_OpenAPIObject_responseTuples); + } } + /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:13 - * @apilevel internal - * @return {@code true} if this node has an equation for the inherited attribute root + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 */ - protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { - return true; + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_parameterTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_parameterTuples() { + if (contributorMap_OpenAPIObject_parameterTuples == null) { + contributorMap_OpenAPIObject_parameterTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_parameterTuples(this, contributorMap_OpenAPIObject_parameterTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_requestBodyTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_requestBodyTuples() { + if (contributorMap_OpenAPIObject_requestBodyTuples == null) { + contributorMap_OpenAPIObject_requestBodyTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_requestBodyTuples(this, contributorMap_OpenAPIObject_requestBodyTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_headerTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_headerTuples() { + if (contributorMap_OpenAPIObject_headerTuples == null) { + contributorMap_OpenAPIObject_headerTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_headerTuples(this, contributorMap_OpenAPIObject_headerTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_securitySchemeTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_securitySchemeTuples() { + if (contributorMap_OpenAPIObject_securitySchemeTuples == null) { + contributorMap_OpenAPIObject_securitySchemeTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_securitySchemeTuples(this, contributorMap_OpenAPIObject_securitySchemeTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_linkTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_linkTuples() { + if (contributorMap_OpenAPIObject_linkTuples == null) { + contributorMap_OpenAPIObject_linkTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_linkTuples(this, contributorMap_OpenAPIObject_linkTuples); + } + } + + /** + * @aspect <NoAspect> + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + /** @apilevel internal */ +protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIObject_callbackTuples = null; + + /** @apilevel internal */ + protected void survey_OpenAPIObject_callbackTuples() { + if (contributorMap_OpenAPIObject_callbackTuples == null) { + contributorMap_OpenAPIObject_callbackTuples = new java.util.IdentityHashMap<ASTNode, java.util.Set<ASTNode>>(); + collect_contributors_OpenAPIObject_callbackTuples(this, contributorMap_OpenAPIObject_callbackTuples); + } + } + +/** @apilevel internal */ +protected boolean collectInferredParameters_visited = false; + /** + * @attribute syn + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:7 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:7") + public Set<String> collectInferredParameters() { + if (collectInferredParameters_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.collectInferredParameters()."); + } + collectInferredParameters_visited = true; + try { + Set<String> collect = new HashSet<>(); + + for( InferredParameter i : getInferredParameters() ) + collect.add(i.getParameter()); + + return collect; + } + finally { + collectInferredParameters_visited = false; + } } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 * @apilevel internal */ public Set<String> Define_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { if (_callerNode == getPathsObjectListNoTransform()) { - // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:21 + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:26 int i = _callerNode.getIndexOfChild(_childNode); { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); - String path = ((OpenAPIObject) getParent()).getServerObject(0).getUrl(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); + String path = getServerObject(0).getUrl(); if( p.hasGet() ) urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); @@ -1144,13 +1414,29 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO } } /** - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 * @apilevel internal * @return {@code true} if this node has an equation for the inherited attribute inferUrl */ protected boolean canDefine_inferUrl(ASTNode _callerNode, ASTNode _childNode, Set<String> urls) { return true; } + /** + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @apilevel internal + */ + public OpenAPIObject Define_root(ASTNode _callerNode, ASTNode _childNode) { + int childIndex = this.getIndexOfChild(_callerNode); + return this; + } + /** + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:5 + * @apilevel internal + * @return {@code true} if this node has an equation for the inherited attribute root + */ + protected boolean canDefine_root(ASTNode _callerNode, ASTNode _childNode) { + return true; + } /** * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:83 * @apilevel internal @@ -1160,7 +1446,7 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:84 int i = _callerNode.getIndexOfChild(_childNode); { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); String path = getServerObject(0).getUrl(); if( p.hasGet() ) @@ -1197,12 +1483,12 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO protected boolean OpenAPIObject_schemaTuples_visited = false; /** * @attribute coll - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16 + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:16") - public Set<SchemaTuple> schemaTuples() { + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:8") + public List<SchemaTuple> schemaTuples() { ASTState state = state(); if (OpenAPIObject_schemaTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_schemaTuples_computed == state().cycle()) { return OpenAPIObject_schemaTuples_value; @@ -1223,14 +1509,14 @@ protected boolean OpenAPIObject_schemaTuples_visited = false; return OpenAPIObject_schemaTuples_value; } /** @apilevel internal */ - private Set<SchemaTuple> schemaTuples_compute() { + private List<SchemaTuple> schemaTuples_compute() { ASTNode node = this; while (node != null && !(node instanceof OpenAPIObject)) { node = node.getParent(); } OpenAPIObject root = (OpenAPIObject) node; root.survey_OpenAPIObject_schemaTuples(); - Set<SchemaTuple> _computedValue = new HashSet<>(); + List<SchemaTuple> _computedValue = new ArrayList<>(); if (root.contributorMap_OpenAPIObject_schemaTuples.containsKey(this)) { for (ASTNode contributor : root.contributorMap_OpenAPIObject_schemaTuples.get(this)) { contributor.contributeTo_OpenAPIObject_schemaTuples(_computedValue); @@ -1242,6 +1528,363 @@ protected boolean OpenAPIObject_schemaTuples_visited = false; protected ASTState.Cycle OpenAPIObject_schemaTuples_computed = null; /** @apilevel internal */ - protected Set<SchemaTuple> OpenAPIObject_schemaTuples_value; + protected List<SchemaTuple> OpenAPIObject_schemaTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_responseTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:12") + public List<ResponseTuple> responseTuples() { + ASTState state = state(); + if (OpenAPIObject_responseTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_responseTuples_computed == state().cycle()) { + return OpenAPIObject_responseTuples_value; + } + if (OpenAPIObject_responseTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.responseTuples()."); + } + OpenAPIObject_responseTuples_visited = true; + OpenAPIObject_responseTuples_value = responseTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_responseTuples_computed = state().cycle(); + + } else { + OpenAPIObject_responseTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_responseTuples_visited = false; + return OpenAPIObject_responseTuples_value; + } + /** @apilevel internal */ + private List<ResponseTuple> responseTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_responseTuples(); + List<ResponseTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_responseTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_responseTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_responseTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_responseTuples_computed = null; + + /** @apilevel internal */ + protected List<ResponseTuple> OpenAPIObject_responseTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_parameterTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:16") + public List<ParameterTuple> parameterTuples() { + ASTState state = state(); + if (OpenAPIObject_parameterTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_parameterTuples_computed == state().cycle()) { + return OpenAPIObject_parameterTuples_value; + } + if (OpenAPIObject_parameterTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.parameterTuples()."); + } + OpenAPIObject_parameterTuples_visited = true; + OpenAPIObject_parameterTuples_value = parameterTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_parameterTuples_computed = state().cycle(); + + } else { + OpenAPIObject_parameterTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_parameterTuples_visited = false; + return OpenAPIObject_parameterTuples_value; + } + /** @apilevel internal */ + private List<ParameterTuple> parameterTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_parameterTuples(); + List<ParameterTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_parameterTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_parameterTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_parameterTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_parameterTuples_computed = null; + + /** @apilevel internal */ + protected List<ParameterTuple> OpenAPIObject_parameterTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_requestBodyTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:20") + public List<RequestBodyTuple> requestBodyTuples() { + ASTState state = state(); + if (OpenAPIObject_requestBodyTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_requestBodyTuples_computed == state().cycle()) { + return OpenAPIObject_requestBodyTuples_value; + } + if (OpenAPIObject_requestBodyTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.requestBodyTuples()."); + } + OpenAPIObject_requestBodyTuples_visited = true; + OpenAPIObject_requestBodyTuples_value = requestBodyTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_requestBodyTuples_computed = state().cycle(); + + } else { + OpenAPIObject_requestBodyTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_requestBodyTuples_visited = false; + return OpenAPIObject_requestBodyTuples_value; + } + /** @apilevel internal */ + private List<RequestBodyTuple> requestBodyTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_requestBodyTuples(); + List<RequestBodyTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_requestBodyTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_requestBodyTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_requestBodyTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_requestBodyTuples_computed = null; + + /** @apilevel internal */ + protected List<RequestBodyTuple> OpenAPIObject_requestBodyTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_headerTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:24") + public List<HeaderTuple> headerTuples() { + ASTState state = state(); + if (OpenAPIObject_headerTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_headerTuples_computed == state().cycle()) { + return OpenAPIObject_headerTuples_value; + } + if (OpenAPIObject_headerTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.headerTuples()."); + } + OpenAPIObject_headerTuples_visited = true; + OpenAPIObject_headerTuples_value = headerTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_headerTuples_computed = state().cycle(); + + } else { + OpenAPIObject_headerTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_headerTuples_visited = false; + return OpenAPIObject_headerTuples_value; + } + /** @apilevel internal */ + private List<HeaderTuple> headerTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_headerTuples(); + List<HeaderTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_headerTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_headerTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_headerTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_headerTuples_computed = null; + + /** @apilevel internal */ + protected List<HeaderTuple> OpenAPIObject_headerTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_securitySchemeTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:28") + public List<SecuritySchemeTuple> securitySchemeTuples() { + ASTState state = state(); + if (OpenAPIObject_securitySchemeTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_securitySchemeTuples_computed == state().cycle()) { + return OpenAPIObject_securitySchemeTuples_value; + } + if (OpenAPIObject_securitySchemeTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.securitySchemeTuples()."); + } + OpenAPIObject_securitySchemeTuples_visited = true; + OpenAPIObject_securitySchemeTuples_value = securitySchemeTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_securitySchemeTuples_computed = state().cycle(); + + } else { + OpenAPIObject_securitySchemeTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_securitySchemeTuples_visited = false; + return OpenAPIObject_securitySchemeTuples_value; + } + /** @apilevel internal */ + private List<SecuritySchemeTuple> securitySchemeTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_securitySchemeTuples(); + List<SecuritySchemeTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_securitySchemeTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_securitySchemeTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_securitySchemeTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_securitySchemeTuples_computed = null; + + /** @apilevel internal */ + protected List<SecuritySchemeTuple> OpenAPIObject_securitySchemeTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_linkTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:32") + public List<LinkTuple> linkTuples() { + ASTState state = state(); + if (OpenAPIObject_linkTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_linkTuples_computed == state().cycle()) { + return OpenAPIObject_linkTuples_value; + } + if (OpenAPIObject_linkTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.linkTuples()."); + } + OpenAPIObject_linkTuples_visited = true; + OpenAPIObject_linkTuples_value = linkTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_linkTuples_computed = state().cycle(); + + } else { + OpenAPIObject_linkTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_linkTuples_visited = false; + return OpenAPIObject_linkTuples_value; + } + /** @apilevel internal */ + private List<LinkTuple> linkTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_linkTuples(); + List<LinkTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_linkTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_linkTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_linkTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_linkTuples_computed = null; + + /** @apilevel internal */ + protected List<LinkTuple> OpenAPIObject_linkTuples_value; + +/** @apilevel internal */ +protected boolean OpenAPIObject_callbackTuples_visited = false; + /** + * @attribute coll + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36 + */ + @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.COLL) + @ASTNodeAnnotation.Source(aspect="Parser", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:36") + public List<CallbackTuple> callbackTuples() { + ASTState state = state(); + if (OpenAPIObject_callbackTuples_computed == ASTState.NON_CYCLE || OpenAPIObject_callbackTuples_computed == state().cycle()) { + return OpenAPIObject_callbackTuples_value; + } + if (OpenAPIObject_callbackTuples_visited) { + throw new RuntimeException("Circular definition of attribute OpenAPIObject.callbackTuples()."); + } + OpenAPIObject_callbackTuples_visited = true; + OpenAPIObject_callbackTuples_value = callbackTuples_compute(); + if (state().inCircle()) { + OpenAPIObject_callbackTuples_computed = state().cycle(); + + } else { + OpenAPIObject_callbackTuples_computed = ASTState.NON_CYCLE; + + } + OpenAPIObject_callbackTuples_visited = false; + return OpenAPIObject_callbackTuples_value; + } + /** @apilevel internal */ + private List<CallbackTuple> callbackTuples_compute() { + ASTNode node = this; + while (node != null && !(node instanceof OpenAPIObject)) { + node = node.getParent(); + } + OpenAPIObject root = (OpenAPIObject) node; + root.survey_OpenAPIObject_callbackTuples(); + List<CallbackTuple> _computedValue = new ArrayList<>(); + if (root.contributorMap_OpenAPIObject_callbackTuples.containsKey(this)) { + for (ASTNode contributor : root.contributorMap_OpenAPIObject_callbackTuples.get(this)) { + contributor.contributeTo_OpenAPIObject_callbackTuples(_computedValue); + } + } + return _computedValue; + } + /** @apilevel internal */ + protected ASTState.Cycle OpenAPIObject_callbackTuples_computed = null; + + /** @apilevel internal */ + protected List<CallbackTuple> OpenAPIObject_callbackTuples_value; } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java deleted file mode 100644 index e4a48bdc6761ba46f7ffcaa8ffd4cffd1d77f023..0000000000000000000000000000000000000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationOb.java +++ /dev/null @@ -1,125 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:43 - * @astdecl OperationOb : ASTNode; - * @production OperationOb : {@link ASTNode}; - - */ -public abstract class OperationOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @declaredat ASTNode:1 - */ - public OperationOb() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** @apilevel low-level - * @declaredat ASTNode:13 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:19 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:23 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:27 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:31 - */ - public OperationOb clone() throws CloneNotSupportedException { - OperationOb node = (OperationOb) super.clone(); - return node; - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:42 - */ - @Deprecated - public abstract OperationOb fullCopy(); - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:50 - */ - public abstract OperationOb treeCopyNoTransform(); - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:58 - */ - public abstract OperationOb treeCopy(); - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public abstract String inferRandomUrl(String pathRef, OperationObject operationObject); - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public abstract String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses); - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java index 377813381d8f140c655f9bae14efea5186b51cc1..b388aca6144b014e4b85d389285195399f7e6a3f 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,15 +21,15 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:44 - * @astdecl OperationObject : OperationOb ::= Tag* <Summary:String> <Description:String> [ExternalDocObject] <OperationID:String> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; - * @production OperationObject : {@link OperationOb} ::= <span class="component">{@link Tag}*</span> <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><OperationID:String></span> <span class="component">{@link ParameterOb}*</span> <span class="component">[{@link RequestBodyOb}]</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link ServerObject}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:42 + * @astdecl OperationObject : ASTNode ::= Tag* <Summary:String> <Description:String> [ExternalDocObject] <OperationID:String> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; + * @production OperationObject : {@link ASTNode} ::= <span class="component">{@link Tag}*</span> <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><OperationID:String></span> <span class="component">{@link ParameterOb}*</span> <span class="component">[{@link RequestBodyOb}]</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link ServerObject}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; */ -public class OperationObject extends OperationOb implements Cloneable { +public class OperationObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:312 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:302 */ public static Operation composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); @@ -80,9 +83,51 @@ public class OperationObject extends OperationOb implements Cloneable { return operation; } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:129 + */ + public void writeDictionary (SchemaOb schema, String resp) throws Exception{ + String schemaName = schema.getClass().getName(); + ObjectMapper mapper = new ObjectMapper(); + JsonNode respNode = mapper.readTree(resp); + String value; + + if (schemaName.substring(schemaName.lastIndexOf(".") + 1).equals("SchemaReference")) { + for (PropertyItem p : schema.schemaObject().getPropertyItems()) { + String infName = ((SchemaReference) schema).getRef().substring(((SchemaReference) schema).getRef().lastIndexOf("/") + 1) + p.getName(); + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(infName + "?" + value)); + root().addInferredParameter(new InferredParameter(p.getName() + "?" + value)); + } + } else { + for (PropertyItem p : schema.schemaObject().getPropertyItems()){ + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(p.getName() + "?" + respNode.get(p.getName()).textValue())); + } + } + + } + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:155 + */ + public void writeDictionaryWithArray (SchemaOb schema, String resp) throws Exception{ + ObjectMapper mapper = new ObjectMapper(); + ArrayNode respNode = ((ArrayNode) mapper.readTree(resp)); + Iterator<JsonNode> props = respNode.elements(); + + while( props.hasNext() ) + writeDictionary(schema.schemaObject().getItemsSchema().getSchemaOb(), props.next().toString()); + + } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:261 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:289 */ public static OperationObject parseOperation(Operation operation, OAIContext context, Map<Object, ASTNode> map) throws DecodeException{ OperationObject operationObject = new OperationObject(); @@ -136,7 +181,7 @@ public class OperationObject extends OperationOb implements Cloneable { } /** * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:377 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:364 */ public String generateRandomString(Random rand, JastAddList<EnumObj> objs) { if( objs.getNumChild() != 0 ) @@ -150,7 +195,7 @@ public class OperationObject extends OperationOb implements Cloneable { } /** * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:388 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:375 */ public String generateRandomInt(Random rand, int minimum, int maximum){ if( minimum > -1 && maximum > 0 ) @@ -160,7 +205,7 @@ public class OperationObject extends OperationOb implements Cloneable { else if( maximum > 0 ) return String.valueOf(rand.nextInt(maximum)); return String.valueOf(rand.nextInt()); - } + } /** * @declaredat ASTNode:1 */ @@ -1288,82 +1333,6 @@ public class OperationObject extends OperationOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set addDict_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:64 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:64") - public Map<String, List<String>> addDict(Map<ResponseObject, String> responses) { - Object _parameters = responses; - if (addDict_Map_ResponseObject__String__visited == null) addDict_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (addDict_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationObject.addDict(Map_ResponseObject__String_)."); - } - addDict_Map_ResponseObject__String__visited.add(_parameters); - try { - Map<String, List<String>> map = new HashMap<>(); - - return map; - } - finally { - addDict_Map_ResponseObject__String__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } - } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java index c98cb09988ec0770841cd57fd128495e08c92f65..3368d8be91f03977a78b01d16724cfb319a40dc1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java index 95f709cd36aa725dd2f9ece8c3ba31aa6d7ca168..c573358929a507356defda7f3d0287c93beb5ad7 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:49 - * @astdecl Options : OperationOb ::= <OperationObject:OperationObject>; - * @production Options : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:47 + * @astdecl Options : ASTNode ::= OperationObject; + * @production Options : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Options extends OperationOb implements Cloneable { +public class Options extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Options extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Options(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Options clone() throws CloneNotSupportedException { Options node = (Options) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Options copy() { try { @@ -103,7 +107,7 @@ public class Options extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Options fullCopy() { @@ -114,7 +118,7 @@ public class Options extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Options treeCopyNoTransform() { Options tree = (Options) copy(); @@ -135,7 +139,7 @@ public class Options extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Options treeCopy() { Options tree = (Options) copy(); @@ -151,81 +155,36 @@ public class Options extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Options) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java index 2727a42f0927ab738eaaf0702c1a4e8bd42f9ba9..273890bab39b859d438deafba6d382e95df2bc58 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:59 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:57 * @astdecl ParameterOb : ASTNode; * @production ParameterOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:329 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:357 */ public static ParameterOb parseParameter(Parameter parameter, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ParameterObject parameterObject = new ParameterObject(); @@ -34,7 +37,6 @@ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable if( parameter.isRef() ){ ParameterReference p = new ParameterReference(); p.setRef(parameter.getRef()); - p.setParameterOb(parseParameter(parameter.getReference(context).getMappedContent(Parameter.class), context, map)); return p; } else { if( parameter.getName() != null ) @@ -151,18 +153,18 @@ public abstract class ParameterOb extends ASTNode<ASTNode> implements Cloneable /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public abstract Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public abstract ParameterObject parameterObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java index e352fe278c88505d290779e81a8b77063c160e66..b2ca36a0f318407fc1b7599e34e078f6414aa1db 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:61 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:59 * @astdecl ParameterObject : ParameterOb ::= <Name:String> <In:String> <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; * @production ParameterObject : {@link ParameterOb} ::= <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Description:String></span> <span class="component"><Required:Boolean></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component"><AllowEmptyValue:Boolean></span> <span class="component"><Style:String></span> <span class="component"><Explode:Boolean></span> <span class="component"><AllowReserved:Boolean></span> <span class="component">[{@link SchemaOb}]</span> <span class="component"><Example:Object></span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -760,10 +763,10 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(parameterOb); @@ -828,11 +831,11 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite protected boolean parameterObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:4 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:4 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public ParameterObject parameterObject() { if (parameterObject_visited) { throw new RuntimeException("Circular definition of attribute ParameterOb.parameterObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java index f2e1a36e1c809df630379e25b4f6d096a50d4ac2..56da598433ec9ac2a746f2aaf1455f19ecbf53a0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:60 - * @astdecl ParameterReference : ParameterOb ::= <Ref:String> <ParameterOb:ParameterOb>; - * @production ParameterReference : {@link ParameterOb} ::= <span class="component"><Ref:String></span> <span class="component"><ParameterOb:ParameterOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:58 + * @astdecl ParameterReference : ParameterOb ::= <Ref:String>; + * @production ParameterReference : {@link ParameterOb} ::= <span class="component"><Ref:String></span>; */ public class ParameterReference extends ParameterOb implements Cloneable { @@ -43,48 +46,47 @@ public class ParameterReference extends ParameterOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "ParameterOb"}, - type = {"String", "ParameterOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public ParameterReference(String p0, ParameterOb p1) { + public ParameterReference(String p0) { setRef(p0); - setParameterOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public ParameterReference clone() throws CloneNotSupportedException { ParameterReference node = (ParameterReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public ParameterReference copy() { try { @@ -104,7 +106,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public ParameterReference fullCopy() { @@ -115,7 +117,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public ParameterReference treeCopyNoTransform() { ParameterReference tree = (ParameterReference) copy(); @@ -136,7 +138,7 @@ public class ParameterReference extends ParameterOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public ParameterReference treeCopy() { ParameterReference tree = (ParameterReference) copy(); @@ -152,10 +154,10 @@ public class ParameterReference extends ParameterOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((ParameterReference) node).tokenString_Ref) && (tokenParameterOb_ParameterOb == ((ParameterReference) node).tokenParameterOb_ParameterOb); + return super.is$Equal(node) && (tokenString_Ref == ((ParameterReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class ParameterReference extends ParameterOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme ParameterOb. - * @param value The new value for the lexeme ParameterOb. - * @apilevel high-level - */ - public void setParameterOb(ParameterOb value) { - tokenParameterOb_ParameterOb = value; - } - /** @apilevel internal - */ - protected ParameterOb tokenParameterOb_ParameterOb; - /** - * Retrieves the value for the lexeme ParameterOb. - * @return The value for the lexeme ParameterOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="ParameterOb") - public ParameterOb getParameterOb() { - return tokenParameterOb_ParameterOb; - } /** @apilevel internal */ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:382") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:372") public Parameter composeParameter(ParameterOb parameterOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(parameterOb); @@ -232,21 +214,22 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite protected boolean parameterObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:3") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:3") public ParameterObject parameterObject() { if (parameterObject_visited) { throw new RuntimeException("Circular definition of attribute ParameterOb.parameterObject()."); } parameterObject_visited = true; try { - if( getParameterOb() instanceof ParameterObject ) - return (ParameterObject) getParameterOb(); - else - return getParameterOb().parameterObject(); + for( ParameterTuple t : root().parameterTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getParameterOb().parameterObject(); + } + return new ParameterObject(); } finally { parameterObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java index c24e9955032816691bbb3c2cf1bc3f762ef72b6d..5b5c260d4bc395f70bfec2194b54a2194c47de03 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:25 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:26 * @astdecl ParameterTuple : ASTNode ::= <Key:String> ParameterOb; * @production ParameterTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ParameterOb}</span>; @@ -212,4 +215,22 @@ public class ParameterTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_parameterTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:17 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_parameterTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_parameterTuples(List<ParameterTuple> collection) { + super.contributeTo_OpenAPIObject_parameterTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java index d8f1b0c4c3b73e93a0e716c332fe2238438ed88c..7807b4bbed900537dbff36214cad1173f1fc3091 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:134 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:132 * @astdecl Password : ASTNode ::= OAuthFlowObject; * @production Password : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java index f70f6436035e94e133fd0b41e46378ed4ee9a0e2..86726a7cc3a40684c082c1a1e9042b0ea1c0c0dd 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:51 - * @astdecl Patch : OperationOb ::= <OperationObject:OperationObject>; - * @production Patch : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:49 + * @astdecl Patch : ASTNode ::= OperationObject; + * @production Patch : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Patch extends OperationOb implements Cloneable { +public class Patch extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Patch extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Patch(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Patch clone() throws CloneNotSupportedException { Patch node = (Patch) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Patch copy() { try { @@ -103,7 +107,7 @@ public class Patch extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Patch fullCopy() { @@ -114,7 +118,7 @@ public class Patch extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Patch treeCopyNoTransform() { Patch tree = (Patch) copy(); @@ -135,7 +139,7 @@ public class Patch extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Patch treeCopy() { Patch tree = (Patch) copy(); @@ -151,81 +155,36 @@ public class Patch extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Patch) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java deleted file mode 100644 index 50fddea000403635b8a9af34d1c18c042369bf93..0000000000000000000000000000000000000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemOb.java +++ /dev/null @@ -1,199 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:38 - * @astdecl PathItemOb : ASTNode; - * @production PathItemOb : {@link ASTNode}; - - */ -public abstract class PathItemOb extends ASTNode<ASTNode> implements Cloneable { - /** - * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:190 - */ - public static PathItemOb parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { - PathItemObject pathItem = new PathItemObject(); - - if( path.isRef() ){ - PathItemReference p = new PathItemReference(); - p.setRef(path.getRef()); - p.setPathItemOb((PathItemObject) parsePath(path.getReference(context).getMappedContent(Path.class), context, map)); - return p; - } else { - if( path.getSummary() != null ) - pathItem.setSummary(path.getSummary()); - if( path.getDescription() != null ) - pathItem.setDescription(path.getDescription()); - if( path.getGet() != null ){ - Get get = new Get(); - get.setOperationObject( OperationObject.parseOperation( path.getGet(), context, map ) ); - pathItem.setGet(get); - } - if( path.getPut() != null ){ - Put put = new Put(); - put.setOperationObject( OperationObject.parseOperation( path.getPut(), context, map ) ); - pathItem.setPut(put); - } - if( path.getPost() != null ){ - Post post = new Post(); - post.setOperationObject( OperationObject.parseOperation( path.getPost(), context, map ) ); - pathItem.setPost(post); - } - if( path.getDelete() != null ){ - Delete delete = new Delete(); - delete.setOperationObject( OperationObject.parseOperation( path.getDelete(), context, map ) ); - pathItem.setDelete(delete); - } - if( path.getOptions() != null ){ - Options options = new Options(); - options.setOperationObject( OperationObject.parseOperation( path.getOptions(), context, map ) ); - pathItem.setOptions(options); - } - if( path.getHead() != null ){ - Head head = new Head(); - head.setOperationObject( OperationObject.parseOperation( path.getHead(), context, map ) ); - pathItem.setHead(head); - } - if( path.getPatch() != null ){ - Patch patch = new Patch(); - patch.setOperationObject( OperationObject.parseOperation( path.getPatch(), context, map ) ); - pathItem.setPatch(patch); - } - if( path.getTrace() != null ){ - Trace trace = new Trace(); - trace.setOperationObject( OperationObject.parseOperation( path.getTrace(), context, map ) ); - pathItem.setTrace(trace); - } - if( path.getServers() != null ){ - for(Server s : path.getServers()) - pathItem.addServerObject( ServerObject.parseServer(s, map)); - } - if( path.getParameters() != null ){ - for(Parameter p : path.getParameters()) - pathItem.addParameterOb(ParameterOb.parseParameter(p, context, map)); - } - if( path.getExtensions() != null ){ - for( String key : path.getExtensions().keySet() ) - pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); - } - } - - map.put(path, pathItem); - return pathItem; - } - /** - * @declaredat ASTNode:1 - */ - public PathItemOb() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** @apilevel low-level - * @declaredat ASTNode:13 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:19 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:23 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:27 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:31 - */ - public PathItemOb clone() throws CloneNotSupportedException { - PathItemOb node = (PathItemOb) super.clone(); - return node; - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:42 - */ - @Deprecated - public abstract PathItemOb fullCopy(); - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:50 - */ - public abstract PathItemOb treeCopyNoTransform(); - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:58 - */ - public abstract PathItemOb treeCopy(); - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public abstract Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map); - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public abstract PathItemObject pathItemObject(); - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java index 56eda0f0745438f690b7c41bbf34e85c3c67bab6..bc9c1db3906d3d829659678d054083ed1f7fc453 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,122 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:40 - * @astdecl PathItemObject : PathItemOb ::= <Summary:String> <Description:String> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; - * @production PathItemObject : {@link PathItemOb} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link Get}]</span> <span class="component">[{@link Put}]</span> <span class="component">[{@link Post}]</span> <span class="component">[{@link Delete}]</span> <span class="component">[{@link Options}]</span> <span class="component">[{@link Head}]</span> <span class="component">[{@link Patch}]</span> <span class="component">[{@link Trace}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link ParameterOb}*</span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:39 + * @astdecl PathItemObject : ASTNode ::= <Summary:String> <Description:String> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; + * @production PathItemObject : {@link ASTNode} ::= <span class="component"><Summary:String></span> <span class="component"><Description:String></span> <span class="component">[{@link Get}]</span> <span class="component">[{@link Put}]</span> <span class="component">[{@link Post}]</span> <span class="component">[{@link Delete}]</span> <span class="component">[{@link Options}]</span> <span class="component">[{@link Head}]</span> <span class="component">[{@link Patch}]</span> <span class="component">[{@link Trace}]</span> <span class="component">{@link ServerObject}*</span> <span class="component">{@link ParameterOb}*</span> <span class="component">{@link Extension}*</span>; */ -public class PathItemObject extends PathItemOb implements Cloneable { +public class PathItemObject extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect Composer + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 + */ + public static Path composePath (PathItemObject pathItem, Map<Object, ASTNode> map){ + Path path = new Path(); + PathItemObject p = (PathItemObject) pathItem; + + if( !p.getSummary().isEmpty()) + path.setSummary(p.getSummary()); + if( !p.getDescription().isEmpty() ) + path.setDescription(p.getDescription()); + if( p.hasGet() ) + path.setGet( OperationObject.composeOperation(p.getGet().getOperationObject(), map) ); + if( p.hasPut() ) + path.setPut( OperationObject.composeOperation(p.getPut().getOperationObject(), map) ); + if( p.hasPost() ) + path.setPost( OperationObject.composeOperation(p.getPost().getOperationObject(), map) ); + if( p.hasDelete() ) + path.setDelete( OperationObject.composeOperation(p.getDelete().getOperationObject(), map) ); + if( p.hasOptions() ) + path.setOptions( OperationObject.composeOperation(p.getOptions().getOperationObject(), map) ); + if( p.hasHead() ) + path.setHead( OperationObject.composeOperation(p.getHead().getOperationObject(), map) ); + if( p.hasPatch() ) + path.setPatch( OperationObject.composeOperation(p.getPatch().getOperationObject(), map) ); + if( p.getNumServerObject() != 0 ){ + for( ServerObject s : p.getServerObjects() ) + path.addServer( ServerObject.composeServer(s, map) ); + } + if( p.getNumParameterOb() != 0 ){ + for( ParameterOb e : p.getParameterObs() ) + path.addParameter( e.composeParameter(e, map) ); + } + if( p.getNumExtension() != 0 ){ + Map<String, Object> extensionMap = new HashMap<>(); + for( Extension e : p.getExtensions() ) + extensionMap.put(e.getKey(), e.getValue()); + path.setExtensions(extensionMap); + } + + return path; + } + /** + * @aspect Parser + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:225 + */ + public static PathItemObject parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { + PathItemObject pathItem = new PathItemObject(); + + if( path.getSummary() != null ) + pathItem.setSummary(path.getSummary()); + if( path.getDescription() != null ) + pathItem.setDescription(path.getDescription()); + if( path.getGet() != null ){ + Get get = new Get(); + get.setOperationObject( OperationObject.parseOperation( path.getGet(), context, map ) ); + pathItem.setGet(get); + } + if( path.getPut() != null ){ + Put put = new Put(); + put.setOperationObject( OperationObject.parseOperation( path.getPut(), context, map ) ); + pathItem.setPut(put); + } + if( path.getPost() != null ){ + Post post = new Post(); + post.setOperationObject( OperationObject.parseOperation( path.getPost(), context, map ) ); + pathItem.setPost(post); + } + if( path.getDelete() != null ){ + Delete delete = new Delete(); + delete.setOperationObject( OperationObject.parseOperation( path.getDelete(), context, map ) ); + pathItem.setDelete(delete); + } + if( path.getOptions() != null ){ + Options options = new Options(); + options.setOperationObject( OperationObject.parseOperation( path.getOptions(), context, map ) ); + pathItem.setOptions(options); + } + if( path.getHead() != null ){ + Head head = new Head(); + head.setOperationObject( OperationObject.parseOperation( path.getHead(), context, map ) ); + pathItem.setHead(head); + } + if( path.getPatch() != null ){ + Patch patch = new Patch(); + patch.setOperationObject( OperationObject.parseOperation( path.getPatch(), context, map ) ); + pathItem.setPatch(patch); + } + if( path.getTrace() != null ){ + Trace trace = new Trace(); + trace.setOperationObject( OperationObject.parseOperation( path.getTrace(), context, map ) ); + pathItem.setTrace(trace); + } + if( path.getServers() != null ){ + for(Server s : path.getServers()) + pathItem.addServerObject( ServerObject.parseServer(s, map)); + } + if( path.getParameters() != null ){ + for(Parameter p : path.getParameters()) + pathItem.addParameterOb(ParameterOb.parseParameter(p, context, map)); + } + if( path.getExtensions() != null ){ + for( String key : path.getExtensions().keySet() ) + pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); + } + + map.put(path, pathItem); + return pathItem; + } /** * @declaredat ASTNode:1 */ @@ -958,85 +1071,6 @@ public class PathItemObject extends PathItemOb implements Cloneable { public JastAddList<Extension> getExtensionsNoTransform() { return getExtensionListNoTransform(); } -/** @apilevel internal */ -protected java.util.Set composePath_PathItemOb_Map_Object__ASTNode__visited; - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathItem); - _parameters.add(map); - if (composePath_PathItemOb_Map_Object__ASTNode__visited == null) composePath_PathItemOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); - if (composePath_PathItemOb_Map_Object__ASTNode__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute PathItemOb.composePath(PathItemOb,Map_Object__ASTNode_)."); - } - composePath_PathItemOb_Map_Object__ASTNode__visited.add(_parameters); - try { - Path path = new Path(); - PathItemObject p = (PathItemObject) pathItem; - - if( !p.getSummary().isEmpty()) - path.setSummary(p.getSummary()); - if( !p.getDescription().isEmpty() ) - path.setDescription(p.getDescription()); - if( p.hasGet() ) - path.setGet( OperationObject.composeOperation(p.getGet().getOperationObject(), map) ); - if( p.hasPut() ) - path.setPut( OperationObject.composeOperation(p.getPut().getOperationObject(), map) ); - if( p.hasPost() ) - path.setPost( OperationObject.composeOperation(p.getPost().getOperationObject(), map) ); - if( p.hasDelete() ) - path.setDelete( OperationObject.composeOperation(p.getDelete().getOperationObject(), map) ); - if( p.hasOptions() ) - path.setOptions( OperationObject.composeOperation(p.getOptions().getOperationObject(), map) ); - if( p.hasHead() ) - path.setHead( OperationObject.composeOperation(p.getHead().getOperationObject(), map) ); - if( p.hasPatch() ) - path.setPatch( OperationObject.composeOperation(p.getPatch().getOperationObject(), map) ); - if( p.getNumServerObject() != 0 ){ - for( ServerObject s : p.getServerObjects() ) - path.addServer( ServerObject.composeServer(s, map) ); - } - if( p.getNumParameterOb() != 0 ){ - for( ParameterOb e : p.getParameterObs() ) - path.addParameter( e.composeParameter(e, map) ); - } - if( p.getNumExtension() != 0 ){ - Map<String, Object> extensionMap = new HashMap<>(); - for( Extension e : p.getExtensions() ) - extensionMap.put(e.getKey(), e.getValue()); - path.setExtensions(extensionMap); - } - - return path; - } - finally { - composePath_PathItemOb_Map_Object__ASTNode__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected boolean pathItemObject_visited = false; - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:22 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public PathItemObject pathItemObject() { - if (pathItemObject_visited) { - throw new RuntimeException("Circular definition of attribute PathItemOb.pathItemObject()."); - } - pathItemObject_visited = true; - PathItemObject pathItemObject_value = this; - pathItemObject_visited = false; - return pathItemObject_value; - } /** @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java deleted file mode 100644 index 8de8ae09ba6f8a7006e735bb718f650bdf40d894..0000000000000000000000000000000000000000 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItemReference.java +++ /dev/null @@ -1,263 +0,0 @@ -/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.2 */ -package de.tudresden.inf.st.openapi.ast; -import org.openapi4j.core.exception.ResolutionException; -import org.openapi4j.core.validation.ValidationException; -import org.openapi4j.parser.model.v3.*; -import org.openapi4j.core.model.reference.Reference; -import org.openapi4j.core.model.OAIContext; -import java.io.IOException; -import java.util.*; -import java.net.URL; -import org.openapi4j.core.exception.DecodeException; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import javax.net.ssl.HttpsURLConnection; -import java.util.Random; -import java.util.stream.IntStream; -/** - * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:39 - * @astdecl PathItemReference : PathItemOb ::= <Ref:String> <PathItemOb:PathItemOb>; - * @production PathItemReference : {@link PathItemOb} ::= <span class="component"><Ref:String></span> <span class="component"><PathItemOb:PathItemOb></span>; - - */ -public class PathItemReference extends PathItemOb implements Cloneable { - /** - * @declaredat ASTNode:1 - */ - public PathItemReference() { - super(); - } - /** - * Initializes the child array to the correct size. - * Initializes List and Opt nta children. - * @apilevel internal - * @ast method - * @declaredat ASTNode:10 - */ - public void init$Children() { - } - /** - * @declaredat ASTNode:12 - */ - @ASTNodeAnnotation.Constructor( - name = {"Ref", "PathItemOb"}, - type = {"String", "PathItemOb"}, - kind = {"Token", "Token"} - ) - public PathItemReference(String p0, PathItemOb p1) { - setRef(p0); - setPathItemOb(p1); - } - /** @apilevel low-level - * @declaredat ASTNode:22 - */ - protected int numChildren() { - return 0; - } - /** - * @apilevel internal - * @declaredat ASTNode:28 - */ - public boolean mayHaveRewrite() { - return false; - } - /** @apilevel internal - * @declaredat ASTNode:32 - */ - public void flushAttrCache() { - super.flushAttrCache(); - } - /** @apilevel internal - * @declaredat ASTNode:36 - */ - public void flushCollectionCache() { - super.flushCollectionCache(); - } - /** @apilevel internal - * @declaredat ASTNode:40 - */ - public PathItemReference clone() throws CloneNotSupportedException { - PathItemReference node = (PathItemReference) super.clone(); - return node; - } - /** @apilevel internal - * @declaredat ASTNode:45 - */ - public PathItemReference copy() { - try { - PathItemReference node = (PathItemReference) clone(); - node.parent = null; - if (children != null) { - node.children = (ASTNode[]) children.clone(); - } - return node; - } catch (CloneNotSupportedException e) { - throw new Error("Error: clone not supported for " + getClass().getName()); - } - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 - */ - @Deprecated - public PathItemReference fullCopy() { - return treeCopyNoTransform(); - } - /** - * Create a deep copy of the AST subtree at this node. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:74 - */ - public PathItemReference treeCopyNoTransform() { - PathItemReference tree = (PathItemReference) copy(); - if (children != null) { - for (int i = 0; i < children.length; ++i) { - ASTNode child = (ASTNode) children[i]; - if (child != null) { - child = child.treeCopyNoTransform(); - tree.setChild(child, i); - } - } - } - return tree; - } - /** - * Create a deep copy of the AST subtree at this node. - * The subtree of this node is traversed to trigger rewrites before copy. - * The copy is dangling, i.e. has no parent. - * @return dangling copy of the subtree at this node - * @apilevel low-level - * @declaredat ASTNode:94 - */ - public PathItemReference treeCopy() { - PathItemReference tree = (PathItemReference) copy(); - if (children != null) { - for (int i = 0; i < children.length; ++i) { - ASTNode child = (ASTNode) getChild(i); - if (child != null) { - child = child.treeCopy(); - tree.setChild(child, i); - } - } - } - return tree; - } - /** @apilevel internal - * @declaredat ASTNode:108 - */ - protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((PathItemReference) node).tokenString_Ref) && (tokenPathItemOb_PathItemOb == ((PathItemReference) node).tokenPathItemOb_PathItemOb); - } - /** - * Replaces the lexeme Ref. - * @param value The new value for the lexeme Ref. - * @apilevel high-level - */ - public void setRef(String value) { - tokenString_Ref = value; - } - /** @apilevel internal - */ - protected String tokenString_Ref; - /** - * Retrieves the value for the lexeme Ref. - * @return The value for the lexeme Ref. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="Ref") - public String getRef() { - return tokenString_Ref != null ? tokenString_Ref : ""; - } - /** - * Replaces the lexeme PathItemOb. - * @param value The new value for the lexeme PathItemOb. - * @apilevel high-level - */ - public void setPathItemOb(PathItemOb value) { - tokenPathItemOb_PathItemOb = value; - } - /** @apilevel internal - */ - protected PathItemOb tokenPathItemOb_PathItemOb; - /** - * Retrieves the value for the lexeme PathItemOb. - * @return The value for the lexeme PathItemOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="PathItemOb") - public PathItemOb getPathItemOb() { - return tokenPathItemOb_PathItemOb; - } -/** @apilevel internal */ -protected java.util.Set composePath_PathItemOb_Map_Object__ASTNode__visited; - /** - * @attribute syn - * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:262") - public Path composePath(PathItemOb pathItem, Map<Object, ASTNode> map) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathItem); - _parameters.add(map); - if (composePath_PathItemOb_Map_Object__ASTNode__visited == null) composePath_PathItemOb_Map_Object__ASTNode__visited = new java.util.HashSet(4); - if (composePath_PathItemOb_Map_Object__ASTNode__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute PathItemOb.composePath(PathItemOb,Map_Object__ASTNode_)."); - } - composePath_PathItemOb_Map_Object__ASTNode__visited.add(_parameters); - try { - Path path = new Path(); - PathItemReference p = (PathItemReference) pathItem; - - if( !p.getRef().isEmpty() ) - path.setRef(p.getRef()); - - return path; - } - finally { - composePath_PathItemOb_Map_Object__ASTNode__visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected boolean pathItemObject_visited = false; - /** - * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:21") - public PathItemObject pathItemObject() { - if (pathItemObject_visited) { - throw new RuntimeException("Circular definition of attribute PathItemOb.pathItemObject()."); - } - pathItemObject_visited = true; - try { - if( getPathItemOb() instanceof PathItemObject ) - return (PathItemObject) getPathItemOb(); - else - return getPathItemOb().pathItemObject(); - } - finally { - pathItemObject_visited = false; - } - } - /** @apilevel internal */ - public ASTNode rewriteTo() { - return super.rewriteTo(); - } - /** @apilevel internal */ - public boolean canRewrite() { - return false; - } -} diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java index a160031a3d262dd51f189c9aad2a091d02e03543..28da2b904948b1a7940ba1ff6f6eb26d6232f081 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:35 - * @astdecl PathsObject : ASTNode ::= <Ref:String> PathItemOb; - * @production PathsObject : {@link ASTNode} ::= <span class="component"><Ref:String></span> <span class="component">{@link PathItemOb}</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:36 + * @astdecl PathsObject : ASTNode ::= <Ref:String> PathItemObject; + * @production PathsObject : {@link ASTNode} ::= <span class="component"><Ref:String></span> <span class="component">{@link PathItemObject}</span>; */ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { @@ -44,11 +47,11 @@ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "PathItemOb"}, - type = {"String", "PathItemOb"}, + name = {"Ref", "PathItemObject"}, + type = {"String", "PathItemObject"}, kind = {"Token", "Child"} ) - public PathsObject(String p0, PathItemOb p1) { + public PathsObject(String p0, PathItemObject p1) { setRef(p0); setChild(p1, 0); } @@ -179,38 +182,38 @@ public class PathsObject extends ASTNode<ASTNode> implements Cloneable { return tokenString_Ref != null ? tokenString_Ref : ""; } /** - * Replaces the PathItemOb child. - * @param node The new node to replace the PathItemOb child. + * Replaces the PathItemObject child. + * @param node The new node to replace the PathItemObject child. * @apilevel high-level */ - public void setPathItemOb(PathItemOb node) { + public void setPathItemObject(PathItemObject node) { setChild(node, 0); } /** - * Retrieves the PathItemOb child. - * @return The current node used as the PathItemOb child. + * Retrieves the PathItemObject child. + * @return The current node used as the PathItemObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="PathItemOb") - public PathItemOb getPathItemOb() { - return (PathItemOb) getChild(0); + @ASTNodeAnnotation.Child(name="PathItemObject") + public PathItemObject getPathItemObject() { + return (PathItemObject) getChild(0); } /** - * Retrieves the PathItemOb child. + * Retrieves the PathItemObject child. * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the PathItemOb child. + * @return The current node used as the PathItemObject child. * @apilevel low-level */ - public PathItemOb getPathItemObNoTransform() { - return (PathItemOb) getChildNoTransform(0); + public PathItemObject getPathItemObjectNoTransform() { + return (PathItemObject) getChildNoTransform(0); } /** * @attribute inh - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:20") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25") public Set<String> inferUrl(Set<String> urls) { Object _parameters = urls; if (inferUrl_Set_String__visited == null) inferUrl_Set_String__visited = new java.util.HashSet(4); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java index ddab0d5bdb8766e30d2b347dbc4d7290dee205a2..0b27455a0709ad52ee5bc3aadc1fd372e21ad6b0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,38 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:47 - * @astdecl Post : OperationOb ::= <OperationObject:OperationObject>; - * @production Post : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:45 + * @astdecl Post : ASTNode ::= OperationObject; + * @production Post : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Post extends OperationOb implements Cloneable { +public class Post extends ASTNode<ASTNode> implements Cloneable { + /** + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:187 + */ + public void connectPOST (String path) throws Exception{ + URL url = new URL(path); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + con.setDoOutput(true); // POST + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (POST) : " + responseCode); + } /** * @declaredat ASTNode:1 */ @@ -38,52 +67,53 @@ public class Post extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Post(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Post clone() throws CloneNotSupportedException { Post node = (Post) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Post copy() { try { @@ -103,7 +133,7 @@ public class Post extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Post fullCopy() { @@ -114,7 +144,7 @@ public class Post extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Post treeCopyNoTransform() { Post tree = (Post) copy(); @@ -135,7 +165,7 @@ public class Post extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Post treeCopy() { Post tree = (Post) copy(); @@ -151,53 +181,98 @@ public class Post extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Post) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); + } + /** + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 + * @aspect InferParameter + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:85 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") + @ASTNodeAnnotation.Source(aspect="InferParameter", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:85") public String inferRandomUrl(String pathRef, OperationObject operationObject) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(pathRef); _parameters.add(operationObject); if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); + throw new RuntimeException("Circular definition of attribute Post.inferRandomUrl(String,OperationObject)."); } inferRandomUrl_String_OperationObject_visited.add(_parameters); try { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + + for( String path : paths ){ + System.out.println(path); + //connectPOST(path); + } + + } + return pathRef; + }catch (Exception e) { return ""; } + } finally { inferRandomUrl_String_OperationObject_visited.remove(_parameters); } @@ -207,10 +282,10 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj /** * @attribute syn * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:285 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") + @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:285") public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { java.util.List _parameters = new java.util.ArrayList(3); _parameters.add(pathRef); @@ -218,13 +293,12 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj _parameters.add(responses); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); + throw new RuntimeException("Circular definition of attribute Post.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); } generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); try { - Random rand = new Random(); - try{ + Random rand = new Random(); for( ParameterOb o : operationObject.getParameterObs() ){ ParameterObject p = o.parameterObject(); SchemaObject s = p.getSchemaOb().schemaObject(); @@ -268,7 +342,9 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj URL url = new URL(pathRef); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setDoOutput(true); // POST int responseCode = con.getResponseCode(); @@ -283,19 +359,21 @@ protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObj // print result System.out.println("HTTP status code (POST) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } else if ( t.getKey().equals("default") && responseCode == 200 ){ - System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } - return pathRef;} catch (Exception e) { + return pathRef;} + } catch (Exception e) { return ""; - } - } + } return ""; + } finally { generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java index 3cb1b6bb3eda46997eb2e332a0cc8e4affc4d241..35dc442cded29a5395d218a85acc8e294390ecc1 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:113 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:111 * @astdecl PropertyItem : ASTNode ::= <Name:String> SchemaOb; * @production PropertyItem : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link SchemaOb}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java index 24bd11ab0ce05e278e14808bb4242cf3db718cbc..17a78c15e6d4b83133372852d34227bce43c9f6c 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:46 - * @astdecl Put : OperationOb ::= <OperationObject:OperationObject>; - * @production Put : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:44 + * @astdecl Put : ASTNode ::= OperationObject; + * @production Put : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Put extends OperationOb implements Cloneable { +public class Put extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Put extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Put(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Put clone() throws CloneNotSupportedException { Put node = (Put) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Put copy() { try { @@ -103,7 +107,7 @@ public class Put extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Put fullCopy() { @@ -114,7 +118,7 @@ public class Put extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Put treeCopyNoTransform() { Put tree = (Put) copy(); @@ -135,7 +139,7 @@ public class Put extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Put treeCopy() { Put tree = (Put) copy(); @@ -151,81 +155,36 @@ public class Put extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Put) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java index b0e2c94553b5b72250a22f875f4c9010ed424044..9fe53a04e51e3af6e88c7075232a70c751880640 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:65 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:63 * @astdecl RequestBodyOb : ASTNode; * @production RequestBodyOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:376 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:403 */ public static RequestBodyOb parseRequestBody(org.openapi4j.parser.model.v3.RequestBody requestBody, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { RequestBodyObject requestBodyObject = new RequestBodyObject(); @@ -34,7 +37,6 @@ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneabl if( requestBody.isRef() ){ RequestBodyReference r = new RequestBodyReference(); r.setRef(requestBody.getRef()); - r.setRequestBodyOb(parseRequestBody(requestBody.getReference(context).getMappedContent(RequestBody.class), context, map)); return r; } else { if( requestBody.getContentMediaTypes() != null ) { @@ -131,18 +133,18 @@ public abstract class RequestBodyOb extends ASTNode<ASTNode> implements Cloneabl /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public abstract RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public abstract RequestBodyObject requestBodyObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java index f2edc6a4ee595f47ed00b84b5324d2370ebd046a..75f25bad7b29b4f561ceefa798d18cee61c11d35 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:67 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:65 * @astdecl RequestBodyObject : RequestBodyOb ::= <Description:String> ContentTuple* <Required:Boolean> Extension*; * @production RequestBodyObject : {@link RequestBodyOb} ::= <span class="component"><Description:String></span> <span class="component">{@link ContentTuple}*</span> <span class="component"><Required:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -427,10 +430,10 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(requestBodyOb); @@ -465,11 +468,11 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi protected boolean requestBodyObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:31 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:24 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public RequestBodyObject requestBodyObject() { if (requestBodyObject_visited) { throw new RuntimeException("Circular definition of attribute RequestBodyOb.requestBodyObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java index 9eaeb36089927d7f3772a82f924ca05ef2d94eb3..ed5fe0604c1da89cb20b28aefbd8a26d7fd0638e 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:66 - * @astdecl RequestBodyReference : RequestBodyOb ::= <Ref:String> <RequestBodyOb:RequestBodyOb>; - * @production RequestBodyReference : {@link RequestBodyOb} ::= <span class="component"><Ref:String></span> <span class="component"><RequestBodyOb:RequestBodyOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:64 + * @astdecl RequestBodyReference : RequestBodyOb ::= <Ref:String>; + * @production RequestBodyReference : {@link RequestBodyOb} ::= <span class="component"><Ref:String></span>; */ public class RequestBodyReference extends RequestBodyOb implements Cloneable { @@ -43,48 +46,47 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "RequestBodyOb"}, - type = {"String", "RequestBodyOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public RequestBodyReference(String p0, RequestBodyOb p1) { + public RequestBodyReference(String p0) { setRef(p0); - setRequestBodyOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public RequestBodyReference clone() throws CloneNotSupportedException { RequestBodyReference node = (RequestBodyReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public RequestBodyReference copy() { try { @@ -104,7 +106,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public RequestBodyReference fullCopy() { @@ -115,7 +117,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public RequestBodyReference treeCopyNoTransform() { RequestBodyReference tree = (RequestBodyReference) copy(); @@ -136,7 +138,7 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public RequestBodyReference treeCopy() { RequestBodyReference tree = (RequestBodyReference) copy(); @@ -152,10 +154,10 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((RequestBodyReference) node).tokenString_Ref) && (tokenRequestBodyOb_RequestBodyOb == ((RequestBodyReference) node).tokenRequestBodyOb_RequestBodyOb); + return super.is$Equal(node) && (tokenString_Ref == ((RequestBodyReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class RequestBodyReference extends RequestBodyOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme RequestBodyOb. - * @param value The new value for the lexeme RequestBodyOb. - * @apilevel high-level - */ - public void setRequestBodyOb(RequestBodyOb value) { - tokenRequestBodyOb_RequestBodyOb = value; - } - /** @apilevel internal - */ - protected RequestBodyOb tokenRequestBodyOb_RequestBodyOb; - /** - * Retrieves the value for the lexeme RequestBodyOb. - * @return The value for the lexeme RequestBodyOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="RequestBodyOb") - public RequestBodyOb getRequestBodyOb() { - return tokenRequestBodyOb_RequestBodyOb; - } /** @apilevel internal */ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:440") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:430") public RequestBody composeRequestBody(RequestBodyOb requestBodyOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(requestBodyOb); @@ -232,21 +214,22 @@ protected java.util.Set composeRequestBody_RequestBodyOb_Map_Object__ASTNode__vi protected boolean requestBodyObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:30") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:23") public RequestBodyObject requestBodyObject() { if (requestBodyObject_visited) { throw new RuntimeException("Circular definition of attribute RequestBodyOb.requestBodyObject()."); } requestBodyObject_visited = true; try { - if( getRequestBodyOb() instanceof RequestBodyObject ) - return (RequestBodyObject) getRequestBodyOb(); - else - return getRequestBodyOb().requestBodyObject(); + for( RequestBodyTuple t : root().requestBodyTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getRequestBodyOb().requestBodyObject(); + } + return new RequestBodyObject(); } finally { requestBodyObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java index de0d31a798cada1c0abd47f8ea178e0e945c1902..adeabda136c888dafac8ce102ad8528da1ce95b8 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:27 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:28 * @astdecl RequestBodyTuple : ASTNode ::= <Key:String> RequestBodyOb; * @production RequestBodyTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link RequestBodyOb}</span>; @@ -212,4 +215,22 @@ public class RequestBodyTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_requestBodyTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:21 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_requestBodyTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_requestBodyTuples(List<RequestBodyTuple> collection) { + super.contributeTo_OpenAPIObject_requestBodyTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java index 5d6f2c1a04f8c2826f86220781e6d8394a72c562..2d6063f1ec2963c30696ac0c71ccd5e73cd9bc52 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:114 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:112 * @astdecl RequiredField : ASTNode ::= <Value:String>; * @production RequiredField : {@link ASTNode} ::= <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java index d0beabef5f0e910e029a62ef174762d6c65c6930..658cc764dd84d29b6c1740a2dbba257ddf584c4a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:77 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:75 * @astdecl ResponseOb : ASTNode; * @production ResponseOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:449 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:475 */ public static ResponseOb parseResponse(Response response, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { ResponseObject responseObject = new ResponseObject(); @@ -34,7 +37,6 @@ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { if( response.isRef() ){ ResponseReference r = new ResponseReference(); r.setRef(response.getRef()); - r.setResponseOb(parseResponse(response.getReference(context).getMappedContent(Response.class), context, map)); return r; } else { if( response.getDescription() != null ) @@ -137,18 +139,18 @@ public abstract class ResponseOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public abstract Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public abstract ResponseObject responseObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java index 4be4fd265cd04023d8bb6392c4ebf0543b803158..759f02372f9b981cfb7941fbcf391b66d802378b 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:79 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:77 * @astdecl ResponseObject : ResponseOb ::= <Description:String> HeaderTuple* ContentTuple* LinkTuple* Extension*; * @production ResponseObject : {@link ResponseOb} ::= <span class="component"><Description:String></span> <span class="component">{@link HeaderTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link LinkTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -630,10 +633,10 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(responseOb); @@ -678,11 +681,11 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; protected boolean responseObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:40 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:34 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public ResponseObject responseObject() { if (responseObject_visited) { throw new RuntimeException("Circular definition of attribute ResponseOb.responseObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java index 2df54e4c4ff24ec2a204eb613a61f1095a3872d9..6fecd09bcdf3837217d4d5b11fca8cd54268be65 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:78 - * @astdecl ResponseReference : ResponseOb ::= <Ref:String> <ResponseOb:ResponseOb>; - * @production ResponseReference : {@link ResponseOb} ::= <span class="component"><Ref:String></span> <span class="component"><ResponseOb:ResponseOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:76 + * @astdecl ResponseReference : ResponseOb ::= <Ref:String>; + * @production ResponseReference : {@link ResponseOb} ::= <span class="component"><Ref:String></span>; */ public class ResponseReference extends ResponseOb implements Cloneable { @@ -43,48 +46,47 @@ public class ResponseReference extends ResponseOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "ResponseOb"}, - type = {"String", "ResponseOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public ResponseReference(String p0, ResponseOb p1) { + public ResponseReference(String p0) { setRef(p0); - setResponseOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public ResponseReference clone() throws CloneNotSupportedException { ResponseReference node = (ResponseReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public ResponseReference copy() { try { @@ -104,7 +106,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public ResponseReference fullCopy() { @@ -115,7 +117,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public ResponseReference treeCopyNoTransform() { ResponseReference tree = (ResponseReference) copy(); @@ -136,7 +138,7 @@ public class ResponseReference extends ResponseOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public ResponseReference treeCopy() { ResponseReference tree = (ResponseReference) copy(); @@ -152,10 +154,10 @@ public class ResponseReference extends ResponseOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((ResponseReference) node).tokenString_Ref) && (tokenResponseOb_ResponseOb == ((ResponseReference) node).tokenResponseOb_ResponseOb); + return super.is$Equal(node) && (tokenString_Ref == ((ResponseReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class ResponseReference extends ResponseOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme ResponseOb. - * @param value The new value for the lexeme ResponseOb. - * @apilevel high-level - */ - public void setResponseOb(ResponseOb value) { - tokenResponseOb_ResponseOb = value; - } - /** @apilevel internal - */ - protected ResponseOb tokenResponseOb_ResponseOb; - /** - * Retrieves the value for the lexeme ResponseOb. - * @return The value for the lexeme ResponseOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="ResponseOb") - public ResponseOb getResponseOb() { - return tokenResponseOb_ResponseOb; - } /** @apilevel internal */ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:520") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:510") public Response composeResponse(ResponseOb responseOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(responseOb); @@ -232,21 +214,22 @@ protected java.util.Set composeResponse_ResponseOb_Map_Object__ASTNode__visited; protected boolean responseObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:39") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:33") public ResponseObject responseObject() { if (responseObject_visited) { throw new RuntimeException("Circular definition of attribute ResponseOb.responseObject()."); } responseObject_visited = true; try { - if( getResponseOb() instanceof ResponseObject ) - return (ResponseObject) getResponseOb(); - else - return getResponseOb().responseObject(); + for( ResponseTuple t : root().responseTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getResponseOb().responseObject(); + } + return new ResponseObject(); } finally { responseObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java index 0cb216ff8fa7c71ecfb0f919f8f41d0edef1a671..4aab6a94be7ae360e5bec1e16c682c7405afefe0 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:24 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:25 * @astdecl ResponseTuple : ASTNode ::= <Key:String> ResponseOb; * @production ResponseTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link ResponseOb}</span>; @@ -212,4 +215,22 @@ public class ResponseTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_responseTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:13 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_responseTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_responseTuples(List<ResponseTuple> collection) { + super.contributeTo_OpenAPIObject_responseTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java index 4d286e94de2908bf200eacced710d13b26202669..a88426f14aebb8f16ebe8be5330284948bd8812d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:106 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:104 * @astdecl SchemaOb : ASTNode; * @production SchemaOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:626 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:648 */ public static SchemaOb parseSchema (org.openapi4j.parser.model.v3.Schema schema, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { SchemaObject schemaObject = new SchemaObject(); @@ -34,7 +37,6 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { if( schema.isRef() ){ SchemaReference s = new SchemaReference(); s.setRef(schema.getRef()); - s.setSchemaOb(parseSchema(schema.getReference(context).getMappedContent(Schema.class), context, map)); return s; } else { if( schema.getAdditionalProperties() != null ) @@ -230,18 +232,18 @@ public abstract class SchemaOb extends ASTNode<ASTNode> implements Cloneable { /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public abstract org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public abstract SchemaObject schemaObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java index b33a59dc0d299ee29ae9d7ce77b27474d0de6029..0a6e30b26a30bbeeea92a463cc498b4b4d044fdd 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:108 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:106 * @astdecl SchemaObject : SchemaOb ::= [AdditionalProperties] <AdditionalPropertiesAllowed:Boolean> <DefaultValue:Object> <Description:String> <DeprecatedBoolean:Boolean> [DiscriminatorObject] EnumObj* <Example:Object> <ExclusiveMaximum:Boolean> <ExclusiveMinimum:Boolean> [ExternalDocObject] <Format:String> [ItemsSchema] <Maximum:Number> <Minimum:Number> <MaxItems:Integer> <MinItems:Integer> <MaxLength:Integer> <MinLength:Integer> <MaxProperties:Integer> <MinProperties:Integer> <MultipleOf:Number> [NotSchema] <Nullable:Boolean> <Pattern:String> PropertyItem* RequiredField* AllOfSchema* AnyOfSchema* OneOfSchema* <ReadOnly:Boolean> <WriteOnly:Boolean> <Type:String> <Title:String> <UniqueItems:Boolean> [XmlObject] Extension*; * @production SchemaObject : {@link SchemaOb} ::= <span class="component">[{@link AdditionalProperties}]</span> <span class="component"><AdditionalPropertiesAllowed:Boolean></span> <span class="component"><DefaultValue:Object></span> <span class="component"><Description:String></span> <span class="component"><DeprecatedBoolean:Boolean></span> <span class="component">[{@link DiscriminatorObject}]</span> <span class="component">{@link EnumObj}*</span> <span class="component"><Example:Object></span> <span class="component"><ExclusiveMaximum:Boolean></span> <span class="component"><ExclusiveMinimum:Boolean></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component"><Format:String></span> <span class="component">[{@link ItemsSchema}]</span> <span class="component"><Maximum:Number></span> <span class="component"><Minimum:Number></span> <span class="component"><MaxItems:Integer></span> <span class="component"><MinItems:Integer></span> <span class="component"><MaxLength:Integer></span> <span class="component"><MinLength:Integer></span> <span class="component"><MaxProperties:Integer></span> <span class="component"><MinProperties:Integer></span> <span class="component"><MultipleOf:Number></span> <span class="component">[{@link NotSchema}]</span> <span class="component"><Nullable:Boolean></span> <span class="component"><Pattern:String></span> <span class="component">{@link PropertyItem}*</span> <span class="component">{@link RequiredField}*</span> <span class="component">{@link AllOfSchema}*</span> <span class="component">{@link AnyOfSchema}*</span> <span class="component">{@link OneOfSchema}*</span> <span class="component"><ReadOnly:Boolean></span> <span class="component"><WriteOnly:Boolean></span> <span class="component"><Type:String></span> <span class="component"><Title:String></span> <span class="component"><UniqueItems:Boolean></span> <span class="component">[{@link XmlObject}]</span> <span class="component">{@link Extension}*</span>; @@ -1767,10 +1770,10 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(schemaOb); @@ -1916,11 +1919,11 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; protected boolean schemaObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:13 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:14 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public SchemaObject schemaObject() { if (schemaObject_visited) { throw new RuntimeException("Circular definition of attribute SchemaOb.schemaObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java index d394cde3fff2815f8ee3cfb920f5564414b3db39..be968d87935ba7b433028589edb3835e25340e26 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:107 - * @astdecl SchemaReference : SchemaOb ::= <Ref:String> <SchemaOb:SchemaOb>; - * @production SchemaReference : {@link SchemaOb} ::= <span class="component"><Ref:String></span> <span class="component"><SchemaOb:SchemaOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:105 + * @astdecl SchemaReference : SchemaOb ::= <Ref:String>; + * @production SchemaReference : {@link SchemaOb} ::= <span class="component"><Ref:String></span>; */ public class SchemaReference extends SchemaOb implements Cloneable { @@ -43,48 +46,47 @@ public class SchemaReference extends SchemaOb implements Cloneable { * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "SchemaOb"}, - type = {"String", "SchemaOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public SchemaReference(String p0, SchemaOb p1) { + public SchemaReference(String p0) { setRef(p0); - setSchemaOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public SchemaReference clone() throws CloneNotSupportedException { SchemaReference node = (SchemaReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public SchemaReference copy() { try { @@ -104,7 +106,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public SchemaReference fullCopy() { @@ -115,7 +117,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public SchemaReference treeCopyNoTransform() { SchemaReference tree = (SchemaReference) copy(); @@ -136,7 +138,7 @@ public class SchemaReference extends SchemaOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public SchemaReference treeCopy() { SchemaReference tree = (SchemaReference) copy(); @@ -152,10 +154,10 @@ public class SchemaReference extends SchemaOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((SchemaReference) node).tokenString_Ref) && (tokenSchemaOb_SchemaOb == ((SchemaReference) node).tokenSchemaOb_SchemaOb); + return super.is$Equal(node) && (tokenString_Ref == ((SchemaReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class SchemaReference extends SchemaOb implements Cloneable { public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme SchemaOb. - * @param value The new value for the lexeme SchemaOb. - * @apilevel high-level - */ - public void setSchemaOb(SchemaOb value) { - tokenSchemaOb_SchemaOb = value; - } - /** @apilevel internal - */ - protected SchemaOb tokenSchemaOb_SchemaOb; - /** - * Retrieves the value for the lexeme SchemaOb. - * @return The value for the lexeme SchemaOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="SchemaOb") - public SchemaOb getSchemaOb() { - return tokenSchemaOb_SchemaOb; - } /** @apilevel internal */ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:701") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:691") public org.openapi4j.parser.model.v3.Schema composeSchema(SchemaOb schemaOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(schemaOb); @@ -232,21 +214,22 @@ protected java.util.Set composeSchema_SchemaOb_Map_Object__ASTNode__visited; protected boolean schemaObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:12") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:13") public SchemaObject schemaObject() { if (schemaObject_visited) { throw new RuntimeException("Circular definition of attribute SchemaOb.schemaObject()."); } schemaObject_visited = true; try { - if( getSchemaOb() instanceof SchemaObject ) - return (SchemaObject) getSchemaOb(); - else - return getSchemaOb().schemaObject(); + for( SchemaTuple t : root().schemaTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSchemaOb().schemaObject(); + } + return new SchemaObject(); } finally { schemaObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java index 2529060da31b2f23aecc09fcd367698b6ccb6bd6..b5e7f18534fafacad945351b372049d6467caed3 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:23 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:24 * @astdecl SchemaTuple : ASTNode ::= <Key:String> SchemaOb; * @production SchemaTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link SchemaOb}</span>; @@ -214,7 +217,7 @@ public class SchemaTuple extends ASTNode<ASTNode> implements Cloneable { } /** @apilevel internal */ protected void collect_contributors_OpenAPIObject_schemaTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { - // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:17 + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:9 { java.util.Set<ASTNode> contributors = _map.get(_root); if (contributors == null) { @@ -226,7 +229,7 @@ public class SchemaTuple extends ASTNode<ASTNode> implements Cloneable { super.collect_contributors_OpenAPIObject_schemaTuples(_root, _map); } /** @apilevel internal */ - protected void contributeTo_OpenAPIObject_schemaTuples(Set<SchemaTuple> collection) { + protected void contributeTo_OpenAPIObject_schemaTuples(List<SchemaTuple> collection) { super.contributeTo_OpenAPIObject_schemaTuples(collection); collection.add(this); } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java index 3b63598ed8f98dac0cf0ccc8e1874e0909e44f81..06be7cc13ecfcb8ff70ade6b1ad270479493729a 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:140 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:138 * @astdecl ScopesTuple : ASTNode ::= <ScopesKey:String> <ScopesValue:String>; * @production ScopesTuple : {@link ASTNode} ::= <span class="component"><ScopesKey:String></span> <span class="component"><ScopesValue:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java index 36a250d21832cad6bc56020d6aba9d4b640866a5..ddb4cc12807230ecf583efe84c963939ce094139 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:143 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:141 * @astdecl SecurityRequirementObject : ASTNode ::= SecurityRequirementTuple*; * @production SecurityRequirementObject : {@link ASTNode} ::= <span class="component">{@link SecurityRequirementTuple}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class SecurityRequirementObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:945 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:935 */ public static SecurityRequirement composeSecurityRequirement (SecurityRequirementObject securityRequirementObject, Map<Object, ASTNode> map){ SecurityRequirement securityRequirement = new SecurityRequirement(); @@ -46,7 +49,7 @@ public class SecurityRequirementObject extends ASTNode<ASTNode> implements Clone } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:893 */ public static SecurityRequirementObject parseSecurityRequirement(SecurityRequirement securityRequirement, Map<Object, ASTNode> map){ SecurityRequirementObject securityRequirementObject = new SecurityRequirementObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java index aa0abfdfd4d7ce37257ffc39208432ee2e92aa49..842e9aae6ba1d45c600a8b8b6f66c17d716e8b44 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:144 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:142 * @astdecl SecurityRequirementTuple : ASTNode ::= <Name:String> SecurityRequirementValue*; * @production SecurityRequirementTuple : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link SecurityRequirementValue}*</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java index 78e17b7a0dd8e61a31299deeaff4f6a3ba681b1e..0294d2ec9a4c3503f17609c9ae35d5810d4d09c8 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:145 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:143 * @astdecl SecurityRequirementValue : ASTNode ::= <Value:String>; * @production SecurityRequirementValue : {@link ASTNode} ::= <span class="component"><Value:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java index 14d9ff79fcb59a99970948c7c0a037d4a193246b..dcdce63596ad21af10ac4c9e525cba7afa5d96ed 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeOb.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:127 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:125 * @astdecl SecuritySchemeOb : ASTNode; * @production SecuritySchemeOb : {@link ASTNode}; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:792 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:813 */ public static SecuritySchemeOb parseSecurityScheme(SecurityScheme securityScheme, OAIContext context, Map<Object, ASTNode> map){ SecuritySchemeObject securitySchemeObject = new SecuritySchemeObject(); @@ -132,18 +135,18 @@ public abstract class SecuritySchemeOb extends ASTNode<ASTNode> implements Clone /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public abstract SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map); /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public abstract SecuritySchemeObject securitySchemeObject(); /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java index 33ebf5cef224c2a54762cfaffac6da5b57ac0e90..c705e875e3a4544e01db1e96691eeeda6bb94361 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:129 - * @astdecl SecuritySchemeObject : SecuritySchemeOb ::= <Type:String> <Description:String> <Name:String> <In:String> <Scheme:String> <BearerFormat:String> OAuthFlowsObject <OpenIdConnectUrl:String> Extension*; - * @production SecuritySchemeObject : {@link SecuritySchemeOb} ::= <span class="component"><Type:String></span> <span class="component"><Description:String></span> <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Scheme:String></span> <span class="component"><BearerFormat:String></span> <span class="component">{@link OAuthFlowsObject}</span> <span class="component"><OpenIdConnectUrl:String></span> <span class="component">{@link Extension}*</span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:127 + * @astdecl SecuritySchemeObject : SecuritySchemeOb ::= <Type:String> <Description:String> <Name:String> <In:String> <Scheme:String> <BearerFormat:String> [OAuthFlowsObject] <OpenIdConnectUrl:String> Extension*; + * @production SecuritySchemeObject : {@link SecuritySchemeOb} ::= <span class="component"><Type:String></span> <span class="component"><Description:String></span> <span class="component"><Name:String></span> <span class="component"><In:String></span> <span class="component"><Scheme:String></span> <span class="component"><BearerFormat:String></span> <span class="component">[{@link OAuthFlowsObject}]</span> <span class="component"><OpenIdConnectUrl:String></span> <span class="component">{@link Extension}*</span>; */ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable { @@ -39,17 +42,18 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable */ public void init$Children() { children = new ASTNode[2]; + setChild(new Opt(), 0); setChild(new JastAddList(), 1); } /** - * @declaredat ASTNode:14 + * @declaredat ASTNode:15 */ @ASTNodeAnnotation.Constructor( name = {"Type", "Description", "Name", "In", "Scheme", "BearerFormat", "OAuthFlowsObject", "OpenIdConnectUrl", "Extension"}, - type = {"String", "String", "String", "String", "String", "String", "OAuthFlowsObject", "String", "JastAddList<Extension>"}, - kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Child", "Token", "List"} + type = {"String", "String", "String", "String", "String", "String", "Opt<OAuthFlowsObject>", "String", "JastAddList<Extension>"}, + kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "List"} ) - public SecuritySchemeObject(String p0, String p1, String p2, String p3, String p4, String p5, OAuthFlowsObject p6, String p7, JastAddList<Extension> p8) { + public SecuritySchemeObject(String p0, String p1, String p2, String p3, String p4, String p5, Opt<OAuthFlowsObject> p6, String p7, JastAddList<Extension> p8) { setType(p0); setDescription(p1); setName(p2); @@ -61,39 +65,39 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable setChild(p8, 1); } /** @apilevel low-level - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ protected int numChildren() { return 2; } /** * @apilevel internal - * @declaredat ASTNode:37 + * @declaredat ASTNode:38 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:41 + * @declaredat ASTNode:42 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:46 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:49 + * @declaredat ASTNode:50 */ public SecuritySchemeObject clone() throws CloneNotSupportedException { SecuritySchemeObject node = (SecuritySchemeObject) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:54 + * @declaredat ASTNode:55 */ public SecuritySchemeObject copy() { try { @@ -113,7 +117,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ @Deprecated public SecuritySchemeObject fullCopy() { @@ -124,7 +128,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:83 + * @declaredat ASTNode:84 */ public SecuritySchemeObject treeCopyNoTransform() { SecuritySchemeObject tree = (SecuritySchemeObject) copy(); @@ -145,7 +149,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:103 + * @declaredat ASTNode:104 */ public SecuritySchemeObject treeCopy() { SecuritySchemeObject tree = (SecuritySchemeObject) copy(); @@ -161,7 +165,7 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable return tree; } /** @apilevel internal - * @declaredat ASTNode:117 + * @declaredat ASTNode:118 */ protected boolean is$Equal(ASTNode node) { return super.is$Equal(node) && (tokenString_Type == ((SecuritySchemeObject) node).tokenString_Type) && (tokenString_Description == ((SecuritySchemeObject) node).tokenString_Description) && (tokenString_Name == ((SecuritySchemeObject) node).tokenString_Name) && (tokenString_In == ((SecuritySchemeObject) node).tokenString_In) && (tokenString_Scheme == ((SecuritySchemeObject) node).tokenString_Scheme) && (tokenString_BearerFormat == ((SecuritySchemeObject) node).tokenString_BearerFormat) && (tokenString_OpenIdConnectUrl == ((SecuritySchemeObject) node).tokenString_OpenIdConnectUrl); @@ -287,30 +291,55 @@ public class SecuritySchemeObject extends SecuritySchemeOb implements Cloneable return tokenString_BearerFormat != null ? tokenString_BearerFormat : ""; } /** - * Replaces the OAuthFlowsObject child. - * @param node The new node to replace the OAuthFlowsObject child. + * Replaces the optional node for the OAuthFlowsObject child. This is the <code>Opt</code> + * node containing the child OAuthFlowsObject, not the actual child! + * @param opt The new node to be used as the optional node for the OAuthFlowsObject child. + * @apilevel low-level + */ + public void setOAuthFlowsObjectOpt(Opt<OAuthFlowsObject> opt) { + setChild(opt, 0); + } + /** + * Replaces the (optional) OAuthFlowsObject child. + * @param node The new node to be used as the OAuthFlowsObject child. * @apilevel high-level */ public void setOAuthFlowsObject(OAuthFlowsObject node) { - setChild(node, 0); + getOAuthFlowsObjectOpt().setChild(node, 0); } /** - * Retrieves the OAuthFlowsObject child. - * @return The current node used as the OAuthFlowsObject child. + * Check whether the optional OAuthFlowsObject child exists. + * @return {@code true} if the optional OAuthFlowsObject child exists, {@code false} if it does not. * @apilevel high-level */ - @ASTNodeAnnotation.Child(name="OAuthFlowsObject") + public boolean hasOAuthFlowsObject() { + return getOAuthFlowsObjectOpt().getNumChild() != 0; + } + /** + * Retrieves the (optional) OAuthFlowsObject child. + * @return The OAuthFlowsObject child, if it exists. Returns {@code null} otherwise. + * @apilevel low-level + */ public OAuthFlowsObject getOAuthFlowsObject() { - return (OAuthFlowsObject) getChild(0); + return (OAuthFlowsObject) getOAuthFlowsObjectOpt().getChild(0); + } + /** + * Retrieves the optional node for the OAuthFlowsObject child. This is the <code>Opt</code> node containing the child OAuthFlowsObject, not the actual child! + * @return The optional node for child the OAuthFlowsObject child. + * @apilevel low-level + */ + @ASTNodeAnnotation.OptChild(name="OAuthFlowsObject") + public Opt<OAuthFlowsObject> getOAuthFlowsObjectOpt() { + return (Opt<OAuthFlowsObject>) getChild(0); } /** - * Retrieves the OAuthFlowsObject child. + * Retrieves the optional node for child OAuthFlowsObject. This is the <code>Opt</code> node containing the child OAuthFlowsObject, not the actual child! * <p><em>This method does not invoke AST transformations.</em></p> - * @return The current node used as the OAuthFlowsObject child. + * @return The optional node for child OAuthFlowsObject. * @apilevel low-level */ - public OAuthFlowsObject getOAuthFlowsObjectNoTransform() { - return (OAuthFlowsObject) getChildNoTransform(0); + public Opt<OAuthFlowsObject> getOAuthFlowsObjectOptNoTransform() { + return (Opt<OAuthFlowsObject>) getChildNoTransform(0); } /** * Replaces the lexeme OpenIdConnectUrl. @@ -447,10 +476,10 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(securitySchemeOb); @@ -497,11 +526,11 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo protected boolean securitySchemeObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:76 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:74 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public SecuritySchemeObject securitySchemeObject() { if (securitySchemeObject_visited) { throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.securitySchemeObject()."); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java index 090f64e0b13d3de5aec9dec49f38a2c608c695de..096824dff5ccc10876814d2d95bd8d337028f092 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeReference.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,9 +21,9 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:128 - * @astdecl SecuritySchemeReference : SecuritySchemeOb ::= <Ref:String> <SecuritySchemeOb:SecuritySchemeOb>; - * @production SecuritySchemeReference : {@link SecuritySchemeOb} ::= <span class="component"><Ref:String></span> <span class="component"><SecuritySchemeOb:SecuritySchemeOb></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:126 + * @astdecl SecuritySchemeReference : SecuritySchemeOb ::= <Ref:String>; + * @production SecuritySchemeReference : {@link SecuritySchemeOb} ::= <span class="component"><Ref:String></span>; */ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneable { @@ -43,48 +46,47 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * @declaredat ASTNode:12 */ @ASTNodeAnnotation.Constructor( - name = {"Ref", "SecuritySchemeOb"}, - type = {"String", "SecuritySchemeOb"}, - kind = {"Token", "Token"} + name = {"Ref"}, + type = {"String"}, + kind = {"Token"} ) - public SecuritySchemeReference(String p0, SecuritySchemeOb p1) { + public SecuritySchemeReference(String p0) { setRef(p0); - setSecuritySchemeOb(p1); } /** @apilevel low-level - * @declaredat ASTNode:22 + * @declaredat ASTNode:21 */ protected int numChildren() { return 0; } /** * @apilevel internal - * @declaredat ASTNode:28 + * @declaredat ASTNode:27 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:32 + * @declaredat ASTNode:31 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:36 + * @declaredat ASTNode:35 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:40 + * @declaredat ASTNode:39 */ public SecuritySchemeReference clone() throws CloneNotSupportedException { SecuritySchemeReference node = (SecuritySchemeReference) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:45 + * @declaredat ASTNode:44 */ public SecuritySchemeReference copy() { try { @@ -104,7 +106,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:64 + * @declaredat ASTNode:63 */ @Deprecated public SecuritySchemeReference fullCopy() { @@ -115,7 +117,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:74 + * @declaredat ASTNode:73 */ public SecuritySchemeReference treeCopyNoTransform() { SecuritySchemeReference tree = (SecuritySchemeReference) copy(); @@ -136,7 +138,7 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:94 + * @declaredat ASTNode:93 */ public SecuritySchemeReference treeCopy() { SecuritySchemeReference tree = (SecuritySchemeReference) copy(); @@ -152,10 +154,10 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab return tree; } /** @apilevel internal - * @declaredat ASTNode:108 + * @declaredat ASTNode:107 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenString_Ref == ((SecuritySchemeReference) node).tokenString_Ref) && (tokenSecuritySchemeOb_SecuritySchemeOb == ((SecuritySchemeReference) node).tokenSecuritySchemeOb_SecuritySchemeOb); + return super.is$Equal(node) && (tokenString_Ref == ((SecuritySchemeReference) node).tokenString_Ref); } /** * Replaces the lexeme Ref. @@ -177,35 +179,15 @@ public class SecuritySchemeReference extends SecuritySchemeOb implements Cloneab public String getRef() { return tokenString_Ref != null ? tokenString_Ref : ""; } - /** - * Replaces the lexeme SecuritySchemeOb. - * @param value The new value for the lexeme SecuritySchemeOb. - * @apilevel high-level - */ - public void setSecuritySchemeOb(SecuritySchemeOb value) { - tokenSecuritySchemeOb_SecuritySchemeOb = value; - } - /** @apilevel internal - */ - protected SecuritySchemeOb tokenSecuritySchemeOb_SecuritySchemeOb; - /** - * Retrieves the value for the lexeme SecuritySchemeOb. - * @return The value for the lexeme SecuritySchemeOb. - * @apilevel high-level - */ - @ASTNodeAnnotation.Token(name="SecuritySchemeOb") - public SecuritySchemeOb getSecuritySchemeOb() { - return tokenSecuritySchemeOb_SecuritySchemeOb; - } /** @apilevel internal */ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNode__visited; /** * @attribute syn * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:872") + @ASTNodeAnnotation.Source(aspect="Composer", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:862") public SecurityScheme composeSecurityScheme(SecuritySchemeOb securitySchemeOb, Map<Object, ASTNode> map) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(securitySchemeOb); @@ -232,21 +214,22 @@ protected java.util.Set composeSecurityScheme_SecuritySchemeOb_Map_Object__ASTNo protected boolean securitySchemeObject_visited = false; /** * @attribute syn - * @aspect RefGet - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75 + * @aspect Reference + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73 */ @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RefGet", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RefGet.jrag:75") + @ASTNodeAnnotation.Source(aspect="Reference", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Reference.jrag:73") public SecuritySchemeObject securitySchemeObject() { if (securitySchemeObject_visited) { throw new RuntimeException("Circular definition of attribute SecuritySchemeOb.securitySchemeObject()."); } securitySchemeObject_visited = true; try { - if( getSecuritySchemeOb() instanceof SecuritySchemeObject ) - return (SecuritySchemeObject) getSecuritySchemeOb(); - else - return getSecuritySchemeOb().securitySchemeObject(); + for( SecuritySchemeTuple t : root().securitySchemeTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSecuritySchemeOb().securitySchemeObject(); + } + return new SecuritySchemeObject(); } finally { securitySchemeObject_visited = false; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java index a27af9940b6836ca22c775954ec0728954689de8..31e17db1bb6c992417a989feca9316cec5df089d 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:29 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:30 * @astdecl SecuritySchemeTuple : ASTNode ::= <Key:String> SecuritySchemeOb; * @production SecuritySchemeTuple : {@link ASTNode} ::= <span class="component"><Key:String></span> <span class="component">{@link SecuritySchemeOb}</span>; @@ -212,4 +215,22 @@ public class SecuritySchemeTuple extends ASTNode<ASTNode> implements Cloneable { public boolean canRewrite() { return false; } + /** @apilevel internal */ + protected void collect_contributors_OpenAPIObject_securitySchemeTuples(OpenAPIObject _root, java.util.Map<ASTNode, java.util.Set<ASTNode>> _map) { + // @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:29 + { + java.util.Set<ASTNode> contributors = _map.get(_root); + if (contributors == null) { + contributors = new java.util.LinkedHashSet<ASTNode>(); + _map.put((ASTNode) _root, contributors); + } + contributors.add(this); + } + super.collect_contributors_OpenAPIObject_securitySchemeTuples(_root, _map); + } + /** @apilevel internal */ + protected void contributeTo_OpenAPIObject_securitySchemeTuples(List<SecuritySchemeTuple> collection) { + super.contributeTo_OpenAPIObject_securitySchemeTuples(collection); + collection.add(this); + } } diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java index 90d2d5607617687a78aa2f162757da040fc19773..e9efc8ba38640b26cb3ecb98e2270d5979474f97 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:14 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:15 * @astdecl ServerObject : ASTNode ::= <Url:String> <Description:String> ServerVariablesTuple* Extension*; * @production ServerObject : {@link ASTNode} ::= <span class="component"><Url:String></span> <span class="component"><Description:String></span> <span class="component">{@link ServerVariablesTuple}*</span> <span class="component">{@link Extension}*</span>; @@ -53,7 +56,7 @@ public class ServerObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:102 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:137 */ public static ServerObject parseServer(Server server, Map<Object, ASTNode> map){ ServerObject serverObject = new ServerObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java index 5c0cf4971f6f389228d5f720115b6d6d765b2222..2e50e947a2912dea32916c660c7addaaefbfef00 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:18 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:19 * @astdecl ServerVariableObject : ASTNode ::= Enum* <Default:String> <Description:String> Extension*; * @production ServerVariableObject : {@link ASTNode} ::= <span class="component">{@link Enum}*</span> <span class="component"><Default:String></span> <span class="component"><Description:String></span> <span class="component">{@link Extension}*</span>; @@ -53,7 +56,7 @@ public class ServerVariableObject extends ASTNode<ASTNode> implements Cloneable } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:122 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:157 */ public static ServerVariableObject parseServerVariable(ServerVariable serverVariable, Map<Object, ASTNode> map){ ServerVariableObject serverVariableObject = new ServerVariableObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java index 16878d741e22d2300a0c2d7f05711dbfa6294b75..1464b9593dedf67715c12e8bc7264eec5bb0ae32 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:15 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:16 * @astdecl ServerVariablesTuple : ASTNode ::= <Name:String> ServerVariableObject; * @production ServerVariablesTuple : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component">{@link ServerVariableObject}</span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java index 3469ec203e8f7bd373f0554fa77153a366a10894..74c269742ba1d6a3e9eb01f746114d6b3c0bf343 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:53 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:51 * @astdecl Tag : ASTNode ::= <Tag:String>; * @production Tag : {@link ASTNode} ::= <span class="component"><Tag:String></span>; diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java index 2a1e5c572decb682906924954df8ecfcfa65b314..0969712bb44a28afe55b4433d2dbb1a63d3ee740 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:103 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:101 * @astdecl TagObject : ASTNode ::= <Name:String> <Description:String> [ExternalDocObject] Extension*; * @production TagObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Description:String></span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class TagObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:682 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:672 */ public static org.openapi4j.parser.model.v3.Tag composeTag (TagObject tagObject, Map<Object, ASTNode> map){ org.openapi4j.parser.model.v3.Tag tag = new org.openapi4j.parser.model.v3.Tag(); @@ -48,7 +51,7 @@ public class TagObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:604 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:626 */ public static TagObject parseTag(org.openapi4j.parser.model.v3.Tag tag, Map<Object, ASTNode> map){ TagObject tagObject = new TagObject(); diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java index 88c142f23e65ee04fed8cab9bd8538a37be4d5b4..19eb6eef5b236e67f3ade6d6677f960c573f8532 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,12 +21,12 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:52 - * @astdecl Trace : OperationOb ::= <OperationObject:OperationObject>; - * @production Trace : {@link OperationOb} ::= <span class="component"><OperationObject:OperationObject></span>; + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:50 + * @astdecl Trace : ASTNode ::= OperationObject; + * @production Trace : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>; */ -public class Trace extends OperationOb implements Cloneable { +public class Trace extends ASTNode<ASTNode> implements Cloneable { /** * @declaredat ASTNode:1 */ @@ -38,52 +41,53 @@ public class Trace extends OperationOb implements Cloneable { * @declaredat ASTNode:10 */ public void init$Children() { + children = new ASTNode[1]; } /** - * @declaredat ASTNode:12 + * @declaredat ASTNode:13 */ @ASTNodeAnnotation.Constructor( name = {"OperationObject"}, type = {"OperationObject"}, - kind = {"Token"} + kind = {"Child"} ) public Trace(OperationObject p0) { - setOperationObject(p0); + setChild(p0, 0); } /** @apilevel low-level - * @declaredat ASTNode:21 + * @declaredat ASTNode:22 */ protected int numChildren() { - return 0; + return 1; } /** * @apilevel internal - * @declaredat ASTNode:27 + * @declaredat ASTNode:28 */ public boolean mayHaveRewrite() { return false; } /** @apilevel internal - * @declaredat ASTNode:31 + * @declaredat ASTNode:32 */ public void flushAttrCache() { super.flushAttrCache(); } /** @apilevel internal - * @declaredat ASTNode:35 + * @declaredat ASTNode:36 */ public void flushCollectionCache() { super.flushCollectionCache(); } /** @apilevel internal - * @declaredat ASTNode:39 + * @declaredat ASTNode:40 */ public Trace clone() throws CloneNotSupportedException { Trace node = (Trace) super.clone(); return node; } /** @apilevel internal - * @declaredat ASTNode:44 + * @declaredat ASTNode:45 */ public Trace copy() { try { @@ -103,7 +107,7 @@ public class Trace extends OperationOb implements Cloneable { * @return dangling copy of the subtree at this node * @apilevel low-level * @deprecated Please use treeCopy or treeCopyNoTransform instead - * @declaredat ASTNode:63 + * @declaredat ASTNode:64 */ @Deprecated public Trace fullCopy() { @@ -114,7 +118,7 @@ public class Trace extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:73 + * @declaredat ASTNode:74 */ public Trace treeCopyNoTransform() { Trace tree = (Trace) copy(); @@ -135,7 +139,7 @@ public class Trace extends OperationOb implements Cloneable { * The copy is dangling, i.e. has no parent. * @return dangling copy of the subtree at this node * @apilevel low-level - * @declaredat ASTNode:93 + * @declaredat ASTNode:94 */ public Trace treeCopy() { Trace tree = (Trace) copy(); @@ -151,81 +155,36 @@ public class Trace extends OperationOb implements Cloneable { return tree; } /** @apilevel internal - * @declaredat ASTNode:107 + * @declaredat ASTNode:108 */ protected boolean is$Equal(ASTNode node) { - return super.is$Equal(node) && (tokenOperationObject_OperationObject == ((Trace) node).tokenOperationObject_OperationObject); + return super.is$Equal(node); } /** - * Replaces the lexeme OperationObject. - * @param value The new value for the lexeme OperationObject. + * Replaces the OperationObject child. + * @param node The new node to replace the OperationObject child. * @apilevel high-level */ - public void setOperationObject(OperationObject value) { - tokenOperationObject_OperationObject = value; + public void setOperationObject(OperationObject node) { + setChild(node, 0); } - /** @apilevel internal - */ - protected OperationObject tokenOperationObject_OperationObject; /** - * Retrieves the value for the lexeme OperationObject. - * @return The value for the lexeme OperationObject. + * Retrieves the OperationObject child. + * @return The current node used as the OperationObject child. * @apilevel high-level */ - @ASTNodeAnnotation.Token(name="OperationObject") + @ASTNodeAnnotation.Child(name="OperationObject") public OperationObject getOperationObject() { - return tokenOperationObject_OperationObject; + return (OperationObject) getChild(0); } -/** @apilevel internal */ -protected java.util.Set inferRandomUrl_String_OperationObject_visited; /** - * @attribute syn - * @aspect InfSchema - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="InfSchema", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InfSchema.jrag:33") - public String inferRandomUrl(String pathRef, OperationObject operationObject) { - java.util.List _parameters = new java.util.ArrayList(2); - _parameters.add(pathRef); - _parameters.add(operationObject); - if (inferRandomUrl_String_OperationObject_visited == null) inferRandomUrl_String_OperationObject_visited = new java.util.HashSet(4); - if (inferRandomUrl_String_OperationObject_visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.inferRandomUrl(String,OperationObject)."); - } - inferRandomUrl_String_OperationObject_visited.add(_parameters); - try { - return ""; - } - finally { - inferRandomUrl_String_OperationObject_visited.remove(_parameters); - } - } -/** @apilevel internal */ -protected java.util.Set generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited; - /** - * @attribute syn - * @aspect RandomRequestGenerator - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97 - */ - @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN) - @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:97") - public String generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { - java.util.List _parameters = new java.util.ArrayList(3); - _parameters.add(pathRef); - _parameters.add(operationObject); - _parameters.add(responses); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited == null) generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited = new java.util.HashSet(4); - if (generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.contains(_parameters)) { - throw new RuntimeException("Circular definition of attribute OperationOb.generateRandomUrl(String,OperationObject,Map_ResponseObject__String_)."); - } - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.add(_parameters); - try { - return ""; - } - finally { - generateRandomUrl_String_OperationObject_Map_ResponseObject__String__visited.remove(_parameters); - } + * Retrieves the OperationObject child. + * <p><em>This method does not invoke AST transformations.</em></p> + * @return The current node used as the OperationObject child. + * @apilevel low-level + */ + public OperationObject getOperationObjectNoTransform() { + return (OperationObject) getChildNoTransform(0); } /** @apilevel internal */ public ASTNode rewriteTo() { diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java index d546aa15e420b496ad0af8720ba3a05c16fab2af..fb4627271b09204e1cd1340a2fc979923cab24b8 100644 --- a/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java +++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java @@ -8,6 +8,9 @@ import org.openapi4j.core.model.OAIContext; import java.io.IOException; import java.util.*; import java.net.URL; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.openapi4j.core.exception.DecodeException; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -18,7 +21,7 @@ import java.util.Random; import java.util.stream.IntStream; /** * @ast node - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:124 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\OpenAPISpecification.ast:122 * @astdecl XmlObject : ASTNode ::= <Name:String> <Namespace:String> <Prefix:String> <Attribute:Boolean> <Wrapped:Boolean> Extension*; * @production XmlObject : {@link ASTNode} ::= <span class="component"><Name:String></span> <span class="component"><Namespace:String></span> <span class="component"><Prefix:String></span> <span class="component"><Attribute:Boolean></span> <span class="component"><Wrapped:Boolean></span> <span class="component">{@link Extension}*</span>; @@ -26,7 +29,7 @@ import java.util.stream.IntStream; public class XmlObject extends ASTNode<ASTNode> implements Cloneable { /** * @aspect Composer - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:855 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jrag:845 */ public static Xml composeXml (XmlObject xmlObject, Map<Object, ASTNode> map) { Xml xml = new Xml(); @@ -46,7 +49,7 @@ public class XmlObject extends ASTNode<ASTNode> implements Cloneable { } /** * @aspect Parser - * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:770 + * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:791 */ public static XmlObject parseXml (Xml xml, Map<Object, ASTNode> map) { XmlObject xmlObject = new XmlObject(); diff --git a/src/main/jastadd/Composer.jrag b/src/main/jastadd/Composer.jrag index 40b8e29d663d93795c1bc999bc303fb21f1adf3a..e18c9c1dabb6a1403df08cc8b981ecc406b3bc61 100644 --- a/src/main/jastadd/Composer.jrag +++ b/src/main/jastadd/Composer.jrag @@ -27,7 +27,7 @@ aspect Composer { if( openapi.getNumPathsObject() != 0 ){ Map<String, Path> paths = new HashMap<>(); for( PathsObject p : openapi.getPathsObjects() ) - paths.put( p.getRef(), p.getPathItemOb().composePath(p.getPathItemOb(), map) ); + paths.put( p.getRef(), PathItemObject.composePath(p.getPathItemObject(), map) ); api3.setPaths(paths); } if( openapi.hasComponentsObject() ) @@ -259,17 +259,7 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co return components; } - syn Path PathItemOb.composePath (PathItemOb pathItem, Map<Object, ASTNode> map); - eq PathItemReference.composePath (PathItemOb pathItem, Map<Object, ASTNode> map) { - Path path = new Path(); - PathItemReference p = (PathItemReference) pathItem; - - if( !p.getRef().isEmpty() ) - path.setRef(p.getRef()); - - return path; - } - eq PathItemObject.composePath (PathItemOb pathItem, Map<Object, ASTNode> map) { +public static Path PathItemObject.composePath (PathItemObject pathItem, Map<Object, ASTNode> map){ Path path = new Path(); PathItemObject p = (PathItemObject) pathItem; @@ -307,7 +297,7 @@ public static Components ComponentsObject.composeComponents (ComponentsObject co } return path; - } + } public static Operation OperationObject.composeOperation (OperationObject operationObject, Map<Object, ASTNode> map){ Operation operation = new Operation(); @@ -571,9 +561,9 @@ public static EncodingProperty EncodingObject.composeEncodingProperty (EncodingO if( c.getNumExpression() != 0 ){ Map<String, Path> paths = new HashMap<>(); - PathItemOb p; + PathItemObject p; for( Expression e : c.getExpressions() ) { - p = e.getPathItemOb(); + p = e.getPathItemObject(); paths.put(e.getName(), p.composePath(p, map)); } callback.setCallbackPaths(paths); diff --git a/src/main/jastadd/InfSchema.jrag b/src/main/jastadd/InfSchema.jrag deleted file mode 100644 index 13750b83650a00374abdf856fa75b49671eee63f..0000000000000000000000000000000000000000 --- a/src/main/jastadd/InfSchema.jrag +++ /dev/null @@ -1,69 +0,0 @@ -aspect InfSchema { - - // syn Set<SchemaObject> ResponseObject.schemaObject () = for( ContentTuple c : getContentTuples() ) add.SchemaObject(); - - - /* - coll Set<SchemaOb> OpenAPIObject.collectSchemaObs() [new HashSet<>()] root OpenAPIObject; - SchemaOb contributes this - when schemaObject() - to OpenAPIObject.collectSchemaObs(); - */ - - inh OpenAPIObject ASTNode.root(); - eq OpenAPIObject.getChild().root() = this; - - coll Set<SchemaTuple> OpenAPIObject.schemaTuples() [new HashSet<>()] root OpenAPIObject; - SchemaTuple contributes this - to OpenAPIObject.schemaTuples(); - - inh Set<String> PathsObject.inferUrl(Set<String> urls); - eq OpenAPIObject.getPathsObject(int i).inferUrl(Set<String> urls) { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); - String path = ((OpenAPIObject) getParent()).getServerObject(0).getUrl(); - - if( p.hasGet() ) - urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); - else if( p.hasPost() ) - urls.add(p.getPost().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getPost().getOperationObject())); - - return urls; - } - - syn String OperationOb.inferRandomUrl(String pathRef, OperationObject operationObject); - eq Get.inferRandomUrl(String pathRef, OperationObject operationObject) { - - return ""; - } - eq Post.inferRandomUrl(String pathRef, OperationObject operationObject) { - - return ""; - } - eq Put.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Delete.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Options.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Head.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Patch.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq Trace.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - eq OperationObject.inferRandomUrl(String pathRef, OperationObject operationObject){ - return ""; - } - - syn Map<String, List<String>> OperationObject.addDict (Map<ResponseObject, String> responses){ - Map<String, List<String>> map = new HashMap<>(); - - return map; - } -} \ No newline at end of file diff --git a/src/main/jastadd/InferParameter.jrag b/src/main/jastadd/InferParameter.jrag new file mode 100644 index 0000000000000000000000000000000000000000..664da4278ba2bce28606e99abe041d485190d8ee --- /dev/null +++ b/src/main/jastadd/InferParameter.jrag @@ -0,0 +1,209 @@ +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; + +aspect InferParameter { + + syn Set<String> OpenAPIObject.collectInferredParameters () { + Set<String> collect = new HashSet<>(); + + for( InferredParameter i : getInferredParameters() ) + collect.add(i.getParameter()); + + return collect; + } + + public void OpenAPIObject.generateRequestsWithInferredParameters () throws Exception { + Set<String> urls = new HashSet<>(); + + generateRequests(); + + for( PathsObject p : getPathsObjects() ) + p.inferUrl(urls); + } + + inh Set<String> PathsObject.inferUrl(Set<String> urls); + eq OpenAPIObject.getPathsObject(int i).inferUrl(Set<String> urls) { + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); + String path = getServerObject(0).getUrl(); + + if( p.hasGet() ) + urls.add(p.getGet().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getGet().getOperationObject())); + else if( p.hasPost() ) + urls.add(p.getPost().inferRandomUrl(path + ((PathsObject) _childNode).getRef(), p.getPost().getOperationObject())); + + return urls; + } + + syn String Get.inferRandomUrl(String pathRef, OperationObject operationObject) { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + //System.out.println(p.getName() + " ---------- " + str.substring(0, str.indexOf("?")) + " -------- " + p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?")))); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ){ + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + //System.out.println(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + System.out.println(paths.size() + " Paths are inferred."); + + for( String path : paths ){ + System.out.println(path); + //connectGET(path); + } + } + return pathRef; + }catch (Exception e) { + return ""; + } + } + + syn String Post.inferRandomUrl(String pathRef, OperationObject operationObject) { + try { + List<String> paths = new ArrayList<>(); + + for( ParameterOb o : operationObject.getParameterObs() ){ + ParameterObject p = o.parameterObject(); + SchemaObject s = p.getSchemaOb().schemaObject(); + + if( p.getIn().equals("path") ){ + for( String str : root().collectInferredParameters() ){ + String pathPart = pathRef.substring(pathRef.indexOf("{") ,pathRef.indexOf("}") + 1); + + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add(pathRef.replace(pathPart, str.substring(str.indexOf("?")+1))); + } + } else if ( p.getIn().equals("query") ){ + + if( s.getType().equals("array") ){ + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + pathRef = pathRef + "&" + p.getName() + "=" + str.substring(str.indexOf("?")+1); + } + paths.add(pathRef.replaceFirst("&", "?")); + } else { + for( String str : root().collectInferredParameters() ){ + if( p.getName().equalsIgnoreCase(str.substring(0, str.indexOf("?"))) ) + paths.add( pathRef + "?" + p.getName() + "=" + str.substring(str.indexOf("?")+1) ); + } + } + + } + + for( String path : paths ){ + System.out.println(path); + //connectPOST(path); + } + + } + return pathRef; + }catch (Exception e) { + return ""; + } + } + + public void OperationObject.writeDictionary (SchemaOb schema, String resp) throws Exception{ + String schemaName = schema.getClass().getName(); + ObjectMapper mapper = new ObjectMapper(); + JsonNode respNode = mapper.readTree(resp); + String value; + + if (schemaName.substring(schemaName.lastIndexOf(".") + 1).equals("SchemaReference")) { + for (PropertyItem p : schema.schemaObject().getPropertyItems()) { + String infName = ((SchemaReference) schema).getRef().substring(((SchemaReference) schema).getRef().lastIndexOf("/") + 1) + p.getName(); + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(infName + "?" + value)); + root().addInferredParameter(new InferredParameter(p.getName() + "?" + value)); + } + } else { + for (PropertyItem p : schema.schemaObject().getPropertyItems()){ + value = respNode.get(p.getName()).toString(); + value = value.startsWith("\"") && value.endsWith("\"") ? value.substring(1, value.length()-1) : value; + + root().addInferredParameter(new InferredParameter(p.getName() + "?" + respNode.get(p.getName()).textValue())); + } + } + + } + + public void OperationObject.writeDictionaryWithArray (SchemaOb schema, String resp) throws Exception{ + ObjectMapper mapper = new ObjectMapper(); + ArrayNode respNode = ((ArrayNode) mapper.readTree(resp)); + Iterator<JsonNode> props = respNode.elements(); + + while( props.hasNext() ) + writeDictionary(schema.schemaObject().getItemsSchema().getSchemaOb(), props.next().toString()); + + } + + public void Get.connectGET (String path) throws Exception{ + URL url = new URL(path); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + + con.setRequestMethod("GET"); // optional default is GET + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (GET) : " + responseCode); + } + + public void Post.connectPOST (String path) throws Exception{ + URL url = new URL(path); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header + con.setDoOutput(true); // POST + + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println("Inferred path : " + path); + System.out.println("HTTP status code (POST) : " + responseCode); + } +} \ No newline at end of file diff --git a/src/main/jastadd/OpenAPISpecification.ast b/src/main/jastadd/OpenAPISpecification.ast index 1d9ac86b3091743734ec1ea701768adf17cb237b..9ae3e3ee3856a862639b30a3e3c95ec289d00a84 100644 --- a/src/main/jastadd/OpenAPISpecification.ast +++ b/src/main/jastadd/OpenAPISpecification.ast @@ -1,5 +1,6 @@ //OpenAPI Object -OpenAPIObject ::= <OpenAPI> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension*; +OpenAPIObject ::= <OpenAPI> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension* InferredParameter*; +InferredParameter ::= <Parameter>; //Info Object InfoObject ::= <Title> <Description> <TermsOfService> [ContactObject] [LicenseObject] <Version> Extension*; @@ -32,24 +33,21 @@ CallbackTuple ::= <Key> CallbackOb; //Paths Object -PathsObject ::= <Ref> PathItemOb; +PathsObject ::= <Ref> PathItemObject; //Path Item Object -abstract PathItemOb; -PathItemReference : PathItemOb ::= <Ref> <PathItemOb:PathItemOb>; -PathItemObject : PathItemOb ::= <Summary> <Description> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; +PathItemObject ::= <Summary> <Description> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterOb* Extension*; //Operation Object -abstract OperationOb; -OperationObject : OperationOb ::= Tag* <Summary> <Description> [ExternalDocObject] <OperationID> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; -Get : OperationOb ::= <OperationObject:OperationObject>; -Put : OperationOb ::= <OperationObject:OperationObject>; -Post : OperationOb ::= <OperationObject:OperationObject>; -Delete : OperationOb ::= <OperationObject:OperationObject>; -Options : OperationOb ::= <OperationObject:OperationObject>; -Head : OperationOb ::= <OperationObject:OperationObject>; -Patch : OperationOb ::= <OperationObject:OperationObject>; -Trace : OperationOb ::= <OperationObject:OperationObject>; +OperationObject ::= Tag* <Summary> <Description> [ExternalDocObject] <OperationID> ParameterOb* [RequestBodyOb] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*; +Get ::= OperationObject; +Put ::= OperationObject; +Post ::= OperationObject; +Delete ::= OperationObject; +Options ::= OperationObject; +Head ::= OperationObject; +Patch ::= OperationObject; +Trace ::= OperationObject; Tag ::= <Tag:String>; //External Documentation Object @@ -57,13 +55,13 @@ ExternalDocObject ::= <Description> <Url> Extension*; //Parameter Object abstract ParameterOb; -ParameterReference : ParameterOb ::= <Ref> <ParameterOb:ParameterOb>; +ParameterReference : ParameterOb ::= <Ref>; ParameterObject : ParameterOb ::= <Name> <In> <Description> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; ContentTuple ::= <Key> MediaTypeObject; //Request Body Object abstract RequestBodyOb; -RequestBodyReference : RequestBodyOb ::= <Ref> <RequestBodyOb:RequestBodyOb>; +RequestBodyReference : RequestBodyOb ::= <Ref>; RequestBodyObject : RequestBodyOb ::= <Description> ContentTuple* <Required:Boolean> Extension*; //Media Type Object @@ -75,14 +73,14 @@ EncodingObject ::= <ContentType> HeaderTuple* <Style> <Explode:Boolean> <AllowRe //Response Object abstract ResponseOb; -ResponseReference : ResponseOb ::= <Ref> <ResponseOb:ResponseOb>; +ResponseReference : ResponseOb ::= <Ref>; ResponseObject : ResponseOb ::= <Description> HeaderTuple* ContentTuple* LinkTuple* Extension*; //Callback Object abstract CallbackOb; -CallbackReference : CallbackOb ::= <Ref> <CallbackOb:CallbackOb>; +CallbackReference : CallbackOb ::= <Ref>; CallbackObject : CallbackOb ::= Expression* Extension*; -Expression ::= <Name> PathItemOb; +Expression ::= <Name> PathItemObject; Extension ::= <Key> <Value:Object>; //Example Object @@ -90,13 +88,13 @@ ExampleObject ::= <Summary> <Description> <Value:Object> <ExternalValue> Extensi //Link Object abstract LinkOb; -LinkReference : LinkOb ::= <Ref> <LinkOb:LinkOb>; +LinkReference : LinkOb ::= <Ref>; LinkObject : LinkOb ::= <OperationRef> <OperationID> LinkParameterTuple* HeaderTuple* <Description> [ServerObject] Extension*; LinkParameterTuple ::= <LinkParameterKey> <LinkParameterValue>; //Header Object abstract HeaderOb; -HeaderReference : HeaderOb ::= <Ref> <HeaderOb:HeaderOb>; +HeaderReference : HeaderOb ::= <Ref>; HeaderObject : HeaderOb ::= <Description> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style> <Explode:Boolean> <AllowReserved:Boolean> [SchemaOb] <Example:Object> ExampleTuple* ContentTuple* Extension*; //Tag Object @@ -104,7 +102,7 @@ TagObject ::= <Name> <Description> [ExternalDocObject] Extension*; //Schema Object abstract SchemaOb; -SchemaReference : SchemaOb ::= <Ref> <SchemaOb:SchemaOb>; +SchemaReference : SchemaOb ::= <Ref>; SchemaObject : SchemaOb ::= [AdditionalProperties] <AdditionalPropertiesAllowed:Boolean> <DefaultValue:Object> <Description> <DeprecatedBoolean:Boolean> [DiscriminatorObject] EnumObj* <Example:Object> <ExclusiveMaximum:Boolean> <ExclusiveMinimum:Boolean> [ExternalDocObject] <Format> [ItemsSchema] <Maximum:Number> <Minimum:Number> <MaxItems:Integer> <MinItems:Integer> <MaxLength:Integer> <MinLength:Integer> <MaxProperties:Integer> <MinProperties:Integer> <MultipleOf:Number> [NotSchema] <Nullable:Boolean> <Pattern> PropertyItem* RequiredField* AllOfSchema* AnyOfSchema* OneOfSchema* <ReadOnly:Boolean> <WriteOnly:Boolean> <Type> <Title> <UniqueItems:Boolean> [XmlObject] Extension*; AdditionalProperties ::= SchemaOb; EnumObj ::= <EnumOb:Object>; @@ -125,8 +123,8 @@ XmlObject ::= <Name> <Namespace> <Prefix> <Attribute:Boolean> <Wrapped:Boolean> //Security Scheme Object abstract SecuritySchemeOb; -SecuritySchemeReference : SecuritySchemeOb ::= <Ref> <SecuritySchemeOb:SecuritySchemeOb>; -SecuritySchemeObject : SecuritySchemeOb ::= <Type> <Description> <Name> <In> <Scheme> <BearerFormat> OAuthFlowsObject <OpenIdConnectUrl> Extension*; +SecuritySchemeReference : SecuritySchemeOb ::= <Ref>; +SecuritySchemeObject : SecuritySchemeOb ::= <Type> <Description> <Name> <In> <Scheme> <BearerFormat> [OAuthFlowsObject] <OpenIdConnectUrl> Extension*; //OAuth Flows Object OAuthFlowsObject ::= [Implicit] [Password] [ClientCredentials] [AuthorizationCode] Extension*; diff --git a/src/main/jastadd/Parser.jrag b/src/main/jastadd/Parser.jrag index f432f5a70b06ccaff575b893c95b2d95de063f0a..79f1820814936416c7859161c71c469990802180 100644 --- a/src/main/jastadd/Parser.jrag +++ b/src/main/jastadd/Parser.jrag @@ -2,6 +2,41 @@ import org.openapi4j.core.exception.DecodeException; aspect Parser { + inh OpenAPIObject ASTNode.root(); + eq OpenAPIObject.getChild().root() = this; + + coll List<SchemaTuple> OpenAPIObject.schemaTuples() [new ArrayList<>()] root OpenAPIObject; + SchemaTuple contributes this + to OpenAPIObject.schemaTuples(); + + coll List<ResponseTuple> OpenAPIObject.responseTuples() [new ArrayList<>()] root OpenAPIObject; + ResponseTuple contributes this + to OpenAPIObject.responseTuples(); + + coll List<ParameterTuple> OpenAPIObject.parameterTuples() [new ArrayList<>()] root OpenAPIObject; + ParameterTuple contributes this + to OpenAPIObject.parameterTuples(); + + coll List<RequestBodyTuple> OpenAPIObject.requestBodyTuples() [new ArrayList<>()] root OpenAPIObject; + RequestBodyTuple contributes this + to OpenAPIObject.requestBodyTuples(); + + coll List<HeaderTuple> OpenAPIObject.headerTuples() [new ArrayList<>()] root OpenAPIObject; + HeaderTuple contributes this + to OpenAPIObject.headerTuples(); + + coll List<SecuritySchemeTuple> OpenAPIObject.securitySchemeTuples() [new ArrayList<>()] root OpenAPIObject; + SecuritySchemeTuple contributes this + to OpenAPIObject.securitySchemeTuples(); + + coll List<LinkTuple> OpenAPIObject.linkTuples() [new ArrayList<>()] root OpenAPIObject; + LinkTuple contributes this + to OpenAPIObject.linkTuples(); + + coll List<CallbackTuple> OpenAPIObject.callbackTuples() [new ArrayList<>()] root OpenAPIObject; + CallbackTuple contributes this + to OpenAPIObject.callbackTuples(); + public static OpenAPIObject OpenAPIObject.parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException, DecodeException { OpenAPIObject openapi = new OpenAPIObject(); Map<Object, ASTNode> map = new HashMap<>(); @@ -14,7 +49,7 @@ public static OpenAPIObject OpenAPIObject.parseOpenAPI(OpenApi3 api) throws IOEx openapi.setInfoObject(InfoObject.parseInfo(api.getInfo(), map)); if( api.getPaths() != null ){ for( String key : api.getPaths().keySet() ) - openapi.addPathsObject(new PathsObject( key, PathItemOb.parsePath(api.getPath(key), api.getContext(), map))); + openapi.addPathsObject(new PathsObject( key, PathItemObject.parsePath(api.getPath(key), api.getContext(), map))); } if( api.getServers() != null ){ for( Server s : api.getServers() ) @@ -187,15 +222,9 @@ public static ComponentsObject ComponentsObject.parseComponents(Components compo return componentsObject; } -public static PathItemOb PathItemOb.parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { +public static PathItemObject PathItemObject.parsePath(Path path, OAIContext context, Map<Object, ASTNode> map) throws DecodeException { PathItemObject pathItem = new PathItemObject(); - if( path.isRef() ){ - PathItemReference p = new PathItemReference(); - p.setRef(path.getRef()); - p.setPathItemOb((PathItemObject) parsePath(path.getReference(context).getMappedContent(Path.class), context, map)); - return p; - } else { if( path.getSummary() != null ) pathItem.setSummary(path.getSummary()); if( path.getDescription() != null ) @@ -252,7 +281,6 @@ public static PathItemOb PathItemOb.parsePath(Path path, OAIContext context, Map for( String key : path.getExtensions().keySet() ) pathItem.addExtension(new Extension(key, path.getExtensions().get(key))); } - } map.put(path, pathItem); return pathItem; @@ -332,7 +360,6 @@ public static ParameterOb ParameterOb.parseParameter(Parameter parameter, OAICon if( parameter.isRef() ){ ParameterReference p = new ParameterReference(); p.setRef(parameter.getRef()); - p.setParameterOb(parseParameter(parameter.getReference(context).getMappedContent(Parameter.class), context, map)); return p; } else { if( parameter.getName() != null ) @@ -379,7 +406,6 @@ public static RequestBodyOb RequestBodyOb.parseRequestBody(org.openapi4j.parser. if( requestBody.isRef() ){ RequestBodyReference r = new RequestBodyReference(); r.setRef(requestBody.getRef()); - r.setRequestBodyOb(parseRequestBody(requestBody.getReference(context).getMappedContent(RequestBody.class), context, map)); return r; } else { if( requestBody.getContentMediaTypes() != null ) { @@ -452,7 +478,6 @@ public static ResponseOb ResponseOb.parseResponse(Response response, OAIContext if( response.isRef() ){ ResponseReference r = new ResponseReference(); r.setRef(response.getRef()); - r.setResponseOb(parseResponse(response.getReference(context).getMappedContent(Response.class), context, map)); return r; } else { if( response.getDescription() != null ) @@ -485,12 +510,11 @@ public static CallbackOb CallbackOb.parseCallback(Callback callback, OAIContext if( callback.isRef() ){ CallbackReference c = new CallbackReference(); c.setRef(callback.getRef()); - c.setCallbackOb(parseCallback(callback.getReference(context).getMappedContent(Callback.class), context, map)); return c; } else { if( callback.getCallbackPaths() != null ){ for( String key : callback.getCallbackPaths().keySet() ) - callbackObject.addExpression(new Expression(key, PathItemOb.parsePath(callback.getCallbackPath(key), context, map))); + callbackObject.addExpression(new Expression(key, PathItemObject.parsePath(callback.getCallbackPath(key), context, map))); } if( callback.getExtensions() != null ){ for( String key : callback.getExtensions().keySet() ) @@ -533,7 +557,6 @@ public static LinkOb LinkOb.parseLink(Link link, OAIContext context, Map<Object, if( link.isRef() ){ LinkReference l = new LinkReference(); l.setRef(link.getRef()); - l.setLinkOb(parseLink(link.getReference(context).getMappedContent(Link.class), context, map)); return l; } else { if( link.getOperationRef() != null ) @@ -564,7 +587,6 @@ public static HeaderOb HeaderOb.parseHeader(Header header, OAIContext context, M if( header.isRef() ){ HeaderReference h = new HeaderReference(); h.setRef(header.getRef()); - h.setHeaderOb(parseHeader(header.getReference(context).getMappedContent(Header.class), context, map)); return h; } else { if( header.getRequired() != null ) @@ -629,7 +651,6 @@ public static SchemaOb SchemaOb.parseSchema (org.openapi4j.parser.model.v3.Schem if( schema.isRef() ){ SchemaReference s = new SchemaReference(); s.setRef(schema.getRef()); - s.setSchemaOb(parseSchema(schema.getReference(context).getMappedContent(Schema.class), context, map)); return s; } else { if( schema.getAdditionalProperties() != null ) diff --git a/src/main/jastadd/RandomRequestGenerator.jrag b/src/main/jastadd/RandomRequestGenerator.jrag index bc6200771bf811ba753ff5d23c08cb3f49d81d83..1212d584d03e5955893a8735473adf9d48ba85d5 100644 --- a/src/main/jastadd/RandomRequestGenerator.jrag +++ b/src/main/jastadd/RandomRequestGenerator.jrag @@ -13,7 +13,7 @@ aspect RandomRequestGenerator { Set<String> urls = new HashSet<>(); Map<ResponseObject, String> responses = new HashMap<>(); - for( PathsObject p : this.getPathsObjects() ) + for( PathsObject p : getPathsObjects() ) p.generateUrl(responses); System.out.println(responses.size()); @@ -82,7 +82,7 @@ aspect RandomRequestGenerator { inh Map<ResponseObject, String> PathsObject.generateUrl(Map<ResponseObject, String> responses); eq OpenAPIObject.getPathsObject(int i).generateUrl(Map<ResponseObject, String> responses) { - PathItemObject p = ((PathsObject) _childNode).getPathItemOb().pathItemObject(); + PathItemObject p = ((PathsObject) _childNode).getPathItemObject(); String path = getServerObject(0).getUrl(); if( p.hasGet() ) @@ -94,7 +94,6 @@ aspect RandomRequestGenerator { return responses; } - syn String OperationOb.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses); /* eq Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { Random rand = new Random(); @@ -204,7 +203,8 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje } */ - eq Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { + + syn String Get.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses) { try { Random rand = new Random(); @@ -250,6 +250,7 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje URL url = new URL(pathRef); HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setRequestMethod("GET"); // optional default is GET @@ -265,10 +266,15 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje // print result System.out.println("HTTP status code (GET) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); } } return pathRef; @@ -276,10 +282,9 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje return ""; } } - eq Post.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - Random rand = new Random(); - + syn String Post.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ try{ + Random rand = new Random(); for( ParameterOb o : operationObject.getParameterObs() ){ ParameterObject p = o.parameterObject(); SchemaObject s = p.getSchemaOb().schemaObject(); @@ -323,7 +328,9 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje URL url = new URL(pathRef); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); // HTTP POST + con.setRequestProperty("User-Agent", "Mozilla/5.0"); // add request header con.setDoOutput(true); // POST int responseCode = con.getResponseCode(); @@ -338,41 +345,21 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje // print result System.out.println("HTTP status code (POST) : " + responseCode); + System.out.println("Response : " + response.toString()); for( ResponseTuple t : operationObject.getResponseTuples() ){ if( t.getKey().equals("200") && responseCode == 200 ) { System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } else if ( t.getKey().equals("default") && responseCode == 200 ){ - System.out.println("Response successfully saved!"); - responses.put(t.getResponseOb().responseObject(), response.toString()); - } - } - return pathRef;} catch (Exception e) { + SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); + if( respSchema.schemaObject().getType().equals("array") ) + operationObject.writeDictionaryWithArray(respSchema, response.toString()); + else + operationObject.writeDictionary(respSchema, response.toString()); + } + return pathRef;} + } catch (Exception e) { return ""; - } - } - - eq Put.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Delete.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Options.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Head.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Patch.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq Trace.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } - eq OperationObject.generateRandomUrl(String pathRef, OperationObject operationObject, Map<ResponseObject, String> responses){ - return ""; - } + } return ""; + } public String OperationObject.generateRandomString(Random rand, JastAddList<EnumObj> objs) { if( objs.getNumChild() != 0 ) @@ -393,5 +380,5 @@ public void Post.generateRandomUrl(String pathRef, OperationObject operationObje else if( maximum > 0 ) return String.valueOf(rand.nextInt(maximum)); return String.valueOf(rand.nextInt()); - } + } } \ No newline at end of file diff --git a/src/main/jastadd/RefGet.jrag b/src/main/jastadd/RefGet.jrag deleted file mode 100644 index 15579fda8530415db42b3d824ff03e7c6b32c29b..0000000000000000000000000000000000000000 --- a/src/main/jastadd/RefGet.jrag +++ /dev/null @@ -1,84 +0,0 @@ -aspect RefGet { - - syn ParameterObject ParameterOb.parameterObject(); - eq ParameterObject.parameterObject() = this; - eq ParameterReference.parameterObject() { - if( getParameterOb() instanceof ParameterObject ) - return (ParameterObject) getParameterOb(); - else - return getParameterOb().parameterObject(); - } - - syn SchemaObject SchemaOb.schemaObject(); - eq SchemaObject.schemaObject() = this; - eq SchemaReference.schemaObject() { - if( getSchemaOb() instanceof SchemaObject ) - return (SchemaObject) getSchemaOb(); - else - return getSchemaOb().schemaObject(); - } - - syn PathItemObject PathItemOb.pathItemObject(); - eq PathItemObject.pathItemObject() = this; - eq PathItemReference.pathItemObject() { - if( getPathItemOb() instanceof PathItemObject ) - return (PathItemObject) getPathItemOb(); - else - return getPathItemOb().pathItemObject(); - } - - syn RequestBodyObject RequestBodyOb.requestBodyObject(); - eq RequestBodyObject.requestBodyObject() = this; - eq RequestBodyReference.requestBodyObject() { - if( getRequestBodyOb() instanceof RequestBodyObject ) - return (RequestBodyObject) getRequestBodyOb(); - else - return getRequestBodyOb().requestBodyObject(); - } - - syn ResponseObject ResponseOb.responseObject(); - eq ResponseObject.responseObject() = this; - eq ResponseReference.responseObject() { - if( getResponseOb() instanceof ResponseObject ) - return (ResponseObject) getResponseOb(); - else - return getResponseOb().responseObject(); - } - - syn CallbackObject CallbackOb.callbackObject(); - eq CallbackObject.callbackObject() = this; - eq CallbackReference.callbackObject() { - if( getCallbackOb() instanceof CallbackObject ) - return (CallbackObject) getCallbackOb(); - else - return getCallbackOb().callbackObject(); - } - - syn LinkObject LinkOb.linkObject(); - eq LinkObject.linkObject() = this; - eq LinkReference.linkObject() { - if( getLinkOb() instanceof LinkObject ) - return (LinkObject) getLinkOb(); - else - return getLinkOb().linkObject(); - } - - syn HeaderObject HeaderOb.headerObject(); - eq HeaderObject.headerObject() = this; - eq HeaderReference.headerObject() { - if( getHeaderOb() instanceof HeaderObject ) - return (HeaderObject) getHeaderOb(); - else - return getHeaderOb().headerObject(); - } - - syn SecuritySchemeObject SecuritySchemeOb.securitySchemeObject(); - eq SecuritySchemeObject.securitySchemeObject() = this; - eq SecuritySchemeReference.securitySchemeObject() { - if( getSecuritySchemeOb() instanceof SecuritySchemeObject ) - return (SecuritySchemeObject) getSecuritySchemeOb(); - else - return getSecuritySchemeOb().securitySchemeObject(); - } - -} \ No newline at end of file diff --git a/src/main/jastadd/Reference.jrag b/src/main/jastadd/Reference.jrag new file mode 100644 index 0000000000000000000000000000000000000000..5cb3d50434790bf1dc6d58ca917e15b861850a6b --- /dev/null +++ b/src/main/jastadd/Reference.jrag @@ -0,0 +1,83 @@ +aspect Reference { + + syn ParameterObject ParameterOb.parameterObject(); + eq ParameterObject.parameterObject() = this; + eq ParameterReference.parameterObject() { + for( ParameterTuple t : root().parameterTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getParameterOb().parameterObject(); + } + return new ParameterObject(); + } + + syn SchemaObject SchemaOb.schemaObject(); + eq SchemaObject.schemaObject() = this; + eq SchemaReference.schemaObject() { + for( SchemaTuple t : root().schemaTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSchemaOb().schemaObject(); + } + return new SchemaObject(); + } + + syn RequestBodyObject RequestBodyOb.requestBodyObject(); + eq RequestBodyObject.requestBodyObject() = this; + eq RequestBodyReference.requestBodyObject() { + for( RequestBodyTuple t : root().requestBodyTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getRequestBodyOb().requestBodyObject(); + } + return new RequestBodyObject(); + } + + syn ResponseObject ResponseOb.responseObject(); + eq ResponseObject.responseObject() = this; + eq ResponseReference.responseObject() { + for( ResponseTuple t : root().responseTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getResponseOb().responseObject(); + } + return new ResponseObject(); + } + + syn CallbackObject CallbackOb.callbackObject(); + eq CallbackObject.callbackObject() = this; + eq CallbackReference.callbackObject() { + for( CallbackTuple t : root().callbackTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getCallbackOb().callbackObject(); + } + return new CallbackObject(); + } + + syn LinkObject LinkOb.linkObject(); + eq LinkObject.linkObject() = this; + eq LinkReference.linkObject() { + for( LinkTuple t : root().linkTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getLinkOb().linkObject(); + } + return new LinkObject(); + } + + syn HeaderObject HeaderOb.headerObject(); + eq HeaderObject.headerObject() = this; + eq HeaderReference.headerObject() { + for( HeaderTuple t : root().headerTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getHeaderOb().headerObject(); + } + return new HeaderObject(); + } + + syn SecuritySchemeObject SecuritySchemeOb.securitySchemeObject(); + eq SecuritySchemeObject.securitySchemeObject() = this; + eq SecuritySchemeReference.securitySchemeObject() { + for( SecuritySchemeTuple t : root().securitySchemeTuples() ){ + if( t.getKey().equals(getRef().substring(getRef().lastIndexOf("/")+1, getRef().length())) ) + return t.getSecuritySchemeOb().securitySchemeObject(); + } + return new SecuritySchemeObject(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java index ecddff6a4e90c9ab774de8a1298e994cdb597c1c..59253086230930c2f7ad62b4e92206a82b289551 100644 --- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java +++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java @@ -30,7 +30,7 @@ public class OpenAPIMain { /** main-method, calls the set of methods to test the OpenAPI-Generator with JastAdd **/ public static void main(String[] args) throws Exception { - OpenAPIObject openApi; + OpenAPIObject openApi = new OpenAPIObject(); OpenApi3 api3; ValidationResults results; List<String> filenames = new ArrayList<>(); @@ -76,8 +76,8 @@ public class OpenAPIMain { OpenApi3 api = new OpenApi3Parser().parse(expUrl, new ArrayList<>(), true); System.out.println("Loading expression DSL file '" + fileName + "'."); - openApi = OpenAPIObject.parseOpenAPI(api); - openApi.generateRequests(); + openApi = openApi.parseOpenAPI(api); + openApi.generateRequestsWithInferredParameters(); //writer.write(api3.toNode().toPrettyString()); //writer.close(); diff --git a/src/test/java/openapi/OpenAPIMain_test.java b/src/test/java/openapi/OpenAPIMain_test.java index 786273e0563b4da97fcae25ecfcd077263a11da8..05f2a9c9c94c82cccf61817462b322861d9d3c76 100644 --- a/src/test/java/openapi/OpenAPIMain_test.java +++ b/src/test/java/openapi/OpenAPIMain_test.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.flipkart.zjsonpatch.JsonDiff; import de.tudresden.inf.st.openapi.ast.*; +import org.graalvm.compiler.lir.amd64.AMD64BinaryConsumer; import org.junit.jupiter.api.Assertions; import org.openapi4j.core.exception.DecodeException; import org.openapi4j.core.exception.EncodeException; @@ -26,6 +27,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import org.junit.jupiter.api.Test; @@ -36,8 +38,8 @@ import static org.junit.jupiter.api.Assertions.*; public class OpenAPIMain_test { @Test - public void test() throws IOException, ResolutionException, ValidationException, EncodeException, DecodeException { - OpenAPIObject openApi; + public void test() throws Exception { + OpenAPIObject openApi = new OpenAPIObject(); OpenApi3 api3; ValidationResults results; List<String> filenames = new ArrayList<>(); @@ -68,9 +70,10 @@ public class OpenAPIMain_test { //System.out.println(results.isValid()); // openAPI object is integrated in JastAdd grammar - openApi = OpenAPIObject.parseOpenAPI(api); - Set<SchemaTuple> s = openApi.schemaTuples(); - System.out.println(s.size()); + openApi = openApi.parseOpenAPI(api); + System.out.println(openApi.getPathsObject(0).getPathItemObject().getPost().getOperationObject().getResponseTuple(0).getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb().getClass().getName()); + + //Map<ResponseObject, String> map = openApi.generateRequests(); // composed openAPI object, it is expected to be equivalent to parsed source object api3 = OpenAPIObject.composeOpenAPI(openApi);