From 8df2d5cc5bb83983c0662cdb033eb9aa61e36d8d Mon Sep 17 00:00:00 2001
From: Jueun Park <s5616012@msx.tu-dresden.de>
Date: Tue, 14 Sep 2021 04:28:42 +0900
Subject: [PATCH] Update

---
 .../inf/st/openapi/ast/OpenAPIObject.class    |  Bin 28468 -> 29619 bytes
 .../inf/st/openapi/ast/OperationObject.class  |  Bin 39759 -> 39052 bytes
 src/gen-res/BuildInfo.properties              |    6 +-
 .../tudresden/inf/st/openapi/ast/ASTNode.java |  495 ----
 .../inf/st/openapi/ast/ASTNodeAnnotation.java |   94 -
 .../inf/st/openapi/ast/ASTState.java          |  255 ---
 .../st/openapi/ast/AdditionalProperties.java  |  193 --
 .../inf/st/openapi/ast/AllOfSchema.java       |  193 --
 .../inf/st/openapi/ast/AnyOfSchema.java       |  193 --
 .../inf/st/openapi/ast/AttributeValue.java    |   62 -
 .../inf/st/openapi/ast/AuthorizationCode.java |  193 --
 .../inf/st/openapi/ast/CallbackObject.java    |  441 ----
 .../inf/st/openapi/ast/CallbackTuple.java     |  214 --
 .../inf/st/openapi/ast/ClientCredentials.java |  193 --
 .../inf/st/openapi/ast/ComponentsObject.java  | 1571 -------------
 .../inf/st/openapi/ast/ContactObject.java     |  383 ----
 .../inf/st/openapi/ast/ContentTuple.java      |  214 --
 .../tudresden/inf/st/openapi/ast/Delete.java  |  193 --
 .../st/openapi/ast/DiscriminatorObject.java   |  337 ---
 .../inf/st/openapi/ast/EncodingObject.java    |  526 -----
 .../inf/st/openapi/ast/EncodingTuple.java     |  214 --
 .../de/tudresden/inf/st/openapi/ast/Enum.java |  186 --
 .../tudresden/inf/st/openapi/ast/EnumObj.java |  186 --
 .../inf/st/openapi/ast/ExampleObject.java     |  408 ----
 .../inf/st/openapi/ast/ExampleTuple.java      |  214 --
 .../inf/st/openapi/ast/Expression.java        |  214 --
 .../inf/st/openapi/ast/Extension.java         |  207 --
 .../inf/st/openapi/ast/ExternalDocObject.java |  359 ---
 .../de/tudresden/inf/st/openapi/ast/Get.java  |  193 --
 .../de/tudresden/inf/st/openapi/ast/Head.java |  193 --
 .../inf/st/openapi/ast/HeaderObject.java      |  706 ------
 .../inf/st/openapi/ast/HeaderTuple.java       |  214 --
 .../inf/st/openapi/ast/Implicit.java          |  193 --
 .../inf/st/openapi/ast/InfoObject.java        |  522 -----
 .../inf/st/openapi/ast/ItemsSchema.java       |  193 --
 .../inf/st/openapi/ast/JastAddList.java       |  204 --
 .../inf/st/openapi/ast/LicenseObject.java     |  235 --
 .../inf/st/openapi/ast/LinkObject.java        |  577 -----
 .../st/openapi/ast/LinkParameterTuple.java    |  207 --
 .../inf/st/openapi/ast/LinkTuple.java         |  214 --
 .../inf/st/openapi/ast/MappingTuple.java      |  207 --
 .../inf/st/openapi/ast/MediaTypeObject.java   |  512 -----
 .../inf/st/openapi/ast/NotSchema.java         |  193 --
 .../inf/st/openapi/ast/OAuthFlowObject.java   |  402 ----
 .../inf/st/openapi/ast/OAuthFlowsObject.java  |  431 ----
 .../inf/st/openapi/ast/OneOfSchema.java       |  193 --
 .../inf/st/openapi/ast/OpenAPIObject.java     | 1028 ---------
 .../inf/st/openapi/ast/OperationObject.java   | 1415 ------------
 .../de/tudresden/inf/st/openapi/ast/Opt.java  |  154 --
 .../tudresden/inf/st/openapi/ast/Options.java |  193 --
 .../inf/st/openapi/ast/ParameterObject.java   |  882 --------
 .../inf/st/openapi/ast/ParameterTuple.java    |  214 --
 .../inf/st/openapi/ast/Password.java          |  193 --
 .../tudresden/inf/st/openapi/ast/Patch.java   |  193 --
 .../inf/st/openapi/ast/PathItem.java          | 1110 ---------
 .../inf/st/openapi/ast/PathsObject.java       |  237 --
 .../de/tudresden/inf/st/openapi/ast/Post.java |  193 --
 .../inf/st/openapi/ast/PropertyItem.java      |  214 --
 .../de/tudresden/inf/st/openapi/ast/Put.java  |  193 --
 .../inf/st/openapi/ast/RequestBodyObject.java |  383 ----
 .../inf/st/openapi/ast/RequestBodyTuple.java  |  214 --
 .../inf/st/openapi/ast/RequiredField.java     |  186 --
 .../inf/st/openapi/ast/ResponseObject.java    |  602 -----
 .../inf/st/openapi/ast/ResponseTuple.java     |  214 --
 .../inf/st/openapi/ast/SchemaObject.java      | 1988 -----------------
 .../inf/st/openapi/ast/SchemaTuple.java       |  214 --
 .../inf/st/openapi/ast/ScopesTuple.java       |  207 --
 .../ast/SecurityRequirementObject.java        |  316 ---
 .../openapi/ast/SecurityRequirementTuple.java |  299 ---
 .../openapi/ast/SecurityRequirementValue.java |  186 --
 .../st/openapi/ast/SecuritySchemeObject.java  |  535 -----
 .../st/openapi/ast/SecuritySchemeTuple.java   |  214 --
 .../inf/st/openapi/ast/ServerObject.java      |  358 ---
 .../st/openapi/ast/ServerVariableObject.java  |  358 ---
 .../st/openapi/ast/ServerVariablesTuple.java  |  214 --
 .../de/tudresden/inf/st/openapi/ast/Tag.java  |  186 --
 .../inf/st/openapi/ast/TagObject.java         |  415 ----
 .../tudresden/inf/st/openapi/ast/Trace.java   |  193 --
 .../inf/st/openapi/ast/XmlObject.java         |  310 ---
 src/main/jastadd/RandomRequestGenerator.jadd  |   19 +
 .../tudresden/inf/st/openapi/OpenAPIMain.java |    1 +
 81 files changed, 23 insertions(+), 27141 deletions(-)
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/PathItem.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java
 delete mode 100644 src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java

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 bd203fcace4dd67e3b56412e9af854719f074607..38ba44f195165022f18236173cae8a8c8c5d1623 100644
GIT binary patch
literal 29619
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
A7XSbN

literal 28468
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

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 9519a3ae51aabf8a4071e39c63f3f40f9c1f1c48..719215edc23435ec2455f733e7c2bc2d65ee53c7 100644
GIT binary patch
literal 39052
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
W&N7_?vo0`QWV!@qU17S)bPWIwjuW5&

literal 39759
zcmX^0Z`VEs1_l!rE_SA1E(S)X5H5xerce+O#>KFgDV&>8fhht+M6xqQaWQZ(MT1nu
zfE2`XG4wITfw=J?ZUTsv2x29Hh-5B?=S(Reu~ZN@4a7<Zu`)nJCOcCW7lQ;-Hb^)J
zB$5jv^0*jYGv$NC3P9XKcBUdO1_g+tirJY;xEPd~N<l;!7gIS?1vjH2Qzb}s6-ae8
zh^S#_s^wzPW~$?2s%L6oXKLhP&;#k$V`>5kmx6?wL0Vcss#`&<HV~_wovDM1!JMfR
zB+>;E=>`!!>`c8}3^q)CAmM(H$OI5Ek)3H07lR|nEsji+L2^^rnWl0vxPq*bV4B9k
zG#wN;GdP%Lg6LTsOtV4s9FUjiaxu+gn$N+s07NeYnYIWdx0r)z2}ooq7t=DP<sjAy
zklacRrd8}rtGO7WKt@L~t>Iu=3o>OL2h)0x;06w+jUdIFxR^FG&1GlW0&>JwHv0z*
zV8F$Y!n6&fZaW9l4v;lFIhl4b?dD?I!?c&3X&)Cu9@Bmhae$raAP3VSE`~y;!yw`a
z2h&lIwqqPj$3grP984!c>ERT}_|qWP87`)?OdCMlbF5&i7#O&?na(p^5Mp3px+cWH
z$aG7Hfr;rJNbEky<_93P580U>fxHz03bV%`))NrxDL2zIrf_zq=b#i80wP|3<X(d0
zVnM7|AXWm1^%}%_14>+PLELvB?t2jH1BmsJo#_)Ocs_$fzJNr&f|ArX5cfNX`va6_
zesVMYVhRUwe}mG|A5e<=3sUkAB=(<+fsvVki>aQOk&8i_nTd;`gP9p5#=_3b%Ee&L
z%mxx+2Z?a7Gjnn=*f4W}M7TjBJlu?m%)DF-j?8=@F@7$F-Ap0u%mSPY9n6C4%tD}`
z1LZMhVRmK_E`|f3SnXgI<zm>)ECwRPL4*WIt0YK^6c@8JvkW`4EIYFtJF`3ovjP{>
zS!P8pW+kR|Tnwi{k=Mbj3{tKF(x?jZ#2FAv4MeDejL-lPnjk_8L}-Hu9gq%P5TVD#
zu$NgML>PbwVUU<1h-JvZYy{#Mb1@uX76!TW6o@#(&TIk_HU$x8Ai|uT*#bmcf(R=R
zVGSZ|K!h!bumchHAi@DeID!Z#kn@~DEEf>r%FgV@$RJ#jpPiZ)TvC*ommVKnnwy(g
zRLRI7<dc<HmZ+bTn3t{(k+WuG5Jy((l3JWxlvz-cnV*Ly<6n?kln4^{bYWzW1M6|h
z&(BFs%!_wPEhtJ&PAo}Hfr>CP2qW196|`n#5Jk}zlv-GtS(KW>$RLoMpIeY$oC>#t
zks(IICnZ(Cq%@@{wKyd;Pd_s+O~1HAKffR~FR>s~Ke4z(AFkRzDJwO(#9GrQzbGB1
z!X!(-AhD=8wMaiVKP5Fszswk+-kOnt#W_DEm63tpCo?bAuQWF)wJ0PpDJK;aMES{y
zIbn%KnIJw?kg<f3L6x9;LK4%h85tN07#R!+strgiO3Y0yNiBl9osmJGpq`-A;)49V
z;?$7Rf}B)qMh5O8sDN)`0mv)hxGgQo%+dEvEU;!|;7Cr)$w^8~&SqrLAP_XpP?gri
zxC5pb<_=DnJ;jU+jKz!$)&zYLoSIx(lvz><O#!*7c_r|0&?7>3Q5jOeF{UyyXcN@r
zT2YdkSDcxjXU)jKlM3TNLM|Vcv>}clCjQXV9wP%M+!RIzQc|Lr4@!coEJ%eWI&Vl8
zf<>qego~Va2}CL^y;$2>Gcr(Y8Z6eqrkO$<gU@Z?)ChJhBvirrc!Nt4le2vj3&4J4
zXLe_2_F!b-El$l#2};aM$<K9n4Pj&u)qofe)(tJEG{YDfI0_O=G6E8dN<bk@sC016
zE6w#!$^zxcOhyJqPeulol8nq^Mh4E3#G>@nlF*_YMh2Fm#Jm(xrU$zg>>Y?ZtQi@Y
zOF=65AWq3kEzu7R@&O4agNjBOgs?|RNkM3kk8^%rUTQL^fCQy5Sk{CTGhD6}$*JH%
zwV0jRlaYZB;o$)P;1EUzk@VC&Q1O}yu{{`EZZk3jLjwZYVFXjUS7LFAV@iroW-+Kp
z1bYlQAQ>50@{_WP85wj*GKrBPf)w>O1Qo;L2b4HDgEQ0f5=%;pQW+WQDD*QaHfus+
z5jA)OQRBihuY{371B;_PJ+W$M&&|xs%q`7jWMI!ttbnliz*P~v%mCMJ#MV`s1Va*T
zE;OStGBB4Uri1bbemmfG5GYk=r&cmD7!xQ_u$0@@j0|c7b%DxjYeoh(o6Nk-5<5l)
zW(`nw<^}OooHH_WQi@XZ7#W`suJV!7HfG#m5g}Ac_!pE|lc5d89YondND)aUq9{h>
za9Bf&V2VM}Pm;?hv<wvOOa%sv3`_-vAi@Yl7!%XD0!0)^u?dJU1rcT-!W=|cfCx)Q
z2Ic}o12Aa_CXK+PF(X3=DFH&b`~bD{K&4g`L1X<3N(dVVYMB(}CFZ!~CqpwZ$nXS$
zh9gBHVN2k79mxtRxgXSsOD!&O%1^08GCYpD?uWHyAZ<=i08!ZjSn~#9K^Ap=fTiq2
z3a(gcTLvm}k<2F?*CZt;P@09brtPd5nU|1Ma1&0fkPL>USVojSkQNf*o(9=D5R2_3
z6qJPhh?yY?rU0V+f-N@^G?}EhN6(7XH61-4BE<ta)f?f6z?Uzn>$TuiluSu;pCM;b
zP{k`5RGL?knVTAxS)7@alj@k4mtO)N(J5wU_GV<@cFxZ$E-5NaF3B%qWZ?14%S$bC
z&PgmTPAz6+uqPN4j=>>*`6)=IsvwyM8ga=>%uQuvU=9H_P1)f?QrsvbPJ$peqf~~B
z4BYVcEokJ4A1&iBG6-TMc}50altjwNz>AWs7#Rey3|UFyObLt(Jjij!$iM-z5;Anf
z334&GC<JvdD+^K?83d5CQ%GXE9U}u9q`YEe5CdgmkQNkA+A%W7AZtSNqa9Qq$X1k^
z){c=u3RxeDuhAt@g20ZEfgPHk7#Y-%&A=H7c8m;?s0tCu8RSA_Igk&*fnvwVz>=K_
z>SMEjI;4yYtRbL*Nk#@{|AG=m2JXDlTzCfn)GYvYj&l<$Jrc`OgHp?jGD|>7Mnf}-
zk%2EQr?fc3v81HPIWajSm61UNEa04<lLP5?LxowBbMo_285xW<$muz;<blTpS(5V$
zDnUIPM2+JNGS)A@B)GJoAit<2H3i<M2Mx8QmFDC)gY|GBk`^O_7*Zxjh+BikXNyu(
zK^pw>Ly8jfiqrCoav2#|lR=#!P|uA}T?5T+pnO$Ql$y%OzyYE_1~M{mWEQKq7M3RF
zFf!;6u9;ybfx?)pIJG1sF&z?9288t@MY%Pogkj0aEG}VW2q#G=;UXH+9spUunVwqW
zSDFhhLqy<glrUsV2m1lkXZIwW0zgJHGO%SN7K6=XOH4@tGc*W$0i+e=CP9cER7XGp
zl954^ICDHf25~`L4hemIB9bq1@G~-mk*0&#U}tCcVPxP0ISQOn85wNJs0!fPL6ZOo
zZ=!^mAVeHRj2$9Y%*Y@FWuZue(kr|sVJ%C{DNSW$00kplP(%aEAPqaSFC&8`8QuVw
zUDn|7yAqUoi!VJDRY1HrwFFcMq7?JsB9Dla1?ua95(INTsEmvyoP<D?3PJB+ILF!!
zoM}a{IhB#YjIgzsCW2gTOomGs8ALJ?i!sat4~$}lBO`+;5osO6G|*gEI<9C@C&ENf
zynx2;2p214M+iH!A0q>Ye?bW}vk}gv(DED6np1)4wq|5d!r@<(T*OzLT7uHX0;OgY
z0kPuL60|l6C`U6gBoj^~NQD$(&!AZXO`)QYk{(TxkwF2gIEvpu#Ri5x6AdD21~gsP
zj0{2<iN$E5j0{4FDJd9&CWM0pO%FIH%3_*@>KV*v0A&S&`3>DJaBU-&jw4Q!h{y>P
zMk*tNB6izRyeo^T21Q;NQ@)syK@N*3iZ)QujM0(?7tPcvX)#QPrejb^iy=o;NsFNi
zoL&f*w3zxJB`t<Hq@=|nOiW3Op$%HnVu*u7IfjVzMO68TVLW(>5me-1$oLnOpripv
zOdw6CLyEIR!ugh@l#kLMgC+t{s`V?)MUjG}T69qq7Yn4PmZ0e|BBmHa(PPcXAdrz*
zj3UO!Adr}nf+l1{I3Q4TfRm#%x;dyGD8}%BF{!qI3ocN*AH{M=+$9i^tSE{+Mh1EG
zH~`s<;z?<A6)3Wx7A}g*iy0YY&~+4}XaOZul#V;dN=621CsY(GP!lSO6g;7#h@!X{
zlu%J*85xL5s3>}%2^B>Ql2Flvh)Ad?I^YQvMHJNo#i=DIvY@d9f^{s44r_QqMG=O?
z9n}*miXGrG5R_0+L_s#AcoLLQQB<JFf)Xl<EHt5_ilJx$B~-)+2YhHr3_5WRo??fJ
zg5v;`i?OH|Md`1>G%zwK6sMNp9GL?7j*%gkaA`tP{>Nz@G=G2s*{?Jgr!qzcElB$m
zrwWt+1Qi50RWdTz5mVUX)NjqmAd`_;j8mSGK_)RJ1&_2H;lRbI8yw&2_{>KQ2z*h^
z$Y4*2OThUO)NR1&SV&sRp>}10(>`#1)lMgnx={j19iM6xm7o?hPMeDv88q;jgjx{^
zgJT6T;tL6<1j3O)VxB|T0L^Bg9vnEEA!HaCKpsOAMDaL3*ki~#42jD>2rbr(4E*3M
zgAih5;0LE-WD!HcA%Hx00L}|iXr`b#9W9_i)hEH)2gM3-A_p}ykwqc#6;J(ijR*{I
zQU-Ou(CtO>pA=fuph$um56HTU85uw|6^amw25xYx61I+*8{C+J@dTg)Ti}TZi2sS`
z;gOVHL1Ro{<DrQal<xdWbK$~_3?T0!i=eok2Rb|hHiD5skC-$HHygCf5ISfE)z6cd
zk^+|o8AmYPz*U3Or8u&FREHu5B_o4A;Y5!x8JrwJ5epZB#04?^K(ZqPl5S9JMDdU~
za>%2|@FL3;Gcrh^@KKa<7D1+{Lh>0Iw28=B(4jhOMh33r#60-?7U~!^bkPPQLngu4
zgPKQpSPiPs+75ZG8+bwsw8$Ogp5Xk_qU2P!OwbZ|5%}02#4UQDNiaqRb^NOd;hK0D
z-5A|@7#A>h@Gx#-T+PGm&m6$R9LU(k!yLrq&&Z%mXl^ScF`b8T5#x3q#-+@`JdE2I
zxAQQEFm~}UZUJ$3gCur=ScgGkM;MRtFo!aS@i2!oNANJ711XLK$zBB6f1hzRBZEF6
z3(>~Mc$lM@qj{KPm}7YupMmUn&iI0dIgUA=hdF^ck%#deV+SLHASh7u!3%Re5{ol@
z6AO44|A1`MC1e{)50HmB3FP8r<`j13R37Fu=5!wB4CYK8<}BuH9wr9H4jv{xqD)0;
zn)5K{Fz2!}=kYM-Gj3;OP{SW{Fs(ey1&qo(%!SNFJj}%)>xGzvd6-L>OL>@7KyI)k
z<TIR24Ibt)=5ik93g${4CJm6E%s}Sp5H=4{x$rPoF<0|2*D%-eFxh~N@B$g3NyrFz
z3Bbc#$K=n$T+iIV$RL1-JIH!#9_B_+II)1%m-8?;F*h?ZFjn(0w=lOdGBDQiFt;(c
z^DuWXcd|2g@i2FTl(H3rmuT}a_b{&JVKiYh<zen+?qg(N&&(@HO;0W2VeV(1z|K68
zhj|iX2M_aP<_SEE){Hic46KEvsi3Vm;$Sy`yG4+-0ZyfvIVm8GQ<$eRGBB#~Fi!(n
z#AwUIJRQVfO)M%(tmI*y!90_lc@`ssIzg{P7Qpi`&t{&(!#o${`zg%x7#SGtd6?%j
zFJNb0$iuvdc`-Zl5+3HIjLM7*JYXk5SGt38u`&<yGUnxs3{r3jjJ58J49xDXAw0}0
zKq+S>C}T)^goFer6qh8Hlol%_=clA9Xt=wEXewAK@GwtdUd7130$TFU!@Qb#4I_gT
zrecsRMD<!w$gN{u&%?Zdc_TaXCLZR^%v;!*xAHJ=W8TilAmEgrUs7CBlvv=KT9T2U
zQq0fByhDJ=pPz#vT7Y>c5A!bO-2%*e_*t3v3NY{EVcyStK!EumKP&Sg0p`OX?hzj5
zqs+&6n2$4`;9*_|ay!A20$#{LN=6>$lT5-qOae@TJdB%|Pq8zfh9xefh~;4f1rFm<
z#$`N=TNssj7<Ylf>J0N)9_Dk*=Xn?pFdpP#z5puK&VnQ^GM^$?*1`)c9_CBTmw6bk
zF<$3kzQTN!hxr=wbsomYj8Ax&Z!q8FVZOzDo1OU%5A$8-dpykdnIG^lx-mcGVf@Va
zg@^eONWo*~Cp^qgnV*3qp7SuVGO_V6zW}+w5PzA0C9Cr=zhr*J!z9fl!^8X<WP}PK
zBS5*EhxrZjTOKA|COsY|FOZ9NF~0*j<~<LSBa;&m$sAg@@i2d2mStqnCX_3XS`<9Y
zADKT9Q6Kpil<+WFfa16tRI&Adh+ZaN9>!kAJ|5=JjMLefWqBBTL3Nu}G_jSoH6w!x
zI9q{J3b-!Dy10aqfghpFwWtWRHcK8%TPc87x+vu3mnam&7Nsbp<rgXNFn?kG%Fg_a
zhjA)n9}nXM5HS_x;F%y|7UOIlhF=W7c^LkHh`%7>AH#nhMg|bE3RIqL09D)HLD}yI
z^G_b;U(6dB85npNk1-x+WH2NY!k{7-W!jsE@ixfNyCC8vQAS{l-}5m30O|h4xSEHF
z3q<gM2n7(K1R{(;gb9dn0}&n|!UyEpnIOMUV(epN5Jm(eIJ7}6A4Uctuqe11_bdVJ
zzyXCXFG3K!K@3SNe9;d(^KV85TS8$0O`J%Rvq+2L7#XZd*AHqtL+6IgN!JZtz`)30
zMY>Mdq%vrE5j>#8V54;?0cg$0z@Cv<?3Y?m!pOjq2c~S1#{nS~9!dK(*)xk>a|=o;
z85xA3dqt6wSus%q;z$}Gr8hwbAn7Ou4F^CwLD0lq3|{Djzl=jMfs|c=sB`j2TV&xy
zKWHHW!NLZvnn)kR)q^^h$g|Om3?YQ}kRtSw;!z=JbRuPWMg}5=m5|gE={F=D&?P)b
zBB13{1hz3DsV10m;Ozv^uBY_W5^vD%D$uAptnm+VGiYpw@M02FJ=Tm2dW5nsst!g5
zes~~5raT!Lq6qikQ4JyJWtei%X0n3P5=I6K<SY;IFLL)2DuTQ`3o69OzyluDfw;Ap
zk--XT61bEB?QJF{fq_CD*295VKwPM!>LDi7QFSmffL0;~rKT}5uz|gkhKL84N}}Qc
zrWoRQg7E-T4$8quGg-ypZMG$dDHqU`0@CVK*i;KCK`RAKR#+N?j0^>YQy3O~M0yg7
zPHRR6G4Qx5#@2F1hB!iH7dG=q2?<_!NPyb3;KGDZ9z`D0Bp9g>#ny}roM10PED0p+
zE098hh9ehN9O<bgVUTr{ywK_nJh%v2fr*g|!x$M@(^E@4^B5V}Qb7xji_!LO!(uZE
z+%Zl`t?*AnQvquVcrr3@7MCVLdew{!Vj4Jh*MbIEgOf8-a}yzEGcp(uG4O`0!<vzS
z@W2C#4d6wn;FbNL@nz_~<zhw#_M+5+oW$f*Mg|vX&_LSq8Hq)~sfDGfdC95B1)ejq
zIC8NE4Fkx^RbSZdVboDU$Qc!&X>oAd6l@Vh4AdaYgT)zW?W-?r*D+gSK|v~L>Afzp
z^Psk2IsiHV0cyR0<}JayH8@K0A?g_!K#KxBOHy--A%O`R1SVW{A!)ECqH~6%oRNVG
z)N*vmF9jdV!K|U_!pHzx{tXF#Mg|m5K@x*CK2PyLW6LeG2((5WrFMe&5jnD;BA5oE
zMnQ08aY<?}BLj0jsKyh8l&6{b`T<3mc_qOmMX8CopvC^+I71a?WMD4<Day%XWZ(mx
zYJxaFfRRB8)~<#Q#vtTC)`M%4!qU{@63D;@BLgT`!0KPfi32jAsRXdK;G_ca4kCs@
z(<UzY{-q`0nwmu;3bb$+l)C+(`!N_9*g?S$-u%v@;i>7#$N(xDpgj*Akm-a9IB4Go
z<YI(FAQ8pLz>=9)Qq0JpfXL_I%DosIWcr>+fd?6U!Ya$iz?zepn_0rhAg|#CjVi1P
zt+|;0F#ly_kcNdT)<9uSPX!x=Y*Jcj9{5ZLebBa#oXpfBP&I>`ogf|pE%@MKh+_W7
z$RLX>iyH3WnGm+bWYAd<j0~zU$AFy-x5z&!%QLS8)J-hS1zV?%Y#`J+NJ0bq0xF^z
z2D1M@cs(d0xKZs#(uFDkihV`w&T+~_ateDgWVa0?Low7*sBVV`62vA{Ni>gPQ-Wj}
zG!l@#$jHDBUg8g_M6jQ}0Gho)ZsQ1{_zKi{2DSac0R(m(NCc99kh^N2xido5KeBpj
zMg~Ff5f8|M;7%z?-9th-3dwY6tV4=rcm?j6!pHy$0eDxen2`Z;_5@r6+-=0~D!5u}
z!Ua5BEsBGXx=Nsenov+8DF>An;E+TT1NR5<I~hqe5spSu4R<zZDi&6R7BeykqNE#8
zpM#NsEjzU`7*s@{N(QHvSTiypjTwQ}fC^KXd5jD;(Ch+E&XBxEuvrGv4Kf@WB#<5v
zxYs}^JRnMm3Ji!+cu2TnaVx=r2AE@^rhp0*P>8}hBgKpipa6k!$qNveZg_ye1c(R_
zm{KAF1f~?~6-EZK0tC$zP=J8uoUwE?Ky%FC_{Aaz?ndE{YAm{l@FW&paQ}iDk&q4t
zDB7S-1N9`p{Tf290VyQP0U(8NJJpaA9aI!+6@XG3LUR(NDgoy$m{!nfQQ*y#pp#`7
zI6xg?$ks|-!rf9>!v#`Z7bF&?f{p+JH-A9ep&1#3VTA+OO7I?O(C{F*RzV0cGJv*N
zz#3F23kNt7Q&QkfDS~+m<{nTQ0xjzS>qIe+;Fvtr2*fxvI|~C33nL2)4+|^vDjw!3
zENqMnN(c{R=9T4Vr|SD8<|d^i`lgm7rX_;5g;z2%aOWa;>?|CN3~WC6`Profj0|Ux
zqY!EUq=D*@n3s~1TC4(5iKUs16oDujLn;eUx=_SRLaao#3R5p~`hv=Wa&2&C3Fve^
zen{^L)SM2;&jh6aV`L8!=*_{J+UzWxj0~z60gEkM7#Za7t7A}P=wR5*z{v2Eft7&;
zG=;;!z`z2U#R1cQ8GeK5e+>UYG-x`9fq|iifs>Juk%@tkk(q&kMS+2tfsKKI$!a$P
zW8`)QCLgVB49qhbw6wM{uxw*s_0`$Qz{bchlR;8vCj&bp!vO{kKW*J@44m5-xWbqJ
zf1<UGfqNSR&nyNWZ3vS$Tx%NxA3}(48v{Q`NMI%dKS+t-4hErZ48kBG5ris{Z49Cy
zAu))};#h5#@YB}a!63PfK?-WKG}KI)9SpMD800_($j@YO+0CF3xt&4LS8E%C(l!QG
zKV7I7RCS?VP_|;xk!0D%paLRPcQB~!WKd^j2w(pHhPKW&1`Uuonll+Hk<8ITHYWjQ
zj<yvG$ON5j47y;iXzgaui`>qjZ^bIfijXh>+hr)p3blnn94f%FjX`GzgAqg+WV3Pj
z^8a(SwlSC-g9N9^HU?9WW6X|$<HHPVsF;I8#bO(SB{Wp5AYo{YRkaORwe2<rJE&^=
znG6m{9(6$Ws1nShj?e&e0{O}r;^5`~Z-d<IqP+o}wpbV#81^yfGcYj7GjK2{GVn7f
zF=#O;Gng@`GB_}(F?celGXyheFvKuuG9)u-G2}C7GgLC@Ff=jfGITQNF)U%wXV}1C
z$grKkh~Y4UF~cba6NXC+rVQ^G%otf2%o({EEE$CutQe&jtQpN1Y#3b_Y#DtS>=>gM
z>=`o{92m11oEYmFoEcjgTo^kT+!*^A+!<#ucreaq@MPS@;Kg{1!H4lIgD>L?20z9x
z3;~S483LJ@8G@MP8G@ON8A6yW7{VDrNA0#S@G@vIa5AznvNJF<EMeee<Y44vU}kv7
zAi~JT$i=|IaEZZ^k(-f+fr-(VL7I`5k&l6u(Tu^Lk&Tg`frU|uA&*f2EW3+=lTnaS
zh=G~$1(+qwz|17iAjl}fD9XUX#LQsIC<amo%6p9Bj1mkC3>-{GjFOB}42+D@3=9mQ
zoC&c@hJguct}Fu+RHqyR6Qeu>149CX#9sz+b_PavMulGtaza8vLVp<epq#%9V(g5H
zV2;)=239!t4}%9ggSPMw1`d9>VmJe?>KB9hF9sF{Mn)w@Wd<ftX~BAvfsKKkfr07n
zZU)!L?F??9JO;|Fusp_814}Xzki6k8<gtyxb0)(?ZEYd1Z4BPpLO$CVyjc>qG5A`6
z^N8Oz27jRduo@|CNmeaz-tgPT5V(yYXd6SY&vJ%fP@)4X3jr&0MphPjj6o18AG(bp
zY&io96O<c{kO_y%Y-5N38_9SXq{dw+5@a6ZF%SoAKExU3yBVS)w=+a*Z)1oNirvN#
z1CoyeapJcz#GpAaW*b9-&vM2lkQ%TV5H}_hX9nr6huS9uw=WUw2biamwlO3l0yGP%
z3L+Y~je!+ZGC@m2FHnI5F40r0*mSlrq>3=4&6vZWhu7tjY}*(zwlQRGV@O!ez@qK5
z{Qsuq46P{E_zOXTAfMTcRg{%u5kneY6XD@WW>~baGA{o=Yx&<sZJ}79tZfY0KARYF
zw6`(j?q<k~)ZWgJ@29(sq2K^RAt*fx6>VcE2D!GxjCB)34%A^nrP~-{L|L~nlx<^3
z*v62%k%57MnGsZ=En?7MU|@)2;9y8#P+>@9Fl0z#aAing2xUlR$YDrhs9{KFXk^G>
zn9Y#Mu$3X5VGlz#!+wSwhBFL#40jmv83h;$7!?=_8SNR07$X^q8H*VT85<Z%7$-24
zGA?5%V?57L&cw@5$)wCs#iYYf&E(Bc!<5QU%T&)$&D6<I#njKx#59SanQ1md3)3Qo
zHm21K?Mz!3I+=DebTJ)b=w-UY&<8HG(ipfHTp7w4RTzFVuri)!uwWEnRApdeQe((u
zRAW?UU}aEY$_5u?ETGKGr~xi+7?|!dYBKz0U}WH6y2_}<sLjB{w3@+)QHN2NfthIw
zgC?UMqdo%*(;)_FMgx#3paO^S8iUkd1_5>kS9V5)zYNjr3=-@Neg7GB8Q9nvI@lTd
zATkhP1{SbDA6Ui})Cj?*h!t58<9`MTtVW@$V!*134aF?RUkq$azZnAlGq^Lbf*pZy
z9s@HwLljsH>@W;z7PvInN%-X%FpXzL=x5~l!(hSAsPKouo1G!Wft{i6Cj&Fn9|j4=
z{|vSm-e5#?8G4X0f<hJQa<J0~D8LLTMv!Y^CNTbF;Qz(I#Apbr#u*qHjTjgijbQ~o
z^8{#tAAqC4XMBmHz)v8*z*hq0P^7|C2wdPZ32?#7??R9YSoxg-;((QtUw$jV&43hM
zM$n=GR~-Oz45T<_cnH@HE{+*4Livz_7goQ~sW=WnvmD|hJ6LgSN{ZLOrR(YC|3ru?
zUCY6xE6X;93Xl^}%h*a>Wo#3J0s{lX6b254X$&e1(-{mIW-z!i%wh;-n9Y#GFo&Ur
zVJ<^A!$O8WhD8js8I~}tW?0H_pJ5rpdxqtVatx~&^%zz&x-hI^%w<^1xSC--<3WZE
zjHehjGJa#&!1#w@2jhQ+olG1IyO{VH_Ap5>>}679*w3WFaDYjV;SiH4!%-%GhGR%&
zs2j8l&4rbrj7JzOU}Y%d4R{$E053xW;AN->v<#JCuz;4KiVXVDGSn2g3}vul;KM9K
ze=*2`$|^ftWyMbhbM$;_!e|O<m@({SU}0cpU|{gj*~U->>aBs==2hDms<$!J9AHQR
z*V?rkv;`6cs<$!Ji7?dfWN2h&*u~Jqz_5#<8AP-&FzjS#WnnnL5VegVVFRc%0M~&^
z3>*v$3}+bF8O}1uGF)I#Vz|hl!ElMehT$@U3&Rx#cZLh#@B=kh85lfZ;lcn34Mvcg
z7|j^X8JNJ0S{??Nhy}C(%gn$i%V^2Kz`(?4#lQ$!5)J8@GAw0aW&l;fRx(UW7(`^}
zF$ieO$R=!KsFq3D!O*q=B+9G3jiFs80mPM^$H1d4yN#h5!~qF|Xm~{~2Wqu4+-Bfp
zxWgdEaF;=v;U0r3!+i!#h6fBr3=hE`(1O?o_ka~RIzi60VzgycXJBGrV6bAeV^n8g
z233R%tPIRzd^`-CjP{HU5GOOoGq5qRGB7ZH-ObPuxt*aC)S2!&#=s5g_;zh$=+@fC
z&~uEz0z~a(=w)Pp_pVi8z3V=|-3%O&+Zp;n%@y5k3=_0LS!v?(|2MR@F-(FQHEA2e
zWUXxsQ=r@_+Zd*5ZDW{rjDZhi(X<^5)3-6q(Avf@6RKe5HilVR+ZbjaV*ts|MzvZ3
zX7wC!*KqDOhIz~XKh@gCFdu5({2dGnwlOT!+QzWx7=sOn+R3n(kzpsp5+o0(z)b1$
z)85UX9I30NyNzM#4u)mh8J2HjSh4*7O|5MVD<S$<64b8^(Z6a3!|Lq}Yql}0h3H=g
z@xVG99#{|dz=mxM8zCOp1W~>Thw{x}<y*EfY=tP_c8tMJYa7EhEUr^S@ttF&E=Zm3
zPKNDF4BHuYY-8BD{Qq@uKN!+%oW-EVz`*c=frH@{13$xS262Wr3~~%_8LS!JF}N_i
zXYgY9z!1Rjks+AjGeZ=^7ltH;uMC+C-xvxRzB5!X{9tHi_{q@4@QYy*!*7O}41XB5
zG5lpX$nc-x1S12(WkyDZTZ~K$e;An=g&A2Hr5M>5Z5Y`ZgBdv)qZqju%Ne;Dn;3Z+
zI~n;Hmof4)Ze$c>+`%Zsc#Bb(@iU_sIHiM{i!Ka2jE;=#3@i-R45Ex|48Iwe8MZNS
zFmf<DF)%ayVGv<-28l7+z**%C9E^gDE)2|!%fKvG24==v3}O&<phOSuyD~6vFun!%
zXBok{#D_uT52%0I@rOYG(h=q36Xb(&WCi~)h=PSRkr)t#vT#K(DQyNu&`u&qW@9jB
zU<4N?tXkU{c7fXLOyKg03zShAWf)i(Wx<|>lsK%=Y|Y5%!RQV(;4}j>*nmnc0nWV)
zySFmz(b~<hH*!0}KIUx<`?Yp69EjY`aF7MU28**o*kExs2pcTUj>P6bVhbQE5<pfZ
z08)l<v>pRD0|TQP11F<8gD9g0gCe6QgD#^MgC(OjgDayBLm;CrLmZ<XLpGy6Lj|J&
zlE*6H9&=;#WMBsM(iyigFf;HoFfb&6LPkp)>>C|WnV}0RDI{6IUXo-5l?sw<U_VK+
zgIy}g0d}J#C&+bLl3bu7OOhMn3rQY`2PAp7F&xs8<b(SFlIEQl1Q-|?Eg4uCtr)l%
ztr_^iDaV#Un$eCyk<p$(gVBLOpV5)QjM0g~meHBPnbC#8o6(gan9+?PlF^+Zk<kO}
zs~HfNLw&`-ki_W4Xbz61Bt~zB-=N54NMiH>rA?3z8GRZ3z~y!lqd%zg0~QNlGzX1o
zG9)nuGWvl_{v^gAMssjQmc$s$XwJY1Ru{tXpMeX^3S~40#Q;MRV;G}30}og%oZ&wM
zFPIg<XwJX~uD)WRI=vVpp>FbJjDp%9z!(j;H3n{LEZo*OsNPV<c(`2&P`e@+6B+oR
zwO|rsG6Ms{WCljYbOvU|jA#bFV#ds3#;jt->|(~8V#eHJ#=K(2{9?v}V#dN^#-d`z
z;$p^<V#d;9#xllou=0vx#!4`%0+ZFnj5WoKwZ)8e#f<gEj19$%jbKI-V>4KJOEF_B
z7`1`PmSV=XV#XFQY6X)J1uYCLjO~ma(A=X7&3?=RoNK_fH>j>=1BD8sFE}P48IKtn
zlZ=d=j9pNzI#8`l%;-8pkaRM^b#}wEEOMSdjL1HaJRilt!WfNY03y%#U^U<fx&a9c
zER2a*4d`X;gEq9B7#P86kV|Vj!_fl_9X{Z4AGzpBW8h#+2b&@WQ3>@22LlshKcfT#
zBO|n{#c+y&5wsNp8Y+7jSitI?wYD)F^U-G9%5Yq33&Wmc41(GqdK<%u0}Lm(GVIab
z;Io_IbR@JHFLVYpD7B5@>^6pT+ZaIok?joU_k*H=L4iS$;S_Wv1Ka>&%wu3>%xB<Y
zEMO31EM$;pEM`z-EMZV$ECo9k)PiGWkbyXoL5V?;QG{_K*d%9&7r+I&C<D_U26=Xd
zj{l%oWM}ALU}OjTWD;W^r2Jvf2gxunFtBQEW4HinNkW1Lk~o^cc0m#cG=>-_gYGy3
zCwn#qM#d=&3=E8*jVjQ9*#K<_nrdxhxab24i(?F0%(gNh*1kmy@*rBq$WQke1E20T
zhD(0hx-#1s_O~!GF8_ZI96OK_N)43%7<(948G9Lc82cE+8T%RJ7$-0&F-~MqXPm^K
z%h<<Y%s36~JWyLuj)9+X8sl^ZW(Gb6Rd5#o)B-ex1O)>tg8}0VaBPA`VR;#t|1$8g
zGjuS@{bFEcU}T)h*avm}dZ_D7kX)~caJ`(C%r=J0Fvnj(cKm$|$1h}HWn9F-!?>71
zoN)<*EaOrJMaE?eYK+SnbQl*i7%{GfJ6;ya@hWh~o4_5fkJa(AAjh*X&SIPmb^KHY
zCUBYz(bC?|aCIhwuhtfZYuX1GI<_!eTgG6owT0n2gm--zgQ3<Ih8qyxjb#kVT3Z-y
zLU=cqF^FnyVYmh1-CD-L&a#|=1)TRGF#|~$8^Ml;<e3ntLm3!C82cHgGeFuB><mo5
z8G;-b85kMoFwTW$$Up{WuoKxK6&)x~LrjGf3ZT)>T}URg!%b#qoCm5|z~wq5If6tY
z85p7E@O%bF(3WLrNEkuWG>6tUhTGd1s?bZWgJ3%#=5RpmU}RhfFD{Yw-`U1+7hV4;
ztoj!*E{59g0F4PAkp0r&UL6N|*18Nf0}_HfP&a^fX@Q0SL4mdeUIM#9eIo!e4cueI
z9w)cKCPI8A05K6<2(U6R@qy!EDdRGz1M3)=z&%h&tt|}4k27#-ZDY8zoPix=fv=AC
zHimnkm|+1o(fB|L86PtUGd^LEV0;R;1624hFi1k|U;wfD8QB>a8H5?w!109WK0-ty
zq1{Jz1|~jdc80wSjEu|SZb^o^g&X7ugzb=Y0kQoh11sYz1}?_eNVapsZRci$*v^V!
zJ47Us0W^QQf^j9(^Lfxr4vrl^U2U0d4EI6)MYi!X11sYf25!c$U>iXt3@C1(L$M4z
zP#ZyFp!i~9U}XTMM{@>dcnXDxM1q>FjH?(|LrdFGXv*N$V&2AZ`2fRSNR<S!8j=bA
zGH^2f16vD8959b^GBAMy7c$`lie`uiA``3um&)7>jEw6U7#TB)88aCe88<MlhGsrv
zP&hC!FmQtGesF+cFItjhVh7s_GMRya6B4}8?6ro0k#Qr|<b6ka8^gl`4Cu+5i4SZR
z#0S`t_a?ZrkSn0u=uU$4fgnzTRX~vO2auCCV>RRsx*_slx8O2l3!^eLVc0<<hfPa+
zE5kKVl7Q5O;CNwDXJBR00GkBy6&oak7#JAX7`K8)<{3eU9Y6!y1Da_CL51)!1}+e_
zoPky75y)|n=mwXhOvYd%A&wJ-7zxg`puFP9&d>*s)18nw&0=5#Z9&H7<m>28wq{^u
zvH_cq+sV5bw_|bgb%>L%V|B7S*hu1?oXx<<xQB5s)EcBZ0Mxeuxfv23kYEmAU}Fjd
zTL5u0aviXb(GNP`3bCA>aUWw8ybjpUzzEun4GkGk&luDO0F`ZzLEWk+Ae)dQG=hPX
zDH6#hE=cGzFfed2_A?#=MIhs0tflbdZ46ImVy_vQ62K-x+=sOkKEiku>O?bWh6EKv
zkD0eIJUhVf9F#mDj)WwS3?$=V`G^s;l^0r|ATl)zxIj68Za^WD0jQb!1UzY-h9s>V
z21dp+jK`tzgkti80}L1@SK&69fsyen_H1<nJr<f6Secr^CPCsGTedofHI3eYq|qB#
z(<o%F4H6B+WUE{TM#l5l+9{weH^|M%X>=L`8`E?oHzTJ}Z0(e2cpAOHz{q$JYdhlw
zW;=yx9@q|uClKwFOIY>4#B8T9Eyt?=GUF9!0z_`7ynwV*B+%2(2Cx~BxPc`=SiJ{o
zr(DIFLqNX4l|y!bO@#OgYYw@_cpd6MEbWw+kao%oL`wmwox*g0L73?vg9OtdupQXi
zDV%uPDbbkilpAojAh%OqB5a4G3vfGy=@<hm({TnarV~iE!>Vrv22eW%WILo)f;`9$
z5s3yB2aGovZ$Uke+)jCcy`92zfq|9jA_F(mC9sXy+9@C#Vey5#oe~Xhr`*QUPGJQX
zE12yRrdtf0OpqogByqqz3Tc&?BNfyT5kw}q121@>?UXzQM#j7Fx*SpPux?|()=qf>
z_ADd;p%!U(7#JDvVNKpIA?*~5<PB+3LVSQNdEbXS3%Q;00zH>}MsgBrI|byV2Urbx
ziEhXryoNl)R)c~@0?|q*W>y9^W;U=<5N{!uPS|SD7<lRQh=GyuG2;_x`a`ZkUtz03
znRyvFnUNcMs5R(Qa1HtlYx(dBcMZxc3U)grda;%d&lz7porqk6zJk=CuhBx48F^$G
z7Q>8;FBy+x)SztOq>f(CF{>fD2Q|69f+u8X4Vuru$oLvd4ax>i$QUN;<2IRrk?{?-
z>IgLEiyq<T3~bC6V52Z299wl13y<)(42+=ju%Mxd-0gjXSsgLkgYAGs45B)EkF`2_
zi&-5pLk5k}^?zXe2(=%%I(h@Cj+D`36S-*!i%nSZ2C9xeVNGrz-{7c@m?2F-h^w$B
zx6h1Upbo@R9leEAM{f`n0#bFvoX8-|oWvl(oD2>*Y}FALp6VzTvpV_;cMEcL^cG<|
zQgy_f&cMo?!NA3wiDWyhl!jDCAlo684`y`~3$Bj7F@A@79=SStgS|RpE@WV3E@I$j
zE(Y6(tvUkP2#YV=)ln?CI{Ja7I${UsQOxRyxtf8Kxdv=4Bon|q3aNZBt0P1v_zBO&
z(CVmwfsyeSyvRmWN9^ESjNWZ#ZUx&4NkFLO!%qfA#@|?z_ghGHgps^^z-B>wfGv6d
zfjbMiI(mbiOQwL0fj9}ZIs!TAFIGd|q8l<7uOa`il}@0kDD={4DFYkxGO$q)Zy{Gl
z*h;53c<J<?0krZRHiv;+I=#bEI;{oU0r4}ubYfz}S~|VQQaWwJsvoq3mk~5k$ADZq
zy@Qla;4xpM-Wv0Muo)14Vu?N`7ObTc$Tzr3r{iD~A-=*^I)Tpof@V-GrPF&z>GTd!
zJ|LG)=NW{VFEB_jUj*BMt#snYQ#!?Aluk_SOrR+N(9#y<(&;_IcI49ODg!I?H3lx`
z>qxf4GA*QZ0@;qMbczF&PD~t3oKVjrmrn0+luq{<SeYL%a5Ez>AwiC%enyaugiEJ5
zQ0W9Z$O_tmKn&_};3}P7GH^1#0(%saIA9*dRXV{l0TVZR=~T$T$ixHB!HCj{1AFO&
z+%iQeotU^87@2sPn4tlPoV?#dN+*ou{R_zl$N>i$17&1j1f6vW9XvoTo!+4pEG$f5
zV<2f7rE~&2i68DaWJBJg8^Vp(5CJAZsJ~DK^=^U+CrE|`k2bLgGqAFVfK7tL3+m_t
zc-D+bh)Ed3S6divqB{uNC?jZc7&IOW9lI-HU}O@3mzzP*$q)`LZSbr;$Ze1e0&$x<
z13L@yfFrC>1FhOXFE}|E=P|~^3Qi_b21X_^tOef(%z~2zxfKetgON!btNxFe1t$xn
z=?RHWgnkJoNoWipr>qZ<g3}y5@Enoi09(qE!dh^Ge1oIlWbp)>2yqqGf>WAF2I@d8
z1?NXd!TAAEbRiX-EP)KdEI|wsEWuzquoav_cnZ#V%z{%E?iS>N^CQA`NV))zGO&a*
zu(CujaIrudt`OT{<q4$V1lf+O;EV?soN`R^P|qV5oFA|koGgh9tSm_k+$@l0EVgDH
z$VS2iXFRyzRDd_@!k`20JX)X(fOR^AC7XeZB?lbNkQ@q29b6dGArKKnE>J`-Ig1$>
znUvtAiwP(oK!d$t%dw0zus~+oAxQ|@wS~-wFex%HGAUzC;2$AHCq@ECZkocp01Gfs
z(WwG=7jmih0X?6zfI|Y}B-El4<Rn$BhI~Xfq!+ItYFG;>Ed5TFsSNBakSTab)W9-7
zt^z6nUO=fcFoI4Jh9*Jemfa^T1r%~a6lMn_lP1;z>NA!C3ex(71R6rW787WR8mO^?
zTtIz-6i_zkVYVI|W)Od3i$5K#1r*3PxC*H4U=ty(!dgJ-GU-7B2ulI=8B#!fLKG3m
z1=M~9VU`075-gC3Zb%V<I$bM_r+`YpETHt^Zb2@fJ|k>LE})Jwu(BLu;9`NaT_Luk
z7EmDDaTQPrpnS<>z+?#ZJaPf`2}c2So`IF+0s}V-q$P{3fCAYF%Wt^*oeAIq$_QHl
zg{$Mqa+86J<rX+DQBwz`I704tLPQX`z!<%NDq&z`GJ)q|qyh?i&y(db*jh*uLM@<-
z85o&Nu_o}(kOB%Lfg`t0u_bUbxVw-Gs88tm<P(yUPzxxKlgzOi@)_Nb-*^qNz}~jI
z1!_Mbwe47$8CY3az$QT=23y<C5^LM;7Mg=t`N76O0vhHkw6<L-10$0a)}j+jr<hfo
zft^(XY$(KSuwn^U(U}M@I;|NPK_{p~GY4|f`31A+WJPY2!t7vVvc+0-e#I<0St0FD
zh{qB7?U?ML_9GXaUm!)NBYNN&BKZ?r%5uP3bb@??qv&L{1e*wP71pBDk;w__KrBV)
zS4h$M1yOh*6`ib(48p8V3=*u)U^^g%7i!Tdil^vI#4I|U;ch`LI=>=pM=Cm5-5FR}
zJs7xHA+1-4?Wjd3$aY*sXCk=hbYXIZdLFsx{DQscWDR6sWesBBW`(q6u@#*l8wnSk
ziQuBs4O`KPt5?h#&A`PP0}f|ME`X&DNI{8NbRu$rJ9^Ps#=ywr0WV#Uicaj^V%Ai!
zwU8u)T6DTIFfw^!P2gW4MJGlA$JRWB1sJGp=LL5ca?$w(J)e{yISE$CfY-V(ft=)x
z)sU~~hScIU#D~cjnlunD+0O6{-H=91Ll_vD{NVW%=bB(v<grlbnqUD(#+g{G-Nx`8
z%~}RYOlt)k8K+{^jJ{MAhvrF4z8HP?Z45t%uo;}dK*L#67#IW`87E+M#YG|v5^!Yf
z#p;S<L}*4VKL#7)kHs^j8N<K=?ZN~w1%g(BGX*iGF)%P_F|abGFnckks&O)|W%goR
zr^d;+gV~F*RgIJJB(oReDK$<OCKh%UW(G;7i;(jUm@Y9eGhJr7!gLkPy3TZi=_Z(U
Jo9PbIT>vw$wZ8xW

diff --git a/src/gen-res/BuildInfo.properties b/src/gen-res/BuildInfo.properties
index bd0d29dd..94287eeb 100644
--- a/src/gen-res/BuildInfo.properties
+++ b/src/gen-res/BuildInfo.properties
@@ -1,7 +1,7 @@
-#Sun, 15 Aug 2021 01:26:00 +0900
+#Fri, 10 Sep 2021 20:26:24 +0900
 
 moduleId=openapispecification
 moduleName=null
 moduleVariant=null
-timestamp=2021-08-15T01\:26Z
-build.date=2021-08-15
+timestamp=2021-09-10T20\:26Z
+build.date=2021-09-10
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
deleted file mode 100644
index 748606c5..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNode.java
+++ /dev/null
@@ -1,495 +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 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
- * @astdecl ASTNode;
- * @production ASTNode;
-
- */
-public class ASTNode<T extends ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ASTNode() {
-    super();
-    init$Children();
-  }
-  /**
-   * Initializes the child array to the correct size.
-   * Initializes List and Opt nta children.
-   * @apilevel internal
-   * @ast method
-   * @declaredat ASTNode:11
-   */
-  public void init$Children() {
-  }
-  /**
-   * Cached child index. Child indices are assumed to never change (AST should
-   * not change after construction).
-   * @apilevel internal
-   * @declaredat ASTNode:18
-   */
-  private int childIndex = -1;
-  /** @apilevel low-level 
-   * @declaredat ASTNode:21
-   */
-  public int getIndexOfChild(ASTNode node) {
-    if (node == null) {
-      return -1;
-    }
-    if (node.childIndex >= 0) {
-      return node.childIndex;
-    }
-    for (int i = 0; children != null && i < children.length; i++) {
-      if (getChild(i) == node) {
-        node.childIndex = i;
-        return i;
-      }
-    }
-    return -1;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:38
-   */
-  public static final boolean generatedWithCacheCycle = true;
-  /** @apilevel low-level 
-   * @declaredat ASTNode:41
-   */
-  protected ASTNode parent;
-  /** @apilevel low-level 
-   * @declaredat ASTNode:44
-   */
-  protected ASTNode[] children;
-  /** @apilevel internal 
-   * @declaredat ASTNode:48
-   */
-  private static ASTState state = new ASTState();
-  /** @apilevel internal 
-   * @declaredat ASTNode:51
-   */
-  public final ASTState state() {
-    return state;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:56
-   */
-  public final static ASTState resetState() {
-    return state = new ASTState();
-  }
-  /**
-   * @return an iterator that can be used to iterate over the children of this node.
-   * The iterator does not allow removing children.
-   * @declaredat ASTNode:65
-   */
-  public java.util.Iterator<T> astChildIterator() {
-    return new java.util.Iterator<T>() {
-      private int index = 0;
-
-      @Override
-      public boolean hasNext() {
-        return index < getNumChild();
-      }
-
-      @Override
-      public T next() {
-        return hasNext() ? (T) getChild(index++) : null;
-      }
-
-      @Override
-      public void remove() {
-        throw new UnsupportedOperationException();
-      }
-    };
-  }
-  /** @return an object that can be used to iterate over the children of this node 
-   * @declaredat ASTNode:87
-   */
-  public Iterable<T> astChildren() {
-    return new Iterable<T>() {
-      @Override
-      public java.util.Iterator<T> iterator() {
-        return astChildIterator();
-      }
-    };
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:97
-   */
-  public T getChild(int i) {
-    ASTNode node = this.getChildNoTransform(i);
-    if (node != null && node.mayHaveRewrite()) {
-      ASTNode rewritten = node.rewrittenNode();
-      if (rewritten != node) {
-        rewritten.setParent(this);
-        node = rewritten;
-      }
-    }
-    return (T) node;
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:109
-   */
-  public void addChild(T node) {
-    setChild(node, getNumChildNoTransform());
-  }
-  /**
-   * Gets a child without triggering rewrites.
-   * @apilevel low-level
-   * @declaredat ASTNode:116
-   */
-  public T getChildNoTransform(int i) {
-    if (children == null) {
-      return null;
-    }
-    T child = (T) children[i];
-    return child;
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:124
-   */
-  protected int numChildren;
-  /** @apilevel low-level 
-   * @declaredat ASTNode:127
-   */
-  protected int numChildren() {
-    return numChildren;
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:132
-   */
-  public int getNumChild() {
-    return numChildren();
-  }
-  /**
-   * Behaves like getNumChild, but does not invoke AST transformations (rewrites).
-   * @apilevel low-level
-   * @declaredat ASTNode:140
-   */
-  public final int getNumChildNoTransform() {
-    return numChildren();
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:144
-   */
-  public void setChild(ASTNode node, int i) {
-    if (children == null) {
-      children = new ASTNode[(i + 1 > 4 || !(this instanceof JastAddList)) ? i + 1 : 4];
-    } else if (i >= children.length) {
-      ASTNode c[] = new ASTNode[i << 1];
-      System.arraycopy(children, 0, c, 0, children.length);
-      children = c;
-    }
-    children[i] = node;
-    if (i >= numChildren) {
-      numChildren = i+1;
-    }
-    if (node != null) {
-      node.setParent(this);
-      node.childIndex = i;
-    }
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:162
-   */
-  public void insertChild(ASTNode node, int i) {
-    if (children == null) {
-      children = new ASTNode[(i + 1 > 4 || !(this instanceof JastAddList)) ? i + 1 : 4];
-      children[i] = node;
-    } else {
-      ASTNode c[] = new ASTNode[children.length + 1];
-      System.arraycopy(children, 0, c, 0, i);
-      c[i] = node;
-      if (i < children.length) {
-        System.arraycopy(children, i, c, i+1, children.length-i);
-        for(int j = i+1; j < c.length; ++j) {
-          if (c[j] != null) {
-            c[j].childIndex = j;
-          }
-        }
-      }
-      children = c;
-    }
-    numChildren++;
-    if (node != null) {
-      node.setParent(this);
-      node.childIndex = i;
-    }
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:187
-   */
-  public void removeChild(int i) {
-    if (children != null) {
-      ASTNode child = (ASTNode) children[i];
-      if (child != null) {
-        child.parent = null;
-        child.childIndex = -1;
-      }
-      // Adding a check of this instance to make sure its a List, a move of children doesn't make
-      // any sense for a node unless its a list. Also, there is a problem if a child of a non-List node is removed
-      // and siblings are moved one step to the right, with null at the end.
-      if (this instanceof JastAddList || this instanceof Opt) {
-        System.arraycopy(children, i+1, children, i, children.length-i-1);
-        children[children.length-1] = null;
-        numChildren--;
-        // fix child indices
-        for(int j = i; j < numChildren; ++j) {
-          if (children[j] != null) {
-            child = (ASTNode) children[j];
-            child.childIndex = j;
-          }
-        }
-      } else {
-        children[i] = null;
-      }
-    }
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:214
-   */
-  public ASTNode getParent() {
-    return (ASTNode) parent;
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:218
-   */
-  public void setParent(ASTNode node) {
-    parent = node;
-  }
-  /**
-   * Line and column information.
-   * @declaredat ASTNode:280
-   */
-  protected int startLine;
-  /**
-   * @declaredat ASTNode:281
-   */
-  protected short startColumn;
-  /**
-   * @declaredat ASTNode:282
-   */
-  protected int endLine;
-  /**
-   * @declaredat ASTNode:283
-   */
-  protected short endColumn;
-  /**
-   * @declaredat ASTNode:285
-   */
-  public int getStartLine() {
-    return startLine;
-  }
-  /**
-   * @declaredat ASTNode:288
-   */
-  public short getStartColumn() {
-    return startColumn;
-  }
-  /**
-   * @declaredat ASTNode:291
-   */
-  public int getEndLine() {
-    return endLine;
-  }
-  /**
-   * @declaredat ASTNode:294
-   */
-  public short getEndColumn() {
-    return endColumn;
-  }
-  /**
-   * @declaredat ASTNode:298
-   */
-  public void setStart(int startLine, short startColumn) {
-    this.startLine = startLine;
-    this.startColumn = startColumn;
-  }
-  /**
-   * @declaredat ASTNode:302
-   */
-  public void setEnd(int endLine, short endColumn) {
-    this.endLine = endLine;
-    this.endColumn = endColumn;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:314
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:318
-   */
-  public void flushTreeCache() {
-    flushCache();
-    if (children != null) {
-      for (int i = 0; i < children.length; i++) {
-        if (children[i] != null) {
-          ((ASTNode) children[i]).flushTreeCache();
-        }
-      }
-    }
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:329
-   */
-  public void flushCache() {
-    flushAttrAndCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:333
-   */
-  public void flushAttrAndCollectionCache() {
-    flushAttrCache();
-    flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:338
-   */
-  public void flushAttrCache() {
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:341
-   */
-  public void flushCollectionCache() {
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:344
-   */
-  public ASTNode<T> clone() throws CloneNotSupportedException {
-    ASTNode node = (ASTNode) super.clone();
-    node.flushAttrAndCollectionCache();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:350
-   */
-  public ASTNode<T> copy() {
-    try {
-      ASTNode node = (ASTNode) 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:369
-   */
-  @Deprecated
-  public ASTNode<T> 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:379
-   */
-  public ASTNode<T> treeCopyNoTransform() {
-    ASTNode tree = (ASTNode) 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:399
-   */
-  public ASTNode<T> treeCopy() {
-    ASTNode tree = (ASTNode) 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;
-  }
-  /**
-   * Performs a full traversal of the tree using getChild to trigger rewrites
-   * @apilevel low-level
-   * @declaredat ASTNode:416
-   */
-  public void doFullTraversal() {
-    for (int i = 0; i < getNumChild(); i++) {
-      getChild(i).doFullTraversal();
-    }
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:422
-   */
-  protected boolean is$Equal(ASTNode n1, ASTNode n2) {
-    if (n1 == null && n2 == null) return true;
-    if (n1 == null || n2 == null) return false;
-    return n1.is$Equal(n2);
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:428
-   */
-  protected boolean is$Equal(ASTNode node) {
-    if (getClass() != node.getClass()) {
-      return false;
-    }
-    if (numChildren != node.numChildren) {
-      return false;
-    }
-    for (int i = 0; i < numChildren; i++) {
-      if (children[i] == null && node.children[i] != null) {
-        return false;
-      }
-      if (!((ASTNode)children[i]).is$Equal(((ASTNode)node.children[i]))) {
-        return false;
-      }
-    }
-    return true;
-  }
-  /** @apilevel internal */
-  public ASTNode rewriteTo() {
-    return this;
-  }
-  /** @apilevel internal */
-  public boolean canRewrite() {
-    return false;
-  }
-public ASTNode rewrittenNode() { throw new Error("rewrittenNode is undefined for ASTNode"); }
-}
diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java
deleted file mode 100644
index d90ccf90..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTNodeAnnotation.java
+++ /dev/null
@@ -1,94 +0,0 @@
-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 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 class
- * @declaredat ASTNode:221
- */
-public class ASTNodeAnnotation extends java.lang.Object {
-  
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface Child {
-    String name();
-  }
-
-  
-  
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface ListChild {
-    String name();
-  }
-
-  
-  
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface OptChild {
-    String name();
-  }
-
-  
-  
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface Token {
-    String name();
-  }
-
-  
-  
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface Attribute {
-    Kind kind();
-    boolean isCircular() default false;
-    boolean isNTA() default false;
-  }
-
-  
-  public enum Kind { SYN, INH, COLL }
-
-  
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD)
-  @java.lang.annotation.Documented
-  public @interface Source {
-    String aspect() default "";
-    String declaredAt() default "";
-  }
-
-  
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-  @java.lang.annotation.Target(java.lang.annotation.ElementType.CONSTRUCTOR)
-  @java.lang.annotation.Documented
-  public @interface Constructor{
-    String[] name(); 
-    String[] type(); 
-    String[] kind(); 
-  }
-
-
-}
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
deleted file mode 100644
index c4add0ee..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ASTState.java
+++ /dev/null
@@ -1,255 +0,0 @@
-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 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;
-/** @apilevel internal 
- * @ast class
- * @declaredat ASTState:34
- */
-public class ASTState extends java.lang.Object {
-  
-  /**
-   * This class stores an attribute value tagged with an iteration ID for
-   * a circular evaluation.
-   *
-   * @apilevel internal
-   */
-  protected static class CircularValue {
-    Object value;
-    Cycle cycle;
-  }
-
-  
-
-  /**
-   * Instances of this class are used to uniquely identify circular evaluation iterations.
-   * These iteration ID objects are created for each new fixed-point iteration in
-   * a circular evaluation.
-   *
-   * @apilevel internal
-   */
-  protected static class Cycle {
-  }
-
-  
-
-  /**
-   * The iteration ID used outside of circular evaluation.
-   *
-   * <p>This is the iteration ID when no circular evaluation is ongoing.
-   */
-  public static final Cycle NON_CYCLE = new Cycle();
-
-  
-
-  /**
-   * Tracks the state of the current circular evaluation. This class defines a
-   * stack structure where the next element on the stack is pointed to by the
-   * {@code next} field.
-   *
-   * @apilevel internal
-   */
-  protected static class CircleState {
-    final CircleState next;
-    boolean change = false;
-
-    /** Evaluation depth of lazy attributes. */
-    int lazyAttribute = 0;
-
-    boolean lastCycle = false;
-
-    /** Cycle ID of the latest cycle in this circular evaluation. */
-    Cycle cycle = NON_CYCLE;
-
-
-    protected CircleState(CircleState next) {
-      this.next = next;
-    }
-  }
-
-  
-
-
-  /** Sentinel circle state representing non-circular evaluation. */
-  private static final CircleState CIRCLE_BOTTOM = new CircleState(null);
-
-  
-
-  /**
-   * Current circular state.
-   * @apilevel internal
-   */
-  private CircleState circle = CIRCLE_BOTTOM;
-
-  
-
-  /** @apilevel internal */
-  protected boolean inCircle() {
-    return circle != CIRCLE_BOTTOM;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected boolean calledByLazyAttribute() {
-    return circle.lazyAttribute > 0;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected void enterLazyAttribute() {
-    circle.lazyAttribute += 1;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected void leaveLazyAttribute() {
-    circle.lazyAttribute -= 1;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected void enterCircle() {
-    CircleState next = new CircleState(circle);
-    circle = next;
-  }
-
-  
-
-
-  /**
-   * Maps circular attribute to last evaluated cycle index.
-   * @apilevel internal
-   */
-  private java.util.Map<Object, Integer> visited = new java.util.IdentityHashMap<Object, Integer>();
-
-  
-
-  /**
-   * Check if attribute was already visited during the current cycle.
-   * @apilevel internal
-   * @return {@code true} if the attribute was already visited.
-   */
-  protected boolean checkAndSetVisited(Object attribute, int cycle) {
-    boolean result = visited.containsKey(attribute) && visited.get(attribute) == cycle;
-    visited.put(attribute, cycle);
-    return result;
-  }
-
-  
-
-  /**
-   * Reset visited cycle tracking for this thread.
-   * @apilevel internal
-   */
-  protected void clearVisited() {
-    visited.clear();
-  }
-
-  
-
-  // TODO(joqvist): may not be necessary.
-  /**
-   * Reset visit tracker for a single attribute.
-   * @apilevel internal
-   */
-  protected void resetVisited(Object attribute) {
-    visited.remove(attribute);
-  }
-
-  
-
-  /** @apilevel internal */
-  protected void leaveCircle() {
-    circle = circle.next;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected Cycle nextCycle() {
-    Cycle cycle = new Cycle();
-    circle.cycle = cycle;
-    return cycle;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected Cycle cycle() {
-    return circle.cycle;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected CircleState currentCircle() {
-    return circle;
-  }
-
-  
-
-
-  /** @apilevel internal */
-  protected void setChangeInCycle() {
-    circle.change = true;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected boolean testAndClearChangeInCycle() {
-    boolean change = circle.change;
-    circle.change = false;
-    return change;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected boolean changeInCycle() {
-    return circle.change;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected boolean lastCycle() {
-    return circle.lastCycle;
-  }
-
-  
-
-  /** @apilevel internal */
-  protected void startLastCycle() {
-    circle.lastCycle = true;
-  }
-
-  
-
-  protected ASTState() {
-  }
-
-  public void reset() {
-    // Reset circular evaluation state.
-    circle = CIRCLE_BOTTOM;
-  }
-
-
-}
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
deleted file mode 100644
index 8b9f001d..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AdditionalProperties.java
+++ /dev/null
@@ -1,193 +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 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:92
- * @astdecl AdditionalProperties : ASTNode ::= SchemaObject;
- * @production AdditionalProperties : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class AdditionalProperties extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public AdditionalProperties() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public AdditionalProperties(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 AdditionalProperties clone() throws CloneNotSupportedException {
-    AdditionalProperties node = (AdditionalProperties) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public AdditionalProperties copy() {
-    try {
-      AdditionalProperties node = (AdditionalProperties) 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 AdditionalProperties 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 AdditionalProperties treeCopyNoTransform() {
-    AdditionalProperties tree = (AdditionalProperties) 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 AdditionalProperties treeCopy() {
-    AdditionalProperties tree = (AdditionalProperties) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/AllOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java
deleted file mode 100644
index 33b9b06f..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AllOfSchema.java
+++ /dev/null
@@ -1,193 +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 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:98
- * @astdecl AllOfSchema : ASTNode ::= SchemaObject;
- * @production AllOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class AllOfSchema extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public AllOfSchema() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public AllOfSchema(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 AllOfSchema clone() throws CloneNotSupportedException {
-    AllOfSchema node = (AllOfSchema) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public AllOfSchema copy() {
-    try {
-      AllOfSchema node = (AllOfSchema) 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 AllOfSchema 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 AllOfSchema treeCopyNoTransform() {
-    AllOfSchema tree = (AllOfSchema) 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 AllOfSchema treeCopy() {
-    AllOfSchema tree = (AllOfSchema) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/AnyOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java
deleted file mode 100644
index 539b54e0..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AnyOfSchema.java
+++ /dev/null
@@ -1,193 +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 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:99
- * @astdecl AnyOfSchema : ASTNode ::= SchemaObject;
- * @production AnyOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class AnyOfSchema extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public AnyOfSchema() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public AnyOfSchema(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 AnyOfSchema clone() throws CloneNotSupportedException {
-    AnyOfSchema node = (AnyOfSchema) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public AnyOfSchema copy() {
-    try {
-      AnyOfSchema node = (AnyOfSchema) 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 AnyOfSchema 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 AnyOfSchema treeCopyNoTransform() {
-    AnyOfSchema tree = (AnyOfSchema) 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 AnyOfSchema treeCopy() {
-    AnyOfSchema tree = (AnyOfSchema) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/AttributeValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java
deleted file mode 100644
index 68199b94..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AttributeValue.java
+++ /dev/null
@@ -1,62 +0,0 @@
-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 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;
-/** Wrapper class for storing nullable attribute values. 
- * @ast class
- * @declaredat ASTState:2
- */
-public class AttributeValue<T> extends java.lang.Object {
-  
-  /**
-   * This singleton object is an illegal, unused, attribute value.
-   * It represents that an attribute has not been memoized, or that
-   * a circular attribute approximation has not been initialized.
-   */
-  public static final Object NONE = new Object();
-
-  
-
-  public final T value;
-
-  
-
-  public AttributeValue(T value) {
-    this.value = value;
-  }
-
-  
-
-  public static <V> boolean equals(AttributeValue<V> v1, AttributeValue<V> v2) {
-    if (v1 == null || v2 == null) {
-      return v1 == v2;
-    } else {
-      return equals(v1.value, v2.value);
-    }
-  }
-
-  
-
-  public static <V> boolean equals(V v1, V v2) {
-    if (v1 == null || v2 == null) {
-      return v1 == v2;
-    } else {
-      return v1 == v2 || v1.equals(v2);
-    }
-  }
-
-
-}
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
deleted file mode 100644
index b3a1e113..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/AuthorizationCode.java
+++ /dev/null
@@ -1,193 +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 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:117
- * @astdecl AuthorizationCode : ASTNode ::= OAuthFlowObject;
- * @production AuthorizationCode : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>;
-
- */
-public class AuthorizationCode extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public AuthorizationCode() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OAuthFlowObject"},
-    type = {"OAuthFlowObject"},
-    kind = {"Child"}
-  )
-  public AuthorizationCode(OAuthFlowObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 AuthorizationCode clone() throws CloneNotSupportedException {
-    AuthorizationCode node = (AuthorizationCode) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public AuthorizationCode copy() {
-    try {
-      AuthorizationCode node = (AuthorizationCode) 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 AuthorizationCode 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 AuthorizationCode treeCopyNoTransform() {
-    AuthorizationCode tree = (AuthorizationCode) 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 AuthorizationCode treeCopy() {
-    AuthorizationCode tree = (AuthorizationCode) 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);    
-  }
-  /**
-   * Replaces the OAuthFlowObject child.
-   * @param node The new node to replace the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  public void setOAuthFlowObject(OAuthFlowObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OAuthFlowObject")
-  public OAuthFlowObject getOAuthFlowObject() {
-    return (OAuthFlowObject) getChild(0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel low-level
-   */
-  public OAuthFlowObject getOAuthFlowObjectNoTransform() {
-    return (OAuthFlowObject) getChildNoTransform(0);
-  }
-  /** @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/CallbackObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java
deleted file mode 100644
index bca9fb15..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackObject.java
+++ /dev/null
@@ -1,441 +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 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:73
- * @astdecl CallbackObject : ASTNode ::= Expression* Extension* <Ref:String>;
- * @production CallbackObject : {@link ASTNode} ::= <span class="component">{@link Expression}*</span> <span class="component">{@link Extension}*</span> <span class="component">&lt;Ref:String&gt;</span>;
-
- */
-public class CallbackObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:536
-   */
-  public static Callback composeCallback (CallbackObject callbackObject){
-        Callback callback = new Callback();
-
-        if( callbackObject.getNumExpression() != 0 ){
-        Map<String, Path> paths = new HashMap<>();
-        for( Expression e : callbackObject.getExpressions() )
-        paths.put( e.getName(), PathItem.composePath( e.getPathItem() ));
-        callback.setCallbackPaths(paths);
-        }
-
-        return callback;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:537
-   */
-  public static CallbackObject parseCallback(Callback callback){
-        CallbackObject callbackObject = new CallbackObject();
-
-        if( callback.getCallbackPaths() != null ){
-        for( String key : callback.getCallbackPaths().keySet() )
-        callbackObject.addExpression(new Expression(key, PathItem.parsePath(callback.getCallbackPath(key))));
-        }
-
-        return callbackObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public CallbackObject() {
-    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() {
-    children = new ASTNode[2];
-    setChild(new JastAddList(), 0);
-    setChild(new JastAddList(), 1);
-  }
-  /**
-   * @declaredat ASTNode:15
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Expression", "Extension", "Ref"},
-    type = {"JastAddList<Expression>", "JastAddList<Extension>", "String"},
-    kind = {"List", "List", "Token"}
-  )
-  public CallbackObject(JastAddList<Expression> p0, JastAddList<Extension> p1, String p2) {
-    setChild(p0, 0);
-    setChild(p1, 1);
-    setRef(p2);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:26
-   */
-  protected int numChildren() {
-    return 2;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:32
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:36
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:40
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public CallbackObject clone() throws CloneNotSupportedException {
-    CallbackObject node = (CallbackObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public CallbackObject copy() {
-    try {
-      CallbackObject node = (CallbackObject) 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:68
-   */
-  @Deprecated
-  public CallbackObject 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:78
-   */
-  public CallbackObject treeCopyNoTransform() {
-    CallbackObject tree = (CallbackObject) 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:98
-   */
-  public CallbackObject treeCopy() {
-    CallbackObject tree = (CallbackObject) 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:112
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Ref == ((CallbackObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the Expression list.
-   * @param list The new list node to be used as the Expression list.
-   * @apilevel high-level
-   */
-  public void setExpressionList(JastAddList<Expression> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Expression list.
-   * @return Number of children in the Expression list.
-   * @apilevel high-level
-   */
-  public int getNumExpression() {
-    return getExpressionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Expression list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Expression list.
-   * @apilevel low-level
-   */
-  public int getNumExpressionNoTransform() {
-    return getExpressionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Expression list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Expression list.
-   * @apilevel high-level
-   */
-  public Expression getExpression(int i) {
-    return (Expression) getExpressionList().getChild(i);
-  }
-  /**
-   * Check whether the Expression list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExpression() {
-    return getExpressionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Expression list.
-   * @param node The element to append to the Expression list.
-   * @apilevel high-level
-   */
-  public void addExpression(Expression node) {
-    JastAddList<Expression> list = (parent == null) ? getExpressionListNoTransform() : getExpressionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExpressionNoTransform(Expression node) {
-    JastAddList<Expression> list = getExpressionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Expression 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 setExpression(Expression node, int i) {
-    JastAddList<Expression> list = getExpressionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Expression list.
-   * @return The node representing the Expression list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Expression")
-  public JastAddList<Expression> getExpressionList() {
-    JastAddList<Expression> list = (JastAddList<Expression>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Expression list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Expression list.
-   * @apilevel low-level
-   */
-  public JastAddList<Expression> getExpressionListNoTransform() {
-    return (JastAddList<Expression>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Expression list without
-   * triggering rewrites.
-   */
-  public Expression getExpressionNoTransform(int i) {
-    return (Expression) getExpressionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Expression list.
-   * @return The node representing the Expression list.
-   * @apilevel high-level
-   */
-  public JastAddList<Expression> getExpressions() {
-    return getExpressionList();
-  }
-  /**
-   * Retrieves the Expression list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Expression list.
-   * @apilevel low-level
-   */
-  public JastAddList<Expression> getExpressionsNoTransform() {
-    return getExpressionListNoTransform();
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /**
-   * 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 : "";
-  }
-  /** @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/CallbackTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java
deleted file mode 100644
index bb11ead2..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/CallbackTuple.java
+++ /dev/null
@@ -1,214 +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 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:31
- * @astdecl CallbackTuple : ASTNode ::= <Key:String> CallbackObject;
- * @production CallbackTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link CallbackObject}</span>;
-
- */
-public class CallbackTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public CallbackTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "CallbackObject"},
-    type = {"String", "CallbackObject"},
-    kind = {"Token", "Child"}
-  )
-  public CallbackTuple(String p0, CallbackObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public CallbackTuple clone() throws CloneNotSupportedException {
-    CallbackTuple node = (CallbackTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public CallbackTuple copy() {
-    try {
-      CallbackTuple node = (CallbackTuple) 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:65
-   */
-  @Deprecated
-  public CallbackTuple 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:75
-   */
-  public CallbackTuple treeCopyNoTransform() {
-    CallbackTuple tree = (CallbackTuple) 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:95
-   */
-  public CallbackTuple treeCopy() {
-    CallbackTuple tree = (CallbackTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((CallbackTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the CallbackObject child.
-   * @param node The new node to replace the CallbackObject child.
-   * @apilevel high-level
-   */
-  public void setCallbackObject(CallbackObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the CallbackObject child.
-   * @return The current node used as the CallbackObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="CallbackObject")
-  public CallbackObject getCallbackObject() {
-    return (CallbackObject) getChild(0);
-  }
-  /**
-   * Retrieves the CallbackObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the CallbackObject child.
-   * @apilevel low-level
-   */
-  public CallbackObject getCallbackObjectNoTransform() {
-    return (CallbackObject) getChildNoTransform(0);
-  }
-  /** @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/ClientCredentials.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java
deleted file mode 100644
index d6705708..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ClientCredentials.java
+++ /dev/null
@@ -1,193 +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 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:116
- * @astdecl ClientCredentials : ASTNode ::= OAuthFlowObject;
- * @production ClientCredentials : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>;
-
- */
-public class ClientCredentials extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ClientCredentials() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OAuthFlowObject"},
-    type = {"OAuthFlowObject"},
-    kind = {"Child"}
-  )
-  public ClientCredentials(OAuthFlowObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 ClientCredentials clone() throws CloneNotSupportedException {
-    ClientCredentials node = (ClientCredentials) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public ClientCredentials copy() {
-    try {
-      ClientCredentials node = (ClientCredentials) 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 ClientCredentials 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 ClientCredentials treeCopyNoTransform() {
-    ClientCredentials tree = (ClientCredentials) 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 ClientCredentials treeCopy() {
-    ClientCredentials tree = (ClientCredentials) 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);    
-  }
-  /**
-   * Replaces the OAuthFlowObject child.
-   * @param node The new node to replace the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  public void setOAuthFlowObject(OAuthFlowObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OAuthFlowObject")
-  public OAuthFlowObject getOAuthFlowObject() {
-    return (OAuthFlowObject) getChild(0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel low-level
-   */
-  public OAuthFlowObject getOAuthFlowObjectNoTransform() {
-    return (OAuthFlowObject) getChildNoTransform(0);
-  }
-  /** @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/ComponentsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java
deleted file mode 100644
index 8beb6dfc..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ComponentsObject.java
+++ /dev/null
@@ -1,1571 +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 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:22
- * @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>;
-
- */
-public class ComponentsObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:149
-   */
-  public static Components composeComponents (ComponentsObject componentsObject){
-        Components components = new Components();
-
-        if( componentsObject.getNumSchemaTuple() != 0 ){
-        Map<String, org.openapi4j.parser.model.v3.Schema> schemaMap = new HashMap<>();
-        for( SchemaTuple t : componentsObject.getSchemaTuples() ){
-        if(!t.getSchemaObject().getRef().isEmpty()){
-        org.openapi4j.parser.model.v3.Schema schema=new org.openapi4j.parser.model.v3.Schema();
-        schema.setRef(t.getSchemaObject().getRef());
-        schemaMap.put(t.getKey(),schema);
-        }
-        else
-        schemaMap.put(t.getKey(),SchemaObject.composeSchema(t.getSchemaObject()));
-        }
-        components.setSchemas(schemaMap);
-        }
-        if( componentsObject.getNumResponseTuple() != 0 ){
-        Map<String, Response> responseMap = new HashMap<>();
-        for( ResponseTuple t : componentsObject.getResponseTuples() ){
-        if( !t.getResponseObject().getRef().isEmpty() ){
-        Response response = new Response();
-        response.setRef(t.getResponseObject().getRef());
-        responseMap.put(t.getKey(), response);
-        }
-        else
-        responseMap.put(t.getKey(), ResponseObject.composeResponse(t.getResponseObject()));
-        }
-        components.setResponses(responseMap);
-        }
-        if( componentsObject.getNumParameterTuple() != 0 ){
-        Map<String, Parameter> parameterMap = new HashMap<>();
-        for( ParameterTuple t : componentsObject.getParameterTuples() ){
-        if( !t.getParameterObject().getRef().isEmpty() ){
-        Parameter parameter = new Parameter();
-        parameter.setRef(t.getParameterObject().getRef());
-        parameterMap.put(t.getKey(), parameter);
-        }
-        else
-        parameterMap.put(t.getKey(), ParameterObject.composeParameter(t.getParameterObject()));
-        }
-        components.setParameters(parameterMap);
-        }
-        if( componentsObject.getNumExampleTuple() != 0 ){
-        Map<String, Example> exampleMap = new HashMap<>();
-        for( ExampleTuple t : componentsObject.getExampleTuples() )
-        exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject()));
-        components.setExamples(exampleMap);
-        }
-        if( componentsObject.getNumRequestBodyTuple() != 0 ){
-        Map<String, RequestBody> requestBodyMap = new HashMap<>();
-        for( RequestBodyTuple t : componentsObject.getRequestBodyTuples() ){
-        if( !t.getRequestBodyObject().getRef().isEmpty() ){
-        RequestBody requestBody = new RequestBody();
-        requestBody.setRef(t.getRequestBodyObject().getRef());
-        requestBodyMap.put(t.getKey(), requestBody);
-        }
-        else
-        requestBodyMap.put(t.getKey(), RequestBodyObject.composeRequestBody(t.getRequestBodyObject()));
-        }
-        components.setRequestBodies(requestBodyMap);
-        }
-        if( componentsObject.getNumHeaderTuple() != 0 ){
-        Map<String, Header> headerMap = new HashMap<>();
-        for( HeaderTuple t : componentsObject.getHeaderTuples() ){
-        if( !t.getHeaderObject().getRef().isEmpty() ){
-        Header header = new Header();
-        header.setRef(t.getHeaderObject().getRef());
-        headerMap.put(t.getKey(), header);
-        }
-        else
-        headerMap.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject()));
-        }
-        components.setHeaders(headerMap);
-        }
-        if( componentsObject.getNumSecuritySchemeTuple() != 0 ){
-        Map<String, SecurityScheme> securitySchemeMap = new HashMap<>();
-        for( SecuritySchemeTuple t : componentsObject.getSecuritySchemeTuples() ){
-        if( !t.getSecuritySchemeObject().getRef().isEmpty() ){
-        SecurityScheme securityScheme = new SecurityScheme();
-        securityScheme.setRef(t.getSecuritySchemeObject().getRef());
-        securitySchemeMap.put(t.getKey(), securityScheme);
-        }
-        else
-        securitySchemeMap.put(t.getKey(), SecuritySchemeObject.composeSecurityScheme(t.getSecuritySchemeObject()));
-        }
-        components.setSecuritySchemes(securitySchemeMap);
-        }
-        if( componentsObject.getNumLinkTuple() != 0 ){
-        Map<String, Link> linkMap = new HashMap<>();
-        for( LinkTuple t : componentsObject.getLinkTuples() ){
-        if( !t.getLinkObject().getRef().isEmpty() ){
-        Link link = new Link();
-        link.setRef(t.getLinkObject().getRef());
-        linkMap.put(t.getKey(), link);
-        }
-        else
-        linkMap.put(t.getKey(), LinkObject.composeLink(t.getLinkObject()));
-        }
-        components.setLinks(linkMap);
-        }
-        if( componentsObject.getNumCallbackTuple() != 0 ){
-        Map<String, Callback> callbackMap = new HashMap<>();
-        for( CallbackTuple t : componentsObject.getCallbackTuples() ){
-        if( !t.getCallbackObject().getRef().isEmpty() ){
-        Callback callback = new Callback();
-        callback.setRef(t.getCallbackObject().getRef());
-        callbackMap.put(t.getKey(), callback);
-        }
-        else
-        callbackMap.put(t.getKey(), CallbackObject.composeCallback(t.getCallbackObject()));
-        }
-        components.setCallbacks(callbackMap);
-        }
-        if( componentsObject.getNumExtension() != 0 ){
-        Map<String, Object> extensions = new HashMap<>();
-        for( Extension e : componentsObject.getExtensions() )
-        extensions.put(e.getKey(), e.getValue());
-        components.setExtensions(extensions);
-        }
-
-        return components;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:121
-   */
-  public static ComponentsObject parseComponents(Components components){
-        ComponentsObject componentsObject = new ComponentsObject();
-
-        if( components.getSchemas() != null ){
-        for( String key : components.getSchemas().keySet() ){
-        SchemaTuple schemaTuple = new SchemaTuple();
-        if( components.getSchema(key).isRef() ){
-        SchemaObject schemaObject = new SchemaObject();
-        schemaObject.setRef(components.getSchema(key).getRef());
-        schemaTuple.setKey(key);
-        schemaTuple.setSchemaObject(schemaObject);
-        componentsObject.addSchemaTuple(schemaTuple);
-        }
-        else{
-        schemaTuple.setKey(key);
-        schemaTuple.setSchemaObject(SchemaObject.parseSchema(components.getSchema(key)));
-        componentsObject.addSchemaTuple(schemaTuple);
-        }
-        }
-        }
-        if( components.getResponses() != null ){
-        for( String key : components.getResponses().keySet() ){
-        ResponseTuple responseTuple = new ResponseTuple();
-        if( components.getResponse(key).isRef() ){
-        ResponseObject responseObject = new ResponseObject();
-        responseObject.setRef(components.getResponse(key).getRef());
-        responseTuple.setKey(key);
-        responseTuple.setResponseObject(responseObject);
-        componentsObject.addResponseTuple(responseTuple);
-        }
-        else{
-        responseTuple.setKey(key);
-        responseTuple.setResponseObject(ResponseObject.parseResponse(components.getResponse(key)));
-        componentsObject.addResponseTuple(responseTuple);
-        }
-        }
-        }
-        if( components.getParameters() != null ){
-        for( String key : components.getParameters().keySet() ){
-        ParameterTuple parameterTuple = new ParameterTuple();
-        if( components.getParameter(key).isRef() ){
-        ParameterObject parameterObject = new ParameterObject();
-        parameterObject.setRef(components.getParameter(key).getRef());
-        parameterTuple.setKey(key);
-        parameterTuple.setParameterObject(parameterObject);
-        componentsObject.addParameterTuple(parameterTuple);
-        }
-        else{
-        parameterTuple.setKey(key);
-        parameterTuple.setParameterObject(ParameterObject.parseParameter(components.getParameter(key)));
-        componentsObject.addParameterTuple(parameterTuple);
-        }
-        }
-        }
-        if( components.getExamples() != null ){
-        for( String key : components.getExamples().keySet() ){
-        ExampleTuple exampleTuple = new ExampleTuple();
-        ExampleObject exampleObject = new ExampleObject();
-        exampleTuple.setKey(key);
-        exampleTuple.setExampleObject(ExampleObject.parseExample(components.getExample(key)));
-        componentsObject.addExampleTuple(exampleTuple);
-        }
-        }
-        if( components.getRequestBodies() != null ){
-        for( String key : components.getRequestBodies().keySet() ){
-        RequestBodyTuple requestBodyTuple = new RequestBodyTuple();
-        if( components.getRequestBody(key).isRef() ){
-        RequestBodyObject requestBodyObject = new RequestBodyObject();
-        requestBodyObject.setRef(components.getRequestBody(key).getRef());
-        requestBodyTuple.setKey(key);
-        requestBodyTuple.setRequestBodyObject(requestBodyObject);
-        componentsObject.addRequestBodyTuple(requestBodyTuple);
-        }
-        else{
-        requestBodyTuple.setKey(key);
-        requestBodyTuple.setRequestBodyObject(RequestBodyObject.parseRequestBody(components.getRequestBody(key)));
-        componentsObject.addRequestBodyTuple(requestBodyTuple);
-        }
-        }
-        }
-        if( components.getHeaders() != null ){
-        for( String key : components.getHeaders().keySet() ){
-        HeaderTuple headerTuple = new HeaderTuple();
-        if( components.getHeader(key).isRef() ){
-        HeaderObject headerObject = new HeaderObject();
-        headerObject.setRef(components.getHeader(key).getRef());
-        headerTuple.setKey(key);
-        headerTuple.setHeaderObject(headerObject);
-        componentsObject.addHeaderTuple(headerTuple);
-        }
-        else{
-        headerTuple.setKey(key);
-        headerTuple.setHeaderObject(HeaderObject.parseHeader(components.getHeader(key)));
-        componentsObject.addHeaderTuple(headerTuple);
-        }
-        }
-        }
-        if( components.getSecuritySchemes() != null ){
-        for( String key : components.getSecuritySchemes().keySet() ){
-        SecuritySchemeTuple securitySchemeTuple = new SecuritySchemeTuple();
-        if( components.getSecurityScheme(key).isRef() ){
-        SecuritySchemeObject securitySchemeObject = new SecuritySchemeObject();
-        securitySchemeObject.setRef(components.getSecurityScheme(key).getRef());
-        securitySchemeTuple.setKey(key);
-        securitySchemeTuple.setSecuritySchemeObject(securitySchemeObject);
-        componentsObject.addSecuritySchemeTuple(securitySchemeTuple);
-        }
-        else{
-        securitySchemeTuple.setKey(key);
-        securitySchemeTuple.setSecuritySchemeObject(SecuritySchemeObject.parseSecurityScheme(components.getSecurityScheme(key)));
-        componentsObject.addSecuritySchemeTuple(securitySchemeTuple);
-        }
-        }
-        }
-        if( components.getLinks() != null ){
-        for( String key : components.getLinks().keySet() ){
-        LinkTuple linkTuple = new LinkTuple();
-        if( components.getLink(key).isRef() ){
-        LinkObject linkObject = new LinkObject();
-        linkObject.setRef(components.getLink(key).getRef());
-        linkTuple.setKey(key);
-        linkTuple.setLinkObject(linkObject);
-        componentsObject.addLinkTuple(linkTuple);
-        }
-        else{
-        linkTuple.setKey(key);
-        linkTuple.setLinkObject(LinkObject.parseLink(components.getLink(key)));
-        componentsObject.addLinkTuple(linkTuple);
-        }
-        }
-        }
-        if( components.getCallbacks() != null ){
-        for( String key : components.getCallbacks().keySet() ){
-        CallbackTuple callbackTuple = new CallbackTuple();
-        if( components.getCallback(key).isRef() ){
-        CallbackObject callbackObject = new CallbackObject();
-        callbackObject.setRef(components.getCallback(key).getRef());
-        callbackTuple.setKey(key);
-        callbackTuple.setCallbackObject(callbackObject);
-        componentsObject.addCallbackTuple(callbackTuple);
-        }
-        else{
-        callbackTuple.setKey(key);
-        callbackTuple.setCallbackObject(CallbackObject.parseCallback(components.getCallback(key)));
-        componentsObject.addCallbackTuple(callbackTuple);
-        }
-        }
-        }
-        if( components.getExtensions() != null ){
-        for( String key : components.getExtensions().keySet() )
-        componentsObject.addExtension(new Extension(key, components.getExtensions().get(key)));
-        }
-
-        return componentsObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ComponentsObject() {
-    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() {
-    children = new ASTNode[10];
-    setChild(new JastAddList(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-    setChild(new JastAddList(), 3);
-    setChild(new JastAddList(), 4);
-    setChild(new JastAddList(), 5);
-    setChild(new JastAddList(), 6);
-    setChild(new JastAddList(), 7);
-    setChild(new JastAddList(), 8);
-    setChild(new JastAddList(), 9);
-  }
-  /**
-   * @declaredat ASTNode:23
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaTuple", "ResponseTuple", "ParameterTuple", "ExampleTuple", "RequestBodyTuple", "HeaderTuple", "SecuritySchemeTuple", "LinkTuple", "CallbackTuple", "Extension"},
-    type = {"JastAddList<SchemaTuple>", "JastAddList<ResponseTuple>", "JastAddList<ParameterTuple>", "JastAddList<ExampleTuple>", "JastAddList<RequestBodyTuple>", "JastAddList<HeaderTuple>", "JastAddList<SecuritySchemeTuple>", "JastAddList<LinkTuple>", "JastAddList<CallbackTuple>", "JastAddList<Extension>"},
-    kind = {"List", "List", "List", "List", "List", "List", "List", "List", "List", "List"}
-  )
-  public ComponentsObject(JastAddList<SchemaTuple> p0, JastAddList<ResponseTuple> p1, JastAddList<ParameterTuple> p2, JastAddList<ExampleTuple> p3, JastAddList<RequestBodyTuple> p4, JastAddList<HeaderTuple> p5, JastAddList<SecuritySchemeTuple> p6, JastAddList<LinkTuple> p7, JastAddList<CallbackTuple> p8, JastAddList<Extension> p9) {
-    setChild(p0, 0);
-    setChild(p1, 1);
-    setChild(p2, 2);
-    setChild(p3, 3);
-    setChild(p4, 4);
-    setChild(p5, 5);
-    setChild(p6, 6);
-    setChild(p7, 7);
-    setChild(p8, 8);
-    setChild(p9, 9);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:41
-   */
-  protected int numChildren() {
-    return 10;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:47
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:51
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:55
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:59
-   */
-  public ComponentsObject clone() throws CloneNotSupportedException {
-    ComponentsObject node = (ComponentsObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:64
-   */
-  public ComponentsObject copy() {
-    try {
-      ComponentsObject node = (ComponentsObject) 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:83
-   */
-  @Deprecated
-  public ComponentsObject 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:93
-   */
-  public ComponentsObject treeCopyNoTransform() {
-    ComponentsObject tree = (ComponentsObject) 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:113
-   */
-  public ComponentsObject treeCopy() {
-    ComponentsObject tree = (ComponentsObject) 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:127
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node);    
-  }
-  /**
-   * Replaces the SchemaTuple list.
-   * @param list The new list node to be used as the SchemaTuple list.
-   * @apilevel high-level
-   */
-  public void setSchemaTupleList(JastAddList<SchemaTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the SchemaTuple list.
-   * @return Number of children in the SchemaTuple list.
-   * @apilevel high-level
-   */
-  public int getNumSchemaTuple() {
-    return getSchemaTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SchemaTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SchemaTuple list.
-   * @apilevel low-level
-   */
-  public int getNumSchemaTupleNoTransform() {
-    return getSchemaTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SchemaTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SchemaTuple list.
-   * @apilevel high-level
-   */
-  public SchemaTuple getSchemaTuple(int i) {
-    return (SchemaTuple) getSchemaTupleList().getChild(i);
-  }
-  /**
-   * Check whether the SchemaTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSchemaTuple() {
-    return getSchemaTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SchemaTuple list.
-   * @param node The element to append to the SchemaTuple list.
-   * @apilevel high-level
-   */
-  public void addSchemaTuple(SchemaTuple node) {
-    JastAddList<SchemaTuple> list = (parent == null) ? getSchemaTupleListNoTransform() : getSchemaTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSchemaTupleNoTransform(SchemaTuple node) {
-    JastAddList<SchemaTuple> list = getSchemaTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SchemaTuple 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 setSchemaTuple(SchemaTuple node, int i) {
-    JastAddList<SchemaTuple> list = getSchemaTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SchemaTuple list.
-   * @return The node representing the SchemaTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SchemaTuple")
-  public JastAddList<SchemaTuple> getSchemaTupleList() {
-    JastAddList<SchemaTuple> list = (JastAddList<SchemaTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the SchemaTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SchemaTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SchemaTuple> getSchemaTupleListNoTransform() {
-    return (JastAddList<SchemaTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the SchemaTuple list without
-   * triggering rewrites.
-   */
-  public SchemaTuple getSchemaTupleNoTransform(int i) {
-    return (SchemaTuple) getSchemaTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SchemaTuple list.
-   * @return The node representing the SchemaTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<SchemaTuple> getSchemaTuples() {
-    return getSchemaTupleList();
-  }
-  /**
-   * Retrieves the SchemaTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SchemaTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SchemaTuple> getSchemaTuplesNoTransform() {
-    return getSchemaTupleListNoTransform();
-  }
-  /**
-   * Replaces the ResponseTuple list.
-   * @param list The new list node to be used as the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public void setResponseTupleList(JastAddList<ResponseTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ResponseTuple list.
-   * @return Number of children in the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public int getNumResponseTuple() {
-    return getResponseTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ResponseTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public int getNumResponseTupleNoTransform() {
-    return getResponseTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ResponseTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public ResponseTuple getResponseTuple(int i) {
-    return (ResponseTuple) getResponseTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ResponseTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasResponseTuple() {
-    return getResponseTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ResponseTuple list.
-   * @param node The element to append to the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public void addResponseTuple(ResponseTuple node) {
-    JastAddList<ResponseTuple> list = (parent == null) ? getResponseTupleListNoTransform() : getResponseTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addResponseTupleNoTransform(ResponseTuple node) {
-    JastAddList<ResponseTuple> list = getResponseTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ResponseTuple 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 setResponseTuple(ResponseTuple node, int i) {
-    JastAddList<ResponseTuple> list = getResponseTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * @return The node representing the ResponseTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ResponseTuple")
-  public JastAddList<ResponseTuple> getResponseTupleList() {
-    JastAddList<ResponseTuple> list = (JastAddList<ResponseTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ResponseTuple> getResponseTupleListNoTransform() {
-    return (JastAddList<ResponseTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ResponseTuple list without
-   * triggering rewrites.
-   */
-  public ResponseTuple getResponseTupleNoTransform(int i) {
-    return (ResponseTuple) getResponseTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * @return The node representing the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ResponseTuple> getResponseTuples() {
-    return getResponseTupleList();
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ResponseTuple> getResponseTuplesNoTransform() {
-    return getResponseTupleListNoTransform();
-  }
-  /**
-   * Replaces the ParameterTuple list.
-   * @param list The new list node to be used as the ParameterTuple list.
-   * @apilevel high-level
-   */
-  public void setParameterTupleList(JastAddList<ParameterTuple> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the ParameterTuple list.
-   * @return Number of children in the ParameterTuple list.
-   * @apilevel high-level
-   */
-  public int getNumParameterTuple() {
-    return getParameterTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ParameterTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ParameterTuple list.
-   * @apilevel low-level
-   */
-  public int getNumParameterTupleNoTransform() {
-    return getParameterTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ParameterTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ParameterTuple list.
-   * @apilevel high-level
-   */
-  public ParameterTuple getParameterTuple(int i) {
-    return (ParameterTuple) getParameterTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ParameterTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasParameterTuple() {
-    return getParameterTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ParameterTuple list.
-   * @param node The element to append to the ParameterTuple list.
-   * @apilevel high-level
-   */
-  public void addParameterTuple(ParameterTuple node) {
-    JastAddList<ParameterTuple> list = (parent == null) ? getParameterTupleListNoTransform() : getParameterTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addParameterTupleNoTransform(ParameterTuple node) {
-    JastAddList<ParameterTuple> list = getParameterTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ParameterTuple 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 setParameterTuple(ParameterTuple node, int i) {
-    JastAddList<ParameterTuple> list = getParameterTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ParameterTuple list.
-   * @return The node representing the ParameterTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ParameterTuple")
-  public JastAddList<ParameterTuple> getParameterTupleList() {
-    JastAddList<ParameterTuple> list = (JastAddList<ParameterTuple>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the ParameterTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterTuple> getParameterTupleListNoTransform() {
-    return (JastAddList<ParameterTuple>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the ParameterTuple list without
-   * triggering rewrites.
-   */
-  public ParameterTuple getParameterTupleNoTransform(int i) {
-    return (ParameterTuple) getParameterTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ParameterTuple list.
-   * @return The node representing the ParameterTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ParameterTuple> getParameterTuples() {
-    return getParameterTupleList();
-  }
-  /**
-   * Retrieves the ParameterTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterTuple> getParameterTuplesNoTransform() {
-    return getParameterTupleListNoTransform();
-  }
-  /**
-   * Replaces the ExampleTuple list.
-   * @param list The new list node to be used as the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void setExampleTupleList(JastAddList<ExampleTuple> list) {
-    setChild(list, 3);
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public int getNumExampleTuple() {
-    return getExampleTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public int getNumExampleTupleNoTransform() {
-    return getExampleTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ExampleTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public ExampleTuple getExampleTuple(int i) {
-    return (ExampleTuple) getExampleTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ExampleTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExampleTuple() {
-    return getExampleTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ExampleTuple list.
-   * @param node The element to append to the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void addExampleTuple(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = (parent == null) ? getExampleTupleListNoTransform() : getExampleTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExampleTupleNoTransform(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = getExampleTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ExampleTuple 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 setExampleTuple(ExampleTuple node, int i) {
-    JastAddList<ExampleTuple> list = getExampleTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ExampleTuple")
-  public JastAddList<ExampleTuple> getExampleTupleList() {
-    JastAddList<ExampleTuple> list = (JastAddList<ExampleTuple>) getChild(3);
-    return list;
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTupleListNoTransform() {
-    return (JastAddList<ExampleTuple>) getChildNoTransform(3);
-  }
-  /**
-   * @return the element at index {@code i} in the ExampleTuple list without
-   * triggering rewrites.
-   */
-  public ExampleTuple getExampleTupleNoTransform(int i) {
-    return (ExampleTuple) getExampleTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuples() {
-    return getExampleTupleList();
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuplesNoTransform() {
-    return getExampleTupleListNoTransform();
-  }
-  /**
-   * Replaces the RequestBodyTuple list.
-   * @param list The new list node to be used as the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  public void setRequestBodyTupleList(JastAddList<RequestBodyTuple> list) {
-    setChild(list, 4);
-  }
-  /**
-   * Retrieves the number of children in the RequestBodyTuple list.
-   * @return Number of children in the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  public int getNumRequestBodyTuple() {
-    return getRequestBodyTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the RequestBodyTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the RequestBodyTuple list.
-   * @apilevel low-level
-   */
-  public int getNumRequestBodyTupleNoTransform() {
-    return getRequestBodyTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the RequestBodyTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  public RequestBodyTuple getRequestBodyTuple(int i) {
-    return (RequestBodyTuple) getRequestBodyTupleList().getChild(i);
-  }
-  /**
-   * Check whether the RequestBodyTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasRequestBodyTuple() {
-    return getRequestBodyTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the RequestBodyTuple list.
-   * @param node The element to append to the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  public void addRequestBodyTuple(RequestBodyTuple node) {
-    JastAddList<RequestBodyTuple> list = (parent == null) ? getRequestBodyTupleListNoTransform() : getRequestBodyTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addRequestBodyTupleNoTransform(RequestBodyTuple node) {
-    JastAddList<RequestBodyTuple> list = getRequestBodyTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the RequestBodyTuple 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 setRequestBodyTuple(RequestBodyTuple node, int i) {
-    JastAddList<RequestBodyTuple> list = getRequestBodyTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the RequestBodyTuple list.
-   * @return The node representing the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="RequestBodyTuple")
-  public JastAddList<RequestBodyTuple> getRequestBodyTupleList() {
-    JastAddList<RequestBodyTuple> list = (JastAddList<RequestBodyTuple>) getChild(4);
-    return list;
-  }
-  /**
-   * Retrieves the RequestBodyTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the RequestBodyTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<RequestBodyTuple> getRequestBodyTupleListNoTransform() {
-    return (JastAddList<RequestBodyTuple>) getChildNoTransform(4);
-  }
-  /**
-   * @return the element at index {@code i} in the RequestBodyTuple list without
-   * triggering rewrites.
-   */
-  public RequestBodyTuple getRequestBodyTupleNoTransform(int i) {
-    return (RequestBodyTuple) getRequestBodyTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the RequestBodyTuple list.
-   * @return The node representing the RequestBodyTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<RequestBodyTuple> getRequestBodyTuples() {
-    return getRequestBodyTupleList();
-  }
-  /**
-   * Retrieves the RequestBodyTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the RequestBodyTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<RequestBodyTuple> getRequestBodyTuplesNoTransform() {
-    return getRequestBodyTupleListNoTransform();
-  }
-  /**
-   * Replaces the HeaderTuple list.
-   * @param list The new list node to be used as the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void setHeaderTupleList(JastAddList<HeaderTuple> list) {
-    setChild(list, 5);
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public int getNumHeaderTuple() {
-    return getHeaderTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public int getNumHeaderTupleNoTransform() {
-    return getHeaderTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the HeaderTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public HeaderTuple getHeaderTuple(int i) {
-    return (HeaderTuple) getHeaderTupleList().getChild(i);
-  }
-  /**
-   * Check whether the HeaderTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasHeaderTuple() {
-    return getHeaderTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the HeaderTuple list.
-   * @param node The element to append to the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void addHeaderTuple(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = (parent == null) ? getHeaderTupleListNoTransform() : getHeaderTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addHeaderTupleNoTransform(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = getHeaderTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the HeaderTuple 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 setHeaderTuple(HeaderTuple node, int i) {
-    JastAddList<HeaderTuple> list = getHeaderTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="HeaderTuple")
-  public JastAddList<HeaderTuple> getHeaderTupleList() {
-    JastAddList<HeaderTuple> list = (JastAddList<HeaderTuple>) getChild(5);
-    return list;
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTupleListNoTransform() {
-    return (JastAddList<HeaderTuple>) getChildNoTransform(5);
-  }
-  /**
-   * @return the element at index {@code i} in the HeaderTuple list without
-   * triggering rewrites.
-   */
-  public HeaderTuple getHeaderTupleNoTransform(int i) {
-    return (HeaderTuple) getHeaderTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuples() {
-    return getHeaderTupleList();
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuplesNoTransform() {
-    return getHeaderTupleListNoTransform();
-  }
-  /**
-   * Replaces the SecuritySchemeTuple list.
-   * @param list The new list node to be used as the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  public void setSecuritySchemeTupleList(JastAddList<SecuritySchemeTuple> list) {
-    setChild(list, 6);
-  }
-  /**
-   * Retrieves the number of children in the SecuritySchemeTuple list.
-   * @return Number of children in the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  public int getNumSecuritySchemeTuple() {
-    return getSecuritySchemeTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SecuritySchemeTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SecuritySchemeTuple list.
-   * @apilevel low-level
-   */
-  public int getNumSecuritySchemeTupleNoTransform() {
-    return getSecuritySchemeTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SecuritySchemeTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  public SecuritySchemeTuple getSecuritySchemeTuple(int i) {
-    return (SecuritySchemeTuple) getSecuritySchemeTupleList().getChild(i);
-  }
-  /**
-   * Check whether the SecuritySchemeTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSecuritySchemeTuple() {
-    return getSecuritySchemeTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SecuritySchemeTuple list.
-   * @param node The element to append to the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  public void addSecuritySchemeTuple(SecuritySchemeTuple node) {
-    JastAddList<SecuritySchemeTuple> list = (parent == null) ? getSecuritySchemeTupleListNoTransform() : getSecuritySchemeTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSecuritySchemeTupleNoTransform(SecuritySchemeTuple node) {
-    JastAddList<SecuritySchemeTuple> list = getSecuritySchemeTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SecuritySchemeTuple 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 setSecuritySchemeTuple(SecuritySchemeTuple node, int i) {
-    JastAddList<SecuritySchemeTuple> list = getSecuritySchemeTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SecuritySchemeTuple list.
-   * @return The node representing the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SecuritySchemeTuple")
-  public JastAddList<SecuritySchemeTuple> getSecuritySchemeTupleList() {
-    JastAddList<SecuritySchemeTuple> list = (JastAddList<SecuritySchemeTuple>) getChild(6);
-    return list;
-  }
-  /**
-   * Retrieves the SecuritySchemeTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecuritySchemeTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecuritySchemeTuple> getSecuritySchemeTupleListNoTransform() {
-    return (JastAddList<SecuritySchemeTuple>) getChildNoTransform(6);
-  }
-  /**
-   * @return the element at index {@code i} in the SecuritySchemeTuple list without
-   * triggering rewrites.
-   */
-  public SecuritySchemeTuple getSecuritySchemeTupleNoTransform(int i) {
-    return (SecuritySchemeTuple) getSecuritySchemeTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SecuritySchemeTuple list.
-   * @return The node representing the SecuritySchemeTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<SecuritySchemeTuple> getSecuritySchemeTuples() {
-    return getSecuritySchemeTupleList();
-  }
-  /**
-   * Retrieves the SecuritySchemeTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecuritySchemeTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecuritySchemeTuple> getSecuritySchemeTuplesNoTransform() {
-    return getSecuritySchemeTupleListNoTransform();
-  }
-  /**
-   * Replaces the LinkTuple list.
-   * @param list The new list node to be used as the LinkTuple list.
-   * @apilevel high-level
-   */
-  public void setLinkTupleList(JastAddList<LinkTuple> list) {
-    setChild(list, 7);
-  }
-  /**
-   * Retrieves the number of children in the LinkTuple list.
-   * @return Number of children in the LinkTuple list.
-   * @apilevel high-level
-   */
-  public int getNumLinkTuple() {
-    return getLinkTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the LinkTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the LinkTuple list.
-   * @apilevel low-level
-   */
-  public int getNumLinkTupleNoTransform() {
-    return getLinkTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the LinkTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the LinkTuple list.
-   * @apilevel high-level
-   */
-  public LinkTuple getLinkTuple(int i) {
-    return (LinkTuple) getLinkTupleList().getChild(i);
-  }
-  /**
-   * Check whether the LinkTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasLinkTuple() {
-    return getLinkTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the LinkTuple list.
-   * @param node The element to append to the LinkTuple list.
-   * @apilevel high-level
-   */
-  public void addLinkTuple(LinkTuple node) {
-    JastAddList<LinkTuple> list = (parent == null) ? getLinkTupleListNoTransform() : getLinkTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addLinkTupleNoTransform(LinkTuple node) {
-    JastAddList<LinkTuple> list = getLinkTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the LinkTuple 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 setLinkTuple(LinkTuple node, int i) {
-    JastAddList<LinkTuple> list = getLinkTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * @return The node representing the LinkTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="LinkTuple")
-  public JastAddList<LinkTuple> getLinkTupleList() {
-    JastAddList<LinkTuple> list = (JastAddList<LinkTuple>) getChild(7);
-    return list;
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkTuple> getLinkTupleListNoTransform() {
-    return (JastAddList<LinkTuple>) getChildNoTransform(7);
-  }
-  /**
-   * @return the element at index {@code i} in the LinkTuple list without
-   * triggering rewrites.
-   */
-  public LinkTuple getLinkTupleNoTransform(int i) {
-    return (LinkTuple) getLinkTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * @return The node representing the LinkTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<LinkTuple> getLinkTuples() {
-    return getLinkTupleList();
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkTuple> getLinkTuplesNoTransform() {
-    return getLinkTupleListNoTransform();
-  }
-  /**
-   * Replaces the CallbackTuple list.
-   * @param list The new list node to be used as the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public void setCallbackTupleList(JastAddList<CallbackTuple> list) {
-    setChild(list, 8);
-  }
-  /**
-   * Retrieves the number of children in the CallbackTuple list.
-   * @return Number of children in the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public int getNumCallbackTuple() {
-    return getCallbackTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the CallbackTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public int getNumCallbackTupleNoTransform() {
-    return getCallbackTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the CallbackTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public CallbackTuple getCallbackTuple(int i) {
-    return (CallbackTuple) getCallbackTupleList().getChild(i);
-  }
-  /**
-   * Check whether the CallbackTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasCallbackTuple() {
-    return getCallbackTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the CallbackTuple list.
-   * @param node The element to append to the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public void addCallbackTuple(CallbackTuple node) {
-    JastAddList<CallbackTuple> list = (parent == null) ? getCallbackTupleListNoTransform() : getCallbackTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addCallbackTupleNoTransform(CallbackTuple node) {
-    JastAddList<CallbackTuple> list = getCallbackTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the CallbackTuple 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 setCallbackTuple(CallbackTuple node, int i) {
-    JastAddList<CallbackTuple> list = getCallbackTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * @return The node representing the CallbackTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="CallbackTuple")
-  public JastAddList<CallbackTuple> getCallbackTupleList() {
-    JastAddList<CallbackTuple> list = (JastAddList<CallbackTuple>) getChild(8);
-    return list;
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTupleListNoTransform() {
-    return (JastAddList<CallbackTuple>) getChildNoTransform(8);
-  }
-  /**
-   * @return the element at index {@code i} in the CallbackTuple list without
-   * triggering rewrites.
-   */
-  public CallbackTuple getCallbackTupleNoTransform(int i) {
-    return (CallbackTuple) getCallbackTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * @return The node representing the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTuples() {
-    return getCallbackTupleList();
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTuplesNoTransform() {
-    return getCallbackTupleListNoTransform();
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 9);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(9);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(9);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/ContactObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java
deleted file mode 100644
index 11eb786e..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContactObject.java
+++ /dev/null
@@ -1,383 +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 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:8
- * @astdecl ContactObject : ASTNode ::= <Name:String> <Url:String> <Email:String> Extension*;
- * @production ContactObject : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;Url:String&gt;</span> <span class="component">&lt;Email:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class ContactObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:85
-   */
-  public static Contact composeContact (ContactObject contactObject){
-        Contact contact = new Contact();
-
-        if( !contactObject.getName().isEmpty() )
-        contact.setName( contactObject.getName() );
-        if( !contactObject.getUrl().isEmpty() )
-        contact.setUrl( contactObject.getUrl() );
-        if( !contactObject.getEmail().isEmpty() )
-        contact.setEmail( contactObject.getEmail() );
-        if( contactObject.getNumExtension() != 0 ){
-        Map<String, Object> extensions = new HashMap<>();
-        for( Extension e : contactObject.getExtensions() )
-        extensions.put(e.getKey(), e.getValue());
-        contact.setExtensions(extensions);
-        }
-
-        return contact;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:63
-   */
-  public static ContactObject parseContact(Contact contact){
-        ContactObject contactObject = new ContactObject();
-
-        if( contact.getName() != null )
-        contactObject.setName( contact.getName() );
-        if( contact.getUrl() != null )
-        contactObject.setUrl( contact.getUrl() );
-        if( contact.getEmail() != null )
-        contactObject.setEmail( contact.getEmail() );
-        if( contact.getExtensions() != null ){
-        for( String key : contact.getExtensions().keySet() )
-        contactObject.addExtension(new Extension(key, contact.getExtensions().get(key)));
-        }
-
-        return contactObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ContactObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "Url", "Email", "Extension"},
-    type = {"String", "String", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "List"}
-  )
-  public ContactObject(String p0, String p1, String p2, JastAddList<Extension> p3) {
-    setName(p0);
-    setUrl(p1);
-    setEmail(p2);
-    setChild(p3, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:26
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:32
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:36
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:40
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public ContactObject clone() throws CloneNotSupportedException {
-    ContactObject node = (ContactObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public ContactObject copy() {
-    try {
-      ContactObject node = (ContactObject) 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:68
-   */
-  @Deprecated
-  public ContactObject 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:78
-   */
-  public ContactObject treeCopyNoTransform() {
-    ContactObject tree = (ContactObject) 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:98
-   */
-  public ContactObject treeCopy() {
-    ContactObject tree = (ContactObject) 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:112
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((ContactObject) node).tokenString_Name) && (tokenString_Url == ((ContactObject) node).tokenString_Url) && (tokenString_Email == ((ContactObject) node).tokenString_Email);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme Url.
-   * @param value The new value for the lexeme Url.
-   * @apilevel high-level
-   */
-  public void setUrl(String value) {
-    tokenString_Url = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Url;
-  /**
-   * Retrieves the value for the lexeme Url.
-   * @return The value for the lexeme Url.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Url")
-  public String getUrl() {
-    return tokenString_Url != null ? tokenString_Url : "";
-  }
-  /**
-   * Replaces the lexeme Email.
-   * @param value The new value for the lexeme Email.
-   * @apilevel high-level
-   */
-  public void setEmail(String value) {
-    tokenString_Email = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Email;
-  /**
-   * Retrieves the value for the lexeme Email.
-   * @return The value for the lexeme Email.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Email")
-  public String getEmail() {
-    return tokenString_Email != null ? tokenString_Email : "";
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/ContentTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java
deleted file mode 100644
index 71c08557..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ContentTuple.java
+++ /dev/null
@@ -1,214 +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 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:57
- * @astdecl ContentTuple : ASTNode ::= <Key:String> MediaTypeObject;
- * @production ContentTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link MediaTypeObject}</span>;
-
- */
-public class ContentTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ContentTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "MediaTypeObject"},
-    type = {"String", "MediaTypeObject"},
-    kind = {"Token", "Child"}
-  )
-  public ContentTuple(String p0, MediaTypeObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public ContentTuple clone() throws CloneNotSupportedException {
-    ContentTuple node = (ContentTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public ContentTuple copy() {
-    try {
-      ContentTuple node = (ContentTuple) 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:65
-   */
-  @Deprecated
-  public ContentTuple 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:75
-   */
-  public ContentTuple treeCopyNoTransform() {
-    ContentTuple tree = (ContentTuple) 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:95
-   */
-  public ContentTuple treeCopy() {
-    ContentTuple tree = (ContentTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((ContentTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the MediaTypeObject child.
-   * @param node The new node to replace the MediaTypeObject child.
-   * @apilevel high-level
-   */
-  public void setMediaTypeObject(MediaTypeObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the MediaTypeObject child.
-   * @return The current node used as the MediaTypeObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="MediaTypeObject")
-  public MediaTypeObject getMediaTypeObject() {
-    return (MediaTypeObject) getChild(0);
-  }
-  /**
-   * Retrieves the MediaTypeObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the MediaTypeObject child.
-   * @apilevel low-level
-   */
-  public MediaTypeObject getMediaTypeObjectNoTransform() {
-    return (MediaTypeObject) getChildNoTransform(0);
-  }
-  /** @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/Delete.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java
deleted file mode 100644
index c233010c..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Delete.java
+++ /dev/null
@@ -1,193 +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 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:42
- * @astdecl Delete : ASTNode ::= OperationObject;
- * @production Delete : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Delete extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Delete() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Delete(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Delete clone() throws CloneNotSupportedException {
-    Delete node = (Delete) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Delete copy() {
-    try {
-      Delete node = (Delete) 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 Delete 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 Delete treeCopyNoTransform() {
-    Delete tree = (Delete) 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 Delete treeCopy() {
-    Delete tree = (Delete) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/DiscriminatorObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java
deleted file mode 100644
index e9abab9a..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/DiscriminatorObject.java
+++ /dev/null
@@ -1,337 +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 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:103
- * @astdecl DiscriminatorObject : ASTNode ::= <PropertyName:String> MappingTuple*;
- * @production DiscriminatorObject : {@link ASTNode} ::= <span class="component">&lt;PropertyName:String&gt;</span> <span class="component">{@link MappingTuple}*</span>;
-
- */
-public class DiscriminatorObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:748
-   */
-  public static Discriminator composeDiscriminator (DiscriminatorObject discriminatorObject) {
-        Discriminator discriminator = new Discriminator();
-
-        if( !discriminatorObject.getPropertyName().isEmpty() )
-        discriminator.setPropertyName(discriminatorObject.getPropertyName());
-        if( discriminatorObject.getNumMappingTuple() != 0 ){
-        Map<String, String> mapping = new HashMap<>();
-        for( MappingTuple m : discriminatorObject.getMappingTuples() )
-        mapping.put(m.getKey(), m.getValue());
-        discriminator.setMapping(mapping);
-        }
-
-        return discriminator;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:758
-   */
-  public static DiscriminatorObject parseDiscriminator (Discriminator discriminator) {
-        DiscriminatorObject discriminatorObject = new DiscriminatorObject();
-
-        if( discriminator.getPropertyName() != null )
-        discriminatorObject.setPropertyName(discriminator.getPropertyName());
-        if( discriminator.getMapping() != null ){
-        MappingTuple mapping = new MappingTuple();
-        for( String key : discriminator.getMapping().keySet() ){
-        mapping.setKey(key);
-        mapping.setValue(discriminator.getMapping().get(key));
-        discriminatorObject.addMappingTuple(mapping);
-        }
-        }
-
-        return discriminatorObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public DiscriminatorObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"PropertyName", "MappingTuple"},
-    type = {"String", "JastAddList<MappingTuple>"},
-    kind = {"Token", "List"}
-  )
-  public DiscriminatorObject(String p0, JastAddList<MappingTuple> p1) {
-    setPropertyName(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:24
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:30
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:34
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:38
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:42
-   */
-  public DiscriminatorObject clone() throws CloneNotSupportedException {
-    DiscriminatorObject node = (DiscriminatorObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:47
-   */
-  public DiscriminatorObject copy() {
-    try {
-      DiscriminatorObject node = (DiscriminatorObject) 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:66
-   */
-  @Deprecated
-  public DiscriminatorObject 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:76
-   */
-  public DiscriminatorObject treeCopyNoTransform() {
-    DiscriminatorObject tree = (DiscriminatorObject) 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:96
-   */
-  public DiscriminatorObject treeCopy() {
-    DiscriminatorObject tree = (DiscriminatorObject) 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:110
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_PropertyName == ((DiscriminatorObject) node).tokenString_PropertyName);    
-  }
-  /**
-   * Replaces the lexeme PropertyName.
-   * @param value The new value for the lexeme PropertyName.
-   * @apilevel high-level
-   */
-  public void setPropertyName(String value) {
-    tokenString_PropertyName = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_PropertyName;
-  /**
-   * Retrieves the value for the lexeme PropertyName.
-   * @return The value for the lexeme PropertyName.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="PropertyName")
-  public String getPropertyName() {
-    return tokenString_PropertyName != null ? tokenString_PropertyName : "";
-  }
-  /**
-   * Replaces the MappingTuple list.
-   * @param list The new list node to be used as the MappingTuple list.
-   * @apilevel high-level
-   */
-  public void setMappingTupleList(JastAddList<MappingTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the MappingTuple list.
-   * @return Number of children in the MappingTuple list.
-   * @apilevel high-level
-   */
-  public int getNumMappingTuple() {
-    return getMappingTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the MappingTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the MappingTuple list.
-   * @apilevel low-level
-   */
-  public int getNumMappingTupleNoTransform() {
-    return getMappingTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the MappingTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the MappingTuple list.
-   * @apilevel high-level
-   */
-  public MappingTuple getMappingTuple(int i) {
-    return (MappingTuple) getMappingTupleList().getChild(i);
-  }
-  /**
-   * Check whether the MappingTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasMappingTuple() {
-    return getMappingTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the MappingTuple list.
-   * @param node The element to append to the MappingTuple list.
-   * @apilevel high-level
-   */
-  public void addMappingTuple(MappingTuple node) {
-    JastAddList<MappingTuple> list = (parent == null) ? getMappingTupleListNoTransform() : getMappingTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addMappingTupleNoTransform(MappingTuple node) {
-    JastAddList<MappingTuple> list = getMappingTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the MappingTuple 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 setMappingTuple(MappingTuple node, int i) {
-    JastAddList<MappingTuple> list = getMappingTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the MappingTuple list.
-   * @return The node representing the MappingTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="MappingTuple")
-  public JastAddList<MappingTuple> getMappingTupleList() {
-    JastAddList<MappingTuple> list = (JastAddList<MappingTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the MappingTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the MappingTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<MappingTuple> getMappingTupleListNoTransform() {
-    return (JastAddList<MappingTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the MappingTuple list without
-   * triggering rewrites.
-   */
-  public MappingTuple getMappingTupleNoTransform(int i) {
-    return (MappingTuple) getMappingTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the MappingTuple list.
-   * @return The node representing the MappingTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<MappingTuple> getMappingTuples() {
-    return getMappingTupleList();
-  }
-  /**
-   * Retrieves the MappingTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the MappingTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<MappingTuple> getMappingTuplesNoTransform() {
-    return getMappingTupleListNoTransform();
-  }
-  /** @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/EncodingObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java
deleted file mode 100644
index 05bcdf22..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingObject.java
+++ /dev/null
@@ -1,526 +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 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:67
- * @astdecl EncodingObject : ASTNode ::= <ContentType:String> HeaderTuple* <Style:String> <Explode:Boolean> <AllowReserved:Boolean> Extension*;
- * @production EncodingObject : {@link ASTNode} ::= <span class="component">&lt;ContentType:String&gt;</span> <span class="component">{@link HeaderTuple}*</span> <span class="component">&lt;Style:String&gt;</span> <span class="component">&lt;Explode:Boolean&gt;</span> <span class="component">&lt;AllowReserved:Boolean&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class EncodingObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:482
-   */
-  public static EncodingProperty composeEncodingProperty (EncodingObject encodingObject){
-        EncodingProperty encodingProperty = new EncodingProperty();
-
-        if( !encodingObject.getContentType().isEmpty() )
-        encodingProperty.setContentType( encodingObject.getContentType() );
-        if( encodingObject.getNumHeaderTuple() != 0 ){
-        Map<String, Header> headers = new HashMap<>();
-        for( HeaderTuple t : encodingObject.getHeaderTuples() )
-        headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject()));
-        encodingProperty.setHeaders(headers);
-        }
-        if( !encodingObject.getStyle().isEmpty() )
-        encodingProperty.setStyle(encodingObject.getStyle());
-        if( encodingObject.getExplode() != null )
-        encodingProperty.setExplode(encodingObject.getExplode());
-        if( encodingObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : encodingObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        encodingProperty.setExtensions(extensionMap);
-        }
-
-        return encodingProperty;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:493
-   */
-  public static EncodingObject parseEncoding(EncodingProperty encodingProperty){
-        EncodingObject encodingObject = new EncodingObject();
-
-        if( encodingProperty.getContentType() != null )
-        encodingObject.setContentType( encodingProperty.getContentType() );
-        if( encodingProperty.getHeaders() != null ){
-        for( String key : encodingProperty.getHeaders().keySet() )
-        encodingObject.addHeaderTuple(new HeaderTuple(key, HeaderObject.parseHeader(encodingProperty.getHeader(key))));
-        }
-        if( encodingProperty.getStyle() != null )
-        encodingObject.setStyle( encodingProperty.getStyle() );
-        if( encodingProperty.getExplode() != null )
-        encodingObject.setExplode( encodingProperty.getExplode() );
-        if( encodingProperty.getExtensions() != null ){
-        for( String key : encodingProperty.getExtensions().keySet() )
-        encodingObject.addExtension(new Extension(key, encodingProperty.getExtensions().get(key)));
-        }
-
-        return encodingObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public EncodingObject() {
-    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() {
-    children = new ASTNode[2];
-    setChild(new JastAddList(), 0);
-    setChild(new JastAddList(), 1);
-  }
-  /**
-   * @declaredat ASTNode:15
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"ContentType", "HeaderTuple", "Style", "Explode", "AllowReserved", "Extension"},
-    type = {"String", "JastAddList<HeaderTuple>", "String", "Boolean", "Boolean", "JastAddList<Extension>"},
-    kind = {"Token", "List", "Token", "Token", "Token", "List"}
-  )
-  public EncodingObject(String p0, JastAddList<HeaderTuple> p1, String p2, Boolean p3, Boolean p4, JastAddList<Extension> p5) {
-    setContentType(p0);
-    setChild(p1, 0);
-    setStyle(p2);
-    setExplode(p3);
-    setAllowReserved(p4);
-    setChild(p5, 1);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:29
-   */
-  protected int numChildren() {
-    return 2;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:35
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:47
-   */
-  public EncodingObject clone() throws CloneNotSupportedException {
-    EncodingObject node = (EncodingObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:52
-   */
-  public EncodingObject copy() {
-    try {
-      EncodingObject node = (EncodingObject) 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:71
-   */
-  @Deprecated
-  public EncodingObject 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:81
-   */
-  public EncodingObject treeCopyNoTransform() {
-    EncodingObject tree = (EncodingObject) 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:101
-   */
-  public EncodingObject treeCopy() {
-    EncodingObject tree = (EncodingObject) 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:115
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_ContentType == ((EncodingObject) node).tokenString_ContentType) && (tokenString_Style == ((EncodingObject) node).tokenString_Style) && (tokenBoolean_Explode == ((EncodingObject) node).tokenBoolean_Explode) && (tokenBoolean_AllowReserved == ((EncodingObject) node).tokenBoolean_AllowReserved);    
-  }
-  /**
-   * Replaces the lexeme ContentType.
-   * @param value The new value for the lexeme ContentType.
-   * @apilevel high-level
-   */
-  public void setContentType(String value) {
-    tokenString_ContentType = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_ContentType;
-  /**
-   * Retrieves the value for the lexeme ContentType.
-   * @return The value for the lexeme ContentType.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ContentType")
-  public String getContentType() {
-    return tokenString_ContentType != null ? tokenString_ContentType : "";
-  }
-  /**
-   * Replaces the HeaderTuple list.
-   * @param list The new list node to be used as the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void setHeaderTupleList(JastAddList<HeaderTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public int getNumHeaderTuple() {
-    return getHeaderTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public int getNumHeaderTupleNoTransform() {
-    return getHeaderTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the HeaderTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public HeaderTuple getHeaderTuple(int i) {
-    return (HeaderTuple) getHeaderTupleList().getChild(i);
-  }
-  /**
-   * Check whether the HeaderTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasHeaderTuple() {
-    return getHeaderTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the HeaderTuple list.
-   * @param node The element to append to the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void addHeaderTuple(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = (parent == null) ? getHeaderTupleListNoTransform() : getHeaderTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addHeaderTupleNoTransform(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = getHeaderTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the HeaderTuple 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 setHeaderTuple(HeaderTuple node, int i) {
-    JastAddList<HeaderTuple> list = getHeaderTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="HeaderTuple")
-  public JastAddList<HeaderTuple> getHeaderTupleList() {
-    JastAddList<HeaderTuple> list = (JastAddList<HeaderTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTupleListNoTransform() {
-    return (JastAddList<HeaderTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the HeaderTuple list without
-   * triggering rewrites.
-   */
-  public HeaderTuple getHeaderTupleNoTransform(int i) {
-    return (HeaderTuple) getHeaderTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuples() {
-    return getHeaderTupleList();
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuplesNoTransform() {
-    return getHeaderTupleListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Style.
-   * @param value The new value for the lexeme Style.
-   * @apilevel high-level
-   */
-  public void setStyle(String value) {
-    tokenString_Style = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Style;
-  /**
-   * Retrieves the value for the lexeme Style.
-   * @return The value for the lexeme Style.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Style")
-  public String getStyle() {
-    return tokenString_Style != null ? tokenString_Style : "";
-  }
-  /**
-   * Replaces the lexeme Explode.
-   * @param value The new value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  public void setExplode(Boolean value) {
-    tokenBoolean_Explode = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Explode;
-  /**
-   * Retrieves the value for the lexeme Explode.
-   * @return The value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Explode")
-  public Boolean getExplode() {
-    return tokenBoolean_Explode;
-  }
-  /**
-   * Replaces the lexeme AllowReserved.
-   * @param value The new value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  public void setAllowReserved(Boolean value) {
-    tokenBoolean_AllowReserved = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AllowReserved;
-  /**
-   * Retrieves the value for the lexeme AllowReserved.
-   * @return The value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AllowReserved")
-  public Boolean getAllowReserved() {
-    return tokenBoolean_AllowReserved;
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/EncodingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java
deleted file mode 100644
index 7d746b8e..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EncodingTuple.java
+++ /dev/null
@@ -1,214 +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 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:64
- * @astdecl EncodingTuple : ASTNode ::= <Key:String> EncodingObject;
- * @production EncodingTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link EncodingObject}</span>;
-
- */
-public class EncodingTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public EncodingTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "EncodingObject"},
-    type = {"String", "EncodingObject"},
-    kind = {"Token", "Child"}
-  )
-  public EncodingTuple(String p0, EncodingObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public EncodingTuple clone() throws CloneNotSupportedException {
-    EncodingTuple node = (EncodingTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public EncodingTuple copy() {
-    try {
-      EncodingTuple node = (EncodingTuple) 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:65
-   */
-  @Deprecated
-  public EncodingTuple 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:75
-   */
-  public EncodingTuple treeCopyNoTransform() {
-    EncodingTuple tree = (EncodingTuple) 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:95
-   */
-  public EncodingTuple treeCopy() {
-    EncodingTuple tree = (EncodingTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((EncodingTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the EncodingObject child.
-   * @param node The new node to replace the EncodingObject child.
-   * @apilevel high-level
-   */
-  public void setEncodingObject(EncodingObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the EncodingObject child.
-   * @return The current node used as the EncodingObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="EncodingObject")
-  public EncodingObject getEncodingObject() {
-    return (EncodingObject) getChild(0);
-  }
-  /**
-   * Retrieves the EncodingObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the EncodingObject child.
-   * @apilevel low-level
-   */
-  public EncodingObject getEncodingObjectNoTransform() {
-    return (EncodingObject) getChildNoTransform(0);
-  }
-  /** @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/Enum.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java
deleted file mode 100644
index ff0ed8af..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Enum.java
+++ /dev/null
@@ -1,186 +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 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:19
- * @astdecl Enum : ASTNode ::= <EnumValue:String>;
- * @production Enum : {@link ASTNode} ::= <span class="component">&lt;EnumValue:String&gt;</span>;
-
- */
-public class Enum extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Enum() {
-    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 = {"EnumValue"},
-    type = {"String"},
-    kind = {"Token"}
-  )
-  public Enum(String p0) {
-    setEnumValue(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 Enum clone() throws CloneNotSupportedException {
-    Enum node = (Enum) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public Enum copy() {
-    try {
-      Enum node = (Enum) 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 Enum 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 Enum treeCopyNoTransform() {
-    Enum tree = (Enum) 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 Enum treeCopy() {
-    Enum tree = (Enum) 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_EnumValue == ((Enum) node).tokenString_EnumValue);    
-  }
-  /**
-   * Replaces the lexeme EnumValue.
-   * @param value The new value for the lexeme EnumValue.
-   * @apilevel high-level
-   */
-  public void setEnumValue(String value) {
-    tokenString_EnumValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_EnumValue;
-  /**
-   * Retrieves the value for the lexeme EnumValue.
-   * @return The value for the lexeme EnumValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="EnumValue")
-  public String getEnumValue() {
-    return tokenString_EnumValue != null ? tokenString_EnumValue : "";
-  }
-  /** @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/EnumObj.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java
deleted file mode 100644
index 3a163db9..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/EnumObj.java
+++ /dev/null
@@ -1,186 +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 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:93
- * @astdecl EnumObj : ASTNode ::= <EnumOb:Object>;
- * @production EnumObj : {@link ASTNode} ::= <span class="component">&lt;EnumOb:Object&gt;</span>;
-
- */
-public class EnumObj extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public EnumObj() {
-    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 = {"EnumOb"},
-    type = {"Object"},
-    kind = {"Token"}
-  )
-  public EnumObj(Object p0) {
-    setEnumOb(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 EnumObj clone() throws CloneNotSupportedException {
-    EnumObj node = (EnumObj) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public EnumObj copy() {
-    try {
-      EnumObj node = (EnumObj) 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 EnumObj 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 EnumObj treeCopyNoTransform() {
-    EnumObj tree = (EnumObj) 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 EnumObj treeCopy() {
-    EnumObj tree = (EnumObj) 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) && (tokenObject_EnumOb == ((EnumObj) node).tokenObject_EnumOb);    
-  }
-  /**
-   * Replaces the lexeme EnumOb.
-   * @param value The new value for the lexeme EnumOb.
-   * @apilevel high-level
-   */
-  public void setEnumOb(Object value) {
-    tokenObject_EnumOb = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_EnumOb;
-  /**
-   * Retrieves the value for the lexeme EnumOb.
-   * @return The value for the lexeme EnumOb.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="EnumOb")
-  public Object getEnumOb() {
-    return tokenObject_EnumOb;
-  }
-  /** @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/ExampleObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java
deleted file mode 100644
index b0896de2..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleObject.java
+++ /dev/null
@@ -1,408 +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 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:78
- * @astdecl ExampleObject : ASTNode ::= <Summary:String> <Description:String> <Value:Object> <ExternalValue:String> Extension*;
- * @production ExampleObject : {@link ASTNode} ::= <span class="component">&lt;Summary:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;Value:Object&gt;</span> <span class="component">&lt;ExternalValue:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class ExampleObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:549
-   */
-  public static Example composeExample (ExampleObject exampleObject){
-        Example example = new Example();
-
-        if( !exampleObject.getSummary().isEmpty() )
-        example.setSummary( exampleObject.getSummary() );
-        if( !exampleObject.getDescription().isEmpty() )
-        example.setDescription( exampleObject.getDescription() );
-        if( exampleObject.getValue() != null )
-        example.setValue( exampleObject.getValue() );
-        if( !exampleObject.getExternalValue().isEmpty() )
-        example.setExternalValue( exampleObject.getExternalValue() );
-        if( exampleObject.getNumExtension() != 0 ){
-        Map<String, Object> extension = new HashMap<>();
-        for( Extension e : exampleObject.getExtensions() )
-        extension.put(e.getKey(), e.getValue());
-        example.setExtensions(extension);
-        }
-
-        return example;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:548
-   */
-  public static ExampleObject parseExample(Example example){
-        ExampleObject exampleObject = new ExampleObject();
-
-        if( example.getSummary() != null )
-        exampleObject.setSummary( example.getSummary() );
-        if( example.getDescription() != null )
-        exampleObject.setDescription( example.getDescription() );
-        if( example.getValue() != null )
-        exampleObject.setValue( example.getValue() );
-        if( example.getExternalValue() != null )
-        exampleObject.setExternalValue( example.getExternalValue() );
-        if( example.getExtensions() != null ){
-        for( String key : example.getExtensions().keySet() )
-        exampleObject.addExtension(new Extension(key, example.getExtensions().get(key)));
-        }
-
-        return exampleObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ExampleObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Summary", "Description", "Value", "ExternalValue", "Extension"},
-    type = {"String", "String", "Object", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Token", "List"}
-  )
-  public ExampleObject(String p0, String p1, Object p2, String p3, JastAddList<Extension> p4) {
-    setSummary(p0);
-    setDescription(p1);
-    setValue(p2);
-    setExternalValue(p3);
-    setChild(p4, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:27
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:33
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public ExampleObject clone() throws CloneNotSupportedException {
-    ExampleObject node = (ExampleObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public ExampleObject copy() {
-    try {
-      ExampleObject node = (ExampleObject) 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:69
-   */
-  @Deprecated
-  public ExampleObject 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:79
-   */
-  public ExampleObject treeCopyNoTransform() {
-    ExampleObject tree = (ExampleObject) 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:99
-   */
-  public ExampleObject treeCopy() {
-    ExampleObject tree = (ExampleObject) 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:113
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Summary == ((ExampleObject) node).tokenString_Summary) && (tokenString_Description == ((ExampleObject) node).tokenString_Description) && (tokenObject_Value == ((ExampleObject) node).tokenObject_Value) && (tokenString_ExternalValue == ((ExampleObject) node).tokenString_ExternalValue);    
-  }
-  /**
-   * Replaces the lexeme Summary.
-   * @param value The new value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  public void setSummary(String value) {
-    tokenString_Summary = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Summary;
-  /**
-   * Retrieves the value for the lexeme Summary.
-   * @return The value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Summary")
-  public String getSummary() {
-    return tokenString_Summary != null ? tokenString_Summary : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme Value.
-   * @param value The new value for the lexeme Value.
-   * @apilevel high-level
-   */
-  public void setValue(Object value) {
-    tokenObject_Value = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Value;
-  /**
-   * Retrieves the value for the lexeme Value.
-   * @return The value for the lexeme Value.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Value")
-  public Object getValue() {
-    return tokenObject_Value;
-  }
-  /**
-   * Replaces the lexeme ExternalValue.
-   * @param value The new value for the lexeme ExternalValue.
-   * @apilevel high-level
-   */
-  public void setExternalValue(String value) {
-    tokenString_ExternalValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_ExternalValue;
-  /**
-   * Retrieves the value for the lexeme ExternalValue.
-   * @return The value for the lexeme ExternalValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ExternalValue")
-  public String getExternalValue() {
-    return tokenString_ExternalValue != null ? tokenString_ExternalValue : "";
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/ExampleTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java
deleted file mode 100644
index 9a23b2e4..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExampleTuple.java
+++ /dev/null
@@ -1,214 +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 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:26
- * @astdecl ExampleTuple : ASTNode ::= <Key:String> ExampleObject;
- * @production ExampleTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link ExampleObject}</span>;
-
- */
-public class ExampleTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ExampleTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "ExampleObject"},
-    type = {"String", "ExampleObject"},
-    kind = {"Token", "Child"}
-  )
-  public ExampleTuple(String p0, ExampleObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public ExampleTuple clone() throws CloneNotSupportedException {
-    ExampleTuple node = (ExampleTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public ExampleTuple copy() {
-    try {
-      ExampleTuple node = (ExampleTuple) 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:65
-   */
-  @Deprecated
-  public ExampleTuple 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:75
-   */
-  public ExampleTuple treeCopyNoTransform() {
-    ExampleTuple tree = (ExampleTuple) 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:95
-   */
-  public ExampleTuple treeCopy() {
-    ExampleTuple tree = (ExampleTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((ExampleTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the ExampleObject child.
-   * @param node The new node to replace the ExampleObject child.
-   * @apilevel high-level
-   */
-  public void setExampleObject(ExampleObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the ExampleObject child.
-   * @return The current node used as the ExampleObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="ExampleObject")
-  public ExampleObject getExampleObject() {
-    return (ExampleObject) getChild(0);
-  }
-  /**
-   * Retrieves the ExampleObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the ExampleObject child.
-   * @apilevel low-level
-   */
-  public ExampleObject getExampleObjectNoTransform() {
-    return (ExampleObject) getChildNoTransform(0);
-  }
-  /** @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/Expression.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java
deleted file mode 100644
index 0bddc0d6..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Expression.java
+++ /dev/null
@@ -1,214 +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 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:74
- * @astdecl Expression : ASTNode ::= <Name:String> PathItem;
- * @production Expression : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">{@link PathItem}</span>;
-
- */
-public class Expression extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Expression() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "PathItem"},
-    type = {"String", "PathItem"},
-    kind = {"Token", "Child"}
-  )
-  public Expression(String p0, PathItem p1) {
-    setName(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public Expression clone() throws CloneNotSupportedException {
-    Expression node = (Expression) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public Expression copy() {
-    try {
-      Expression node = (Expression) 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:65
-   */
-  @Deprecated
-  public Expression 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:75
-   */
-  public Expression treeCopyNoTransform() {
-    Expression tree = (Expression) 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:95
-   */
-  public Expression treeCopy() {
-    Expression tree = (Expression) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((Expression) node).tokenString_Name);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the PathItem child.
-   * @param node The new node to replace the PathItem child.
-   * @apilevel high-level
-   */
-  public void setPathItem(PathItem node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the PathItem child.
-   * @return The current node used as the PathItem child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="PathItem")
-  public PathItem getPathItem() {
-    return (PathItem) getChild(0);
-  }
-  /**
-   * Retrieves the PathItem child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the PathItem child.
-   * @apilevel low-level
-   */
-  public PathItem getPathItemNoTransform() {
-    return (PathItem) getChildNoTransform(0);
-  }
-  /** @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/Extension.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java
deleted file mode 100644
index 4379f72b..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Extension.java
+++ /dev/null
@@ -1,207 +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 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:75
- * @astdecl Extension : ASTNode ::= <Key:String> <Value:Object>;
- * @production Extension : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">&lt;Value:Object&gt;</span>;
-
- */
-public class Extension extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Extension() {
-    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 = {"Key", "Value"},
-    type = {"String", "Object"},
-    kind = {"Token", "Token"}
-  )
-  public Extension(String p0, Object p1) {
-    setKey(p0);
-    setValue(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 Extension clone() throws CloneNotSupportedException {
-    Extension node = (Extension) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Extension copy() {
-    try {
-      Extension node = (Extension) 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 Extension 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 Extension treeCopyNoTransform() {
-    Extension tree = (Extension) 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 Extension treeCopy() {
-    Extension tree = (Extension) 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_Key == ((Extension) node).tokenString_Key) && (tokenObject_Value == ((Extension) node).tokenObject_Value);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the lexeme Value.
-   * @param value The new value for the lexeme Value.
-   * @apilevel high-level
-   */
-  public void setValue(Object value) {
-    tokenObject_Value = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Value;
-  /**
-   * Retrieves the value for the lexeme Value.
-   * @return The value for the lexeme Value.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Value")
-  public Object getValue() {
-    return tokenObject_Value;
-  }
-  /** @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/ExternalDocObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java
deleted file mode 100644
index d51932cc..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ExternalDocObject.java
+++ /dev/null
@@ -1,359 +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 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:53
- * @astdecl ExternalDocObject : ASTNode ::= <Description:String> <Url:String> Extension*;
- * @production ExternalDocObject : {@link ASTNode} ::= <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;Url:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class ExternalDocObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:374
-   */
-  public static ExternalDocs composeExternalDocs (ExternalDocObject externalDocObject){
-        ExternalDocs externalDocs = new ExternalDocs();
-
-        if( !externalDocObject.getDescription().isEmpty() )
-        externalDocs.setDescription(externalDocObject.getDescription());
-        if( !externalDocObject.getUrl().isEmpty() )
-        externalDocs.setUrl(externalDocObject.getUrl());
-        if( externalDocObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : externalDocObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        externalDocs.setExtensions(extensionMap);
-        }
-
-        return externalDocs;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:400
-   */
-  public static ExternalDocObject parseExternalDocs(ExternalDocs externalDocs){
-        ExternalDocObject externalDocObject = new ExternalDocObject();
-
-
-        if( externalDocs.getDescription() != null )
-        externalDocObject.setDescription(externalDocs.getDescription());
-        if( externalDocs.getUrl() != null )
-        externalDocObject.setUrl(externalDocs.getUrl());
-        if( externalDocs.getExtensions() != null ) {
-        for( String key : externalDocs.getExtensions().keySet() )
-        externalDocObject.addExtension(new Extension(key, externalDocs.getExtensions().get(key)));
-        }
-
-        return externalDocObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ExternalDocObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Description", "Url", "Extension"},
-    type = {"String", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "List"}
-  )
-  public ExternalDocObject(String p0, String p1, JastAddList<Extension> p2) {
-    setDescription(p0);
-    setUrl(p1);
-    setChild(p2, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:25
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:31
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:35
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public ExternalDocObject clone() throws CloneNotSupportedException {
-    ExternalDocObject node = (ExternalDocObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:48
-   */
-  public ExternalDocObject copy() {
-    try {
-      ExternalDocObject node = (ExternalDocObject) 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:67
-   */
-  @Deprecated
-  public ExternalDocObject 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:77
-   */
-  public ExternalDocObject treeCopyNoTransform() {
-    ExternalDocObject tree = (ExternalDocObject) 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:97
-   */
-  public ExternalDocObject treeCopy() {
-    ExternalDocObject tree = (ExternalDocObject) 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:111
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Description == ((ExternalDocObject) node).tokenString_Description) && (tokenString_Url == ((ExternalDocObject) node).tokenString_Url);    
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme Url.
-   * @param value The new value for the lexeme Url.
-   * @apilevel high-level
-   */
-  public void setUrl(String value) {
-    tokenString_Url = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Url;
-  /**
-   * Retrieves the value for the lexeme Url.
-   * @return The value for the lexeme Url.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Url")
-  public String getUrl() {
-    return tokenString_Url != null ? tokenString_Url : "";
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/Get.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
deleted file mode 100644
index f7f64225..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
+++ /dev/null
@@ -1,193 +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 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 Get : ASTNode ::= OperationObject;
- * @production Get : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Get extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Get() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Get(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Get clone() throws CloneNotSupportedException {
-    Get node = (Get) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Get copy() {
-    try {
-      Get node = (Get) 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 Get 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 Get treeCopyNoTransform() {
-    Get tree = (Get) 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 Get treeCopy() {
-    Get tree = (Get) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/Head.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java
deleted file mode 100644
index b325bbf0..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Head.java
+++ /dev/null
@@ -1,193 +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 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:44
- * @astdecl Head : ASTNode ::= OperationObject;
- * @production Head : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Head extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Head() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Head(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Head clone() throws CloneNotSupportedException {
-    Head node = (Head) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Head copy() {
-    try {
-      Head node = (Head) 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 Head 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 Head treeCopyNoTransform() {
-    Head tree = (Head) 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 Head treeCopy() {
-    Head tree = (Head) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/HeaderObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java
deleted file mode 100644
index a774d1de..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderObject.java
+++ /dev/null
@@ -1,706 +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 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:85
- * @astdecl HeaderObject : ASTNode ::= <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaObject] <Example:Object> ExampleTuple* ContentTuple* <Ref:String>;
- * @production HeaderObject : {@link ASTNode} ::= <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;Required:Boolean&gt;</span> <span class="component">&lt;DeprecatedBoolean:Boolean&gt;</span> <span class="component">&lt;AllowEmptyValue:Boolean&gt;</span> <span class="component">&lt;Style:String&gt;</span> <span class="component">&lt;Explode:Boolean&gt;</span> <span class="component">&lt;AllowReserved:Boolean&gt;</span> <span class="component">[{@link SchemaObject}]</span> <span class="component">&lt;Example:Object&gt;</span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">&lt;Ref:String&gt;</span>;
-
- */
-public class HeaderObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:593
-   */
-  public static Header composeHeader (HeaderObject headerObject){
-        Header header = new Header();
-
-        if( !headerObject.getRef().isEmpty() )
-        header.setRef(headerObject.getRef());
-        if( headerObject.getRequired() != null )
-        header.setRequired(headerObject.getRequired());
-        if( !headerObject.getDescription().isEmpty() )
-        header.setDescription( headerObject.getDescription() );
-        if( !headerObject.getStyle().isEmpty() )
-        header.setStyle(headerObject.getStyle());
-        if( headerObject.getExplode() != null )
-        header.setExplode(headerObject.getExplode());
-        if( headerObject.getAllowReserved() != null )
-        header.setAllowReserved(headerObject.getAllowReserved());
-        if( headerObject.getExample() != null )
-        header.setExample(headerObject.getExample());
-        if( headerObject.getNumExampleTuple() != 0 ){
-        Map<String, Example> examples = new HashMap<>();
-        for( ExampleTuple t : headerObject.getExampleTuples() )
-        examples.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject()));
-        header.setExample(examples);
-        }
-        if( headerObject.getNumContentTuple() != 0 ){
-        Map<String, MediaType> contents = new HashMap<>();
-        for( ContentTuple t : headerObject.getContentTuples() )
-        contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject()));
-        header.setContentMediaTypes(contents);
-        }
-        if( headerObject.hasSchemaObject() )
-            header.setSchema(SchemaObject.composeSchema(headerObject.getSchemaObject()));
-
-        return header;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:588
-   */
-  public static HeaderObject parseHeader(Header header){
-        HeaderObject headerObject = new HeaderObject();
-
-        if( header.isRef() )
-        headerObject.setRef(header.getRef());
-        if( header.getRequired() != null )
-        headerObject.setRequired( header.getRequired() );
-        if( header.getDescription() != null )
-        headerObject.setDescription( header.getDescription() );
-        if( header.getDeprecated() != null )
-        headerObject.setDeprecatedBoolean( header.getDeprecated() );
-        if( header.getStyle() != null )
-        headerObject.setStyle( header.getStyle() );
-        if( header.getExplode() != null )
-        headerObject.setExplode( header.getExplode() );
-        if( header.getAllowReserved() != null )
-        headerObject.setExplode( header.getAllowReserved() );
-        if( header.getExample() != null )
-        headerObject.setExample( header.getExample() );
-        if( header.getExamples() != null ){
-        for( String key : header.getExamples().keySet() )
-        headerObject.addExampleTuple(new ExampleTuple(key, ExampleObject.parseExample(header.getExample(key))));
-        }
-        if( header.getContentMediaTypes() != null ){
-        for( String key : header.getContentMediaTypes().keySet() )
-        headerObject.addContentTuple(new ContentTuple(key, MediaTypeObject.parseMediaType(header.getContentMediaType(key))));
-        }
-        if( header.getSchema() != null )
-            headerObject.setSchemaObject(SchemaObject.parseSchema(header.getSchema()));
-
-        return headerObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public HeaderObject() {
-    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() {
-    children = new ASTNode[3];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-  }
-  /**
-   * @declaredat ASTNode:16
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Description", "Required", "DeprecatedBoolean", "AllowEmptyValue", "Style", "Explode", "AllowReserved", "SchemaObject", "Example", "ExampleTuple", "ContentTuple", "Ref"},
-    type = {"String", "Boolean", "Boolean", "Boolean", "String", "Boolean", "Boolean", "Opt<SchemaObject>", "Object", "JastAddList<ExampleTuple>", "JastAddList<ContentTuple>", "String"},
-    kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "List", "List", "Token"}
-  )
-  public HeaderObject(String p0, Boolean p1, Boolean p2, Boolean p3, String p4, Boolean p5, Boolean p6, Opt<SchemaObject> p7, Object p8, JastAddList<ExampleTuple> p9, JastAddList<ContentTuple> p10, String p11) {
-    setDescription(p0);
-    setRequired(p1);
-    setDeprecatedBoolean(p2);
-    setAllowEmptyValue(p3);
-    setStyle(p4);
-    setExplode(p5);
-    setAllowReserved(p6);
-    setChild(p7, 0);
-    setExample(p8);
-    setChild(p9, 1);
-    setChild(p10, 2);
-    setRef(p11);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:36
-   */
-  protected int numChildren() {
-    return 3;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:42
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:54
-   */
-  public HeaderObject clone() throws CloneNotSupportedException {
-    HeaderObject node = (HeaderObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:59
-   */
-  public HeaderObject copy() {
-    try {
-      HeaderObject node = (HeaderObject) 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:78
-   */
-  @Deprecated
-  public HeaderObject 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:88
-   */
-  public HeaderObject treeCopyNoTransform() {
-    HeaderObject tree = (HeaderObject) 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:108
-   */
-  public HeaderObject treeCopy() {
-    HeaderObject tree = (HeaderObject) 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:122
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Description == ((HeaderObject) node).tokenString_Description) && (tokenBoolean_Required == ((HeaderObject) node).tokenBoolean_Required) && (tokenBoolean_DeprecatedBoolean == ((HeaderObject) node).tokenBoolean_DeprecatedBoolean) && (tokenBoolean_AllowEmptyValue == ((HeaderObject) node).tokenBoolean_AllowEmptyValue) && (tokenString_Style == ((HeaderObject) node).tokenString_Style) && (tokenBoolean_Explode == ((HeaderObject) node).tokenBoolean_Explode) && (tokenBoolean_AllowReserved == ((HeaderObject) node).tokenBoolean_AllowReserved) && (tokenObject_Example == ((HeaderObject) node).tokenObject_Example) && (tokenString_Ref == ((HeaderObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme Required.
-   * @param value The new value for the lexeme Required.
-   * @apilevel high-level
-   */
-  public void setRequired(Boolean value) {
-    tokenBoolean_Required = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Required;
-  /**
-   * Retrieves the value for the lexeme Required.
-   * @return The value for the lexeme Required.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Required")
-  public Boolean getRequired() {
-    return tokenBoolean_Required;
-  }
-  /**
-   * Replaces the lexeme DeprecatedBoolean.
-   * @param value The new value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  public void setDeprecatedBoolean(Boolean value) {
-    tokenBoolean_DeprecatedBoolean = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_DeprecatedBoolean;
-  /**
-   * Retrieves the value for the lexeme DeprecatedBoolean.
-   * @return The value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="DeprecatedBoolean")
-  public Boolean getDeprecatedBoolean() {
-    return tokenBoolean_DeprecatedBoolean;
-  }
-  /**
-   * Replaces the lexeme AllowEmptyValue.
-   * @param value The new value for the lexeme AllowEmptyValue.
-   * @apilevel high-level
-   */
-  public void setAllowEmptyValue(Boolean value) {
-    tokenBoolean_AllowEmptyValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AllowEmptyValue;
-  /**
-   * Retrieves the value for the lexeme AllowEmptyValue.
-   * @return The value for the lexeme AllowEmptyValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AllowEmptyValue")
-  public Boolean getAllowEmptyValue() {
-    return tokenBoolean_AllowEmptyValue;
-  }
-  /**
-   * Replaces the lexeme Style.
-   * @param value The new value for the lexeme Style.
-   * @apilevel high-level
-   */
-  public void setStyle(String value) {
-    tokenString_Style = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Style;
-  /**
-   * Retrieves the value for the lexeme Style.
-   * @return The value for the lexeme Style.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Style")
-  public String getStyle() {
-    return tokenString_Style != null ? tokenString_Style : "";
-  }
-  /**
-   * Replaces the lexeme Explode.
-   * @param value The new value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  public void setExplode(Boolean value) {
-    tokenBoolean_Explode = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Explode;
-  /**
-   * Retrieves the value for the lexeme Explode.
-   * @return The value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Explode")
-  public Boolean getExplode() {
-    return tokenBoolean_Explode;
-  }
-  /**
-   * Replaces the lexeme AllowReserved.
-   * @param value The new value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  public void setAllowReserved(Boolean value) {
-    tokenBoolean_AllowReserved = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AllowReserved;
-  /**
-   * Retrieves the value for the lexeme AllowReserved.
-   * @return The value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AllowReserved")
-  public Boolean getAllowReserved() {
-    return tokenBoolean_AllowReserved;
-  }
-  /**
-   * Replaces the optional node for the SchemaObject child. This is the <code>Opt</code>
-   * node containing the child SchemaObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the SchemaObject child.
-   * @apilevel low-level
-   */
-  public void setSchemaObjectOpt(Opt<SchemaObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) SchemaObject child.
-   * @param node The new node to be used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    getSchemaObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional SchemaObject child exists.
-   * @return {@code true} if the optional SchemaObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasSchemaObject() {
-    return getSchemaObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) SchemaObject child.
-   * @return The SchemaObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getSchemaObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the SchemaObject child. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * @return The optional node for child the SchemaObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="SchemaObject")
-  public Opt<SchemaObject> getSchemaObjectOpt() {
-    return (Opt<SchemaObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child SchemaObject. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child SchemaObject.
-   * @apilevel low-level
-   */
-  public Opt<SchemaObject> getSchemaObjectOptNoTransform() {
-    return (Opt<SchemaObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the lexeme Example.
-   * @param value The new value for the lexeme Example.
-   * @apilevel high-level
-   */
-  public void setExample(Object value) {
-    tokenObject_Example = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Example;
-  /**
-   * Retrieves the value for the lexeme Example.
-   * @return The value for the lexeme Example.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Example")
-  public Object getExample() {
-    return tokenObject_Example;
-  }
-  /**
-   * Replaces the ExampleTuple list.
-   * @param list The new list node to be used as the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void setExampleTupleList(JastAddList<ExampleTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public int getNumExampleTuple() {
-    return getExampleTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public int getNumExampleTupleNoTransform() {
-    return getExampleTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ExampleTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public ExampleTuple getExampleTuple(int i) {
-    return (ExampleTuple) getExampleTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ExampleTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExampleTuple() {
-    return getExampleTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ExampleTuple list.
-   * @param node The element to append to the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void addExampleTuple(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = (parent == null) ? getExampleTupleListNoTransform() : getExampleTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExampleTupleNoTransform(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = getExampleTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ExampleTuple 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 setExampleTuple(ExampleTuple node, int i) {
-    JastAddList<ExampleTuple> list = getExampleTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ExampleTuple")
-  public JastAddList<ExampleTuple> getExampleTupleList() {
-    JastAddList<ExampleTuple> list = (JastAddList<ExampleTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTupleListNoTransform() {
-    return (JastAddList<ExampleTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ExampleTuple list without
-   * triggering rewrites.
-   */
-  public ExampleTuple getExampleTupleNoTransform(int i) {
-    return (ExampleTuple) getExampleTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuples() {
-    return getExampleTupleList();
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuplesNoTransform() {
-    return getExampleTupleListNoTransform();
-  }
-  /**
-   * Replaces the ContentTuple list.
-   * @param list The new list node to be used as the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void setContentTupleList(JastAddList<ContentTuple> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public int getNumContentTuple() {
-    return getContentTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel low-level
-   */
-  public int getNumContentTupleNoTransform() {
-    return getContentTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ContentTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public ContentTuple getContentTuple(int i) {
-    return (ContentTuple) getContentTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ContentTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasContentTuple() {
-    return getContentTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ContentTuple list.
-   * @param node The element to append to the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void addContentTuple(ContentTuple node) {
-    JastAddList<ContentTuple> list = (parent == null) ? getContentTupleListNoTransform() : getContentTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addContentTupleNoTransform(ContentTuple node) {
-    JastAddList<ContentTuple> list = getContentTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ContentTuple 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 setContentTuple(ContentTuple node, int i) {
-    JastAddList<ContentTuple> list = getContentTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ContentTuple")
-  public JastAddList<ContentTuple> getContentTupleList() {
-    JastAddList<ContentTuple> list = (JastAddList<ContentTuple>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTupleListNoTransform() {
-    return (JastAddList<ContentTuple>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the ContentTuple list without
-   * triggering rewrites.
-   */
-  public ContentTuple getContentTupleNoTransform(int i) {
-    return (ContentTuple) getContentTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ContentTuple> getContentTuples() {
-    return getContentTupleList();
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTuplesNoTransform() {
-    return getContentTupleListNoTransform();
-  }
-  /**
-   * 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 : "";
-  }
-  /** @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/HeaderTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java
deleted file mode 100644
index 4f6b5b48..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/HeaderTuple.java
+++ /dev/null
@@ -1,214 +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 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:28
- * @astdecl HeaderTuple : ASTNode ::= <Key:String> HeaderObject;
- * @production HeaderTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link HeaderObject}</span>;
-
- */
-public class HeaderTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public HeaderTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "HeaderObject"},
-    type = {"String", "HeaderObject"},
-    kind = {"Token", "Child"}
-  )
-  public HeaderTuple(String p0, HeaderObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public HeaderTuple clone() throws CloneNotSupportedException {
-    HeaderTuple node = (HeaderTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public HeaderTuple copy() {
-    try {
-      HeaderTuple node = (HeaderTuple) 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:65
-   */
-  @Deprecated
-  public HeaderTuple 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:75
-   */
-  public HeaderTuple treeCopyNoTransform() {
-    HeaderTuple tree = (HeaderTuple) 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:95
-   */
-  public HeaderTuple treeCopy() {
-    HeaderTuple tree = (HeaderTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((HeaderTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the HeaderObject child.
-   * @param node The new node to replace the HeaderObject child.
-   * @apilevel high-level
-   */
-  public void setHeaderObject(HeaderObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the HeaderObject child.
-   * @return The current node used as the HeaderObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="HeaderObject")
-  public HeaderObject getHeaderObject() {
-    return (HeaderObject) getChild(0);
-  }
-  /**
-   * Retrieves the HeaderObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the HeaderObject child.
-   * @apilevel low-level
-   */
-  public HeaderObject getHeaderObjectNoTransform() {
-    return (HeaderObject) getChildNoTransform(0);
-  }
-  /** @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/Implicit.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java
deleted file mode 100644
index 8363ac0f..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Implicit.java
+++ /dev/null
@@ -1,193 +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 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:114
- * @astdecl Implicit : ASTNode ::= OAuthFlowObject;
- * @production Implicit : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>;
-
- */
-public class Implicit extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Implicit() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OAuthFlowObject"},
-    type = {"OAuthFlowObject"},
-    kind = {"Child"}
-  )
-  public Implicit(OAuthFlowObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Implicit clone() throws CloneNotSupportedException {
-    Implicit node = (Implicit) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Implicit copy() {
-    try {
-      Implicit node = (Implicit) 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 Implicit 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 Implicit treeCopyNoTransform() {
-    Implicit tree = (Implicit) 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 Implicit treeCopy() {
-    Implicit tree = (Implicit) 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);    
-  }
-  /**
-   * Replaces the OAuthFlowObject child.
-   * @param node The new node to replace the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  public void setOAuthFlowObject(OAuthFlowObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OAuthFlowObject")
-  public OAuthFlowObject getOAuthFlowObject() {
-    return (OAuthFlowObject) getChild(0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel low-level
-   */
-  public OAuthFlowObject getOAuthFlowObjectNoTransform() {
-    return (OAuthFlowObject) getChildNoTransform(0);
-  }
-  /** @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
deleted file mode 100644
index 07522738..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/InfoObject.java
+++ /dev/null
@@ -1,522 +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 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:5
- * @astdecl InfoObject : ASTNode ::= <Title:String> <Description:String> <TermsOfService:String> [ContactObject] [LicenseObject] <Version:String> Extension*;
- * @production InfoObject : {@link ASTNode} ::= <span class="component">&lt;Title:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;TermsOfService:String&gt;</span> <span class="component">[{@link ContactObject}]</span> <span class="component">[{@link LicenseObject}]</span> <span class="component">&lt;Version:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class InfoObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:60
-   */
-  public static Info composeInfo (InfoObject infoObject){
-        Info info = new Info();
-
-        if( !infoObject.getTitle().isEmpty() )
-            info.setTitle(infoObject.getTitle());
-        if( !infoObject.getVersion().isEmpty() )
-            info.setVersion(infoObject.getVersion());
-        if( !infoObject.getDescription().isEmpty() )
-        info.setDescription(infoObject.getDescription());
-        if( !infoObject.getTermsOfService().isEmpty() )
-        info.setTermsOfService(infoObject.getTermsOfService());
-        if( infoObject.hasContactObject() )
-        info.setContact(ContactObject.composeContact(infoObject.getContactObject()));
-        if( infoObject.hasLicenseObject() )
-        info.setLicense(LicenseObject.composeLicense(infoObject.getLicenseObject()));
-        if( infoObject.getNumExtension() != 0 ){
-        Map<String, Object> extension = new HashMap<>();
-        for( Extension e : infoObject.getExtensions() )
-        extension.put(e.getKey(), e.getValue());
-        info.setExtensions(extension);
-        }
-
-        return info;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:40
-   */
-  public static InfoObject parseInfo(Info info) {
-        InfoObject infoObject = new InfoObject();
-
-        if( info.getTitle() != null )
-            infoObject.setTitle(info.getTitle());
-        if( info.getVersion() != null )
-            infoObject.setVersion(info.getVersion());
-        if( info.getDescription() != null )
-        infoObject.setDescription(info.getDescription());
-        if( info.getTermsOfService() != null )
-        infoObject.setTermsOfService(info.getTermsOfService());
-        if( info.getContact() != null )
-        infoObject.setContactObject(ContactObject.parseContact(info.getContact()));
-        if( info.getLicense() != null )
-        infoObject.setLicenseObject(LicenseObject.parseLicense(info.getLicense()));
-        if( info.getExtensions() != null ){
-        for( String key : info.getExtensions().keySet() )
-        infoObject.addExtension(new Extension(key, info.getExtensions().get(key)));
-        }
-
-        return infoObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public InfoObject() {
-    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() {
-    children = new ASTNode[3];
-    setChild(new Opt(), 0);
-    setChild(new Opt(), 1);
-    setChild(new JastAddList(), 2);
-  }
-  /**
-   * @declaredat ASTNode:16
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Title", "Description", "TermsOfService", "ContactObject", "LicenseObject", "Version", "Extension"},
-    type = {"String", "String", "String", "Opt<ContactObject>", "Opt<LicenseObject>", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Opt", "Opt", "Token", "List"}
-  )
-  public InfoObject(String p0, String p1, String p2, Opt<ContactObject> p3, Opt<LicenseObject> p4, String p5, JastAddList<Extension> p6) {
-    setTitle(p0);
-    setDescription(p1);
-    setTermsOfService(p2);
-    setChild(p3, 0);
-    setChild(p4, 1);
-    setVersion(p5);
-    setChild(p6, 2);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:31
-   */
-  protected int numChildren() {
-    return 3;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:37
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public InfoObject clone() throws CloneNotSupportedException {
-    InfoObject node = (InfoObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:54
-   */
-  public InfoObject copy() {
-    try {
-      InfoObject node = (InfoObject) 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:73
-   */
-  @Deprecated
-  public InfoObject 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:83
-   */
-  public InfoObject treeCopyNoTransform() {
-    InfoObject tree = (InfoObject) 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:103
-   */
-  public InfoObject treeCopy() {
-    InfoObject tree = (InfoObject) 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:117
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Title == ((InfoObject) node).tokenString_Title) && (tokenString_Description == ((InfoObject) node).tokenString_Description) && (tokenString_TermsOfService == ((InfoObject) node).tokenString_TermsOfService) && (tokenString_Version == ((InfoObject) node).tokenString_Version);    
-  }
-  /**
-   * Replaces the lexeme Title.
-   * @param value The new value for the lexeme Title.
-   * @apilevel high-level
-   */
-  public void setTitle(String value) {
-    tokenString_Title = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Title;
-  /**
-   * Retrieves the value for the lexeme Title.
-   * @return The value for the lexeme Title.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Title")
-  public String getTitle() {
-    return tokenString_Title != null ? tokenString_Title : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme TermsOfService.
-   * @param value The new value for the lexeme TermsOfService.
-   * @apilevel high-level
-   */
-  public void setTermsOfService(String value) {
-    tokenString_TermsOfService = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_TermsOfService;
-  /**
-   * Retrieves the value for the lexeme TermsOfService.
-   * @return The value for the lexeme TermsOfService.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="TermsOfService")
-  public String getTermsOfService() {
-    return tokenString_TermsOfService != null ? tokenString_TermsOfService : "";
-  }
-  /**
-   * Replaces the optional node for the ContactObject child. This is the <code>Opt</code>
-   * node containing the child ContactObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ContactObject child.
-   * @apilevel low-level
-   */
-  public void setContactObjectOpt(Opt<ContactObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) ContactObject child.
-   * @param node The new node to be used as the ContactObject child.
-   * @apilevel high-level
-   */
-  public void setContactObject(ContactObject node) {
-    getContactObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ContactObject child exists.
-   * @return {@code true} if the optional ContactObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasContactObject() {
-    return getContactObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ContactObject child.
-   * @return The ContactObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ContactObject getContactObject() {
-    return (ContactObject) getContactObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ContactObject child. This is the <code>Opt</code> node containing the child ContactObject, not the actual child!
-   * @return The optional node for child the ContactObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ContactObject")
-  public Opt<ContactObject> getContactObjectOpt() {
-    return (Opt<ContactObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child ContactObject. This is the <code>Opt</code> node containing the child ContactObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ContactObject.
-   * @apilevel low-level
-   */
-  public Opt<ContactObject> getContactObjectOptNoTransform() {
-    return (Opt<ContactObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the optional node for the LicenseObject child. This is the <code>Opt</code>
-   * node containing the child LicenseObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the LicenseObject child.
-   * @apilevel low-level
-   */
-  public void setLicenseObjectOpt(Opt<LicenseObject> opt) {
-    setChild(opt, 1);
-  }
-  /**
-   * Replaces the (optional) LicenseObject child.
-   * @param node The new node to be used as the LicenseObject child.
-   * @apilevel high-level
-   */
-  public void setLicenseObject(LicenseObject node) {
-    getLicenseObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional LicenseObject child exists.
-   * @return {@code true} if the optional LicenseObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasLicenseObject() {
-    return getLicenseObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) LicenseObject child.
-   * @return The LicenseObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public LicenseObject getLicenseObject() {
-    return (LicenseObject) getLicenseObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the LicenseObject child. This is the <code>Opt</code> node containing the child LicenseObject, not the actual child!
-   * @return The optional node for child the LicenseObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="LicenseObject")
-  public Opt<LicenseObject> getLicenseObjectOpt() {
-    return (Opt<LicenseObject>) getChild(1);
-  }
-  /**
-   * Retrieves the optional node for child LicenseObject. This is the <code>Opt</code> node containing the child LicenseObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child LicenseObject.
-   * @apilevel low-level
-   */
-  public Opt<LicenseObject> getLicenseObjectOptNoTransform() {
-    return (Opt<LicenseObject>) getChildNoTransform(1);
-  }
-  /**
-   * Replaces the lexeme Version.
-   * @param value The new value for the lexeme Version.
-   * @apilevel high-level
-   */
-  public void setVersion(String value) {
-    tokenString_Version = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Version;
-  /**
-   * Retrieves the value for the lexeme Version.
-   * @return The value for the lexeme Version.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Version")
-  public String getVersion() {
-    return tokenString_Version != null ? tokenString_Version : "";
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/ItemsSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java
deleted file mode 100644
index 8456ac18..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ItemsSchema.java
+++ /dev/null
@@ -1,193 +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 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:94
- * @astdecl ItemsSchema : ASTNode ::= SchemaObject;
- * @production ItemsSchema : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class ItemsSchema extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ItemsSchema() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public ItemsSchema(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 ItemsSchema clone() throws CloneNotSupportedException {
-    ItemsSchema node = (ItemsSchema) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public ItemsSchema copy() {
-    try {
-      ItemsSchema node = (ItemsSchema) 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 ItemsSchema 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 ItemsSchema treeCopyNoTransform() {
-    ItemsSchema tree = (ItemsSchema) 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 ItemsSchema treeCopy() {
-    ItemsSchema tree = (ItemsSchema) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/JastAddList.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java
deleted file mode 100644
index 6098d9f6..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/JastAddList.java
+++ /dev/null
@@ -1,204 +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 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
- * @astdecl JastAddList : ASTNode;
- * @production JastAddList : {@link ASTNode};
-
- */
-public class JastAddList<T extends ASTNode> extends ASTNode<T> implements Cloneable, Iterable<T> {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public JastAddList() {
-    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
-   */
-  public JastAddList(T... initialChildren) {
-    children = new ASTNode[initialChildren.length];
-    for (int i = 0; i < children.length; ++i) {
-      addChild(initialChildren[i]);
-    }
-  }
-  /**
-   * @declaredat ASTNode:20
-   */
-  public JastAddList<T> add(T node) {
-    addChild(node);
-    return this;
-  }
-  /**
-   * @declaredat ASTNode:25
-   */
-  public JastAddList<T> addAll(Iterable<? extends T> c) {
-    for (T node : c) {
-      addChild(node);
-    }
-    return this;
-  }
-  /**
-   * @declaredat ASTNode:32
-   */
-  public void insertChild(ASTNode node, int i) {
-    super.insertChild(node, i);
-  }
-  /**
-   * @declaredat ASTNode:36
-   */
-  public void addChild(T node) {
-    super.addChild(node);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:41
-   */
-  public void removeChild(int i) {
-    super.removeChild(i);
-  }
-  /**
-   * @declaredat ASTNode:45
-   */
-  public int getNumChild() {
-    return getNumChildNoTransform();
-  }
-  /** @return an iterator to iterate over elements in this list node. 
-   * @declaredat ASTNode:50
-   */
-  @Override
-  public java.util.Iterator<T> iterator() {
-    return astChildIterator();
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:57
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:61
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:65
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:69
-   */
-  public JastAddList<T> clone() throws CloneNotSupportedException {
-    JastAddList node = (JastAddList) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:74
-   */
-  public JastAddList<T> copy() {
-    try {
-      JastAddList node = (JastAddList) 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:93
-   */
-  @Deprecated
-  public JastAddList<T> 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:103
-   */
-  public JastAddList<T> treeCopyNoTransform() {
-    JastAddList tree = (JastAddList) 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:123
-   */
-  public JastAddList<T> treeCopy() {
-    JastAddList tree = (JastAddList) 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:137
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node);    
-  }
-  /** @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/LicenseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java
deleted file mode 100644
index 254426f2..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LicenseObject.java
+++ /dev/null
@@ -1,235 +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 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:11
- * @astdecl LicenseObject : ASTNode ::= <Name:String> <Url:String>;
- * @production LicenseObject : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;Url:String&gt;</span>;
-
- */
-public class LicenseObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:104
-   */
-  public static License composeLicense (LicenseObject licenseObject){
-        License license = new License();
-
-        if( !licenseObject.getName().isEmpty() )
-        license.setName( licenseObject.getName() );
-        if( !licenseObject.getUrl().isEmpty() )
-        license.setUrl( licenseObject.getUrl() );
-
-        return license;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:80
-   */
-  public static LicenseObject parseLicense(License license){
-        LicenseObject licenseObject = new LicenseObject();
-
-        if( license.getName() != null )
-        licenseObject.setName( license.getName() );
-        if( license.getUrl() != null )
-        licenseObject.setUrl( license.getUrl() );
-
-        return licenseObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public LicenseObject() {
-    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 = {"Name", "Url"},
-    type = {"String", "String"},
-    kind = {"Token", "Token"}
-  )
-  public LicenseObject(String p0, String p1) {
-    setName(p0);
-    setUrl(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 LicenseObject clone() throws CloneNotSupportedException {
-    LicenseObject node = (LicenseObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public LicenseObject copy() {
-    try {
-      LicenseObject node = (LicenseObject) 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 LicenseObject 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 LicenseObject treeCopyNoTransform() {
-    LicenseObject tree = (LicenseObject) 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 LicenseObject treeCopy() {
-    LicenseObject tree = (LicenseObject) 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_Name == ((LicenseObject) node).tokenString_Name) && (tokenString_Url == ((LicenseObject) node).tokenString_Url);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme Url.
-   * @param value The new value for the lexeme Url.
-   * @apilevel high-level
-   */
-  public void setUrl(String value) {
-    tokenString_Url = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Url;
-  /**
-   * Retrieves the value for the lexeme Url.
-   * @return The value for the lexeme Url.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Url")
-  public String getUrl() {
-    return tokenString_Url != null ? tokenString_Url : "";
-  }
-  /** @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/LinkObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java
deleted file mode 100644
index fa09d646..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkObject.java
+++ /dev/null
@@ -1,577 +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 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:81
- * @astdecl LinkObject : ASTNode ::= <OperationRef:String> <OperationID:String> LinkParameterTuple* HeaderTuple* <Description:String> [ServerObject] <Ref:String>;
- * @production LinkObject : {@link ASTNode} ::= <span class="component">&lt;OperationRef:String&gt;</span> <span class="component">&lt;OperationID:String&gt;</span> <span class="component">{@link LinkParameterTuple}*</span> <span class="component">{@link HeaderTuple}*</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">[{@link ServerObject}]</span> <span class="component">&lt;Ref:String&gt;</span>;
-
- */
-public class LinkObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:570
-   */
-  public static Link composeLink (LinkObject linkObject){
-        Link link = new Link();
-
-        if( !linkObject.getRef().isEmpty() )
-        link.setRef(linkObject.getRef());
-        if( !linkObject.getOperationRef().isEmpty() )
-        link.setOperationRef( linkObject.getOperationRef() );
-        if( !linkObject.getOperationID().isEmpty() )
-        link.setOperationId( linkObject.getOperationID() );
-        if( linkObject.getNumLinkParameterTuple() != 0 ){
-        Map<String, String> parameters = new HashMap<>();
-        for( LinkParameterTuple t : linkObject.getLinkParameterTuples() )
-        parameters.put( t.getLinkParameterKey(), t.getLinkParameterValue() );
-        link.setParameters(parameters);
-        }
-        if( !linkObject.getDescription().isEmpty() )
-        link.setDescription( linkObject.getDescription() );
-        if( linkObject.hasServerObject() )
-        link.setServer( ServerObject.composeServer(linkObject.getServerObject()) );
-
-        return link;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:567
-   */
-  public static LinkObject parseLink(Link link){
-        LinkObject linkObject = new LinkObject();
-
-        if( link.isRef() )
-        linkObject.setRef(link.getRef());
-        if( link.getOperationRef() != null )
-        linkObject.setOperationRef( link.getOperationRef() );
-        if( link.getOperationId() != null )
-        linkObject.setOperationID( link.getOperationId() );
-        if( link.getParameters() != null ){
-        for( String key : link.getParameters().keySet() )
-        linkObject.addLinkParameterTuple(new LinkParameterTuple(key, link.getParameter(key)));
-        }
-        if( link.getDescription() != null )
-        linkObject.setDescription( link.getDescription() );
-        if( link.getServer() != null )
-        linkObject.setServerObject( ServerObject.parseServer(link.getServer()) );
-
-        return linkObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public LinkObject() {
-    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() {
-    children = new ASTNode[3];
-    setChild(new JastAddList(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new Opt(), 2);
-  }
-  /**
-   * @declaredat ASTNode:16
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationRef", "OperationID", "LinkParameterTuple", "HeaderTuple", "Description", "ServerObject", "Ref"},
-    type = {"String", "String", "JastAddList<LinkParameterTuple>", "JastAddList<HeaderTuple>", "String", "Opt<ServerObject>", "String"},
-    kind = {"Token", "Token", "List", "List", "Token", "Opt", "Token"}
-  )
-  public LinkObject(String p0, String p1, JastAddList<LinkParameterTuple> p2, JastAddList<HeaderTuple> p3, String p4, Opt<ServerObject> p5, String p6) {
-    setOperationRef(p0);
-    setOperationID(p1);
-    setChild(p2, 0);
-    setChild(p3, 1);
-    setDescription(p4);
-    setChild(p5, 2);
-    setRef(p6);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:31
-   */
-  protected int numChildren() {
-    return 3;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:37
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public LinkObject clone() throws CloneNotSupportedException {
-    LinkObject node = (LinkObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:54
-   */
-  public LinkObject copy() {
-    try {
-      LinkObject node = (LinkObject) 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:73
-   */
-  @Deprecated
-  public LinkObject 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:83
-   */
-  public LinkObject treeCopyNoTransform() {
-    LinkObject tree = (LinkObject) 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:103
-   */
-  public LinkObject treeCopy() {
-    LinkObject tree = (LinkObject) 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:117
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_OperationRef == ((LinkObject) node).tokenString_OperationRef) && (tokenString_OperationID == ((LinkObject) node).tokenString_OperationID) && (tokenString_Description == ((LinkObject) node).tokenString_Description) && (tokenString_Ref == ((LinkObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme OperationRef.
-   * @param value The new value for the lexeme OperationRef.
-   * @apilevel high-level
-   */
-  public void setOperationRef(String value) {
-    tokenString_OperationRef = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_OperationRef;
-  /**
-   * Retrieves the value for the lexeme OperationRef.
-   * @return The value for the lexeme OperationRef.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="OperationRef")
-  public String getOperationRef() {
-    return tokenString_OperationRef != null ? tokenString_OperationRef : "";
-  }
-  /**
-   * Replaces the lexeme OperationID.
-   * @param value The new value for the lexeme OperationID.
-   * @apilevel high-level
-   */
-  public void setOperationID(String value) {
-    tokenString_OperationID = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_OperationID;
-  /**
-   * Retrieves the value for the lexeme OperationID.
-   * @return The value for the lexeme OperationID.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="OperationID")
-  public String getOperationID() {
-    return tokenString_OperationID != null ? tokenString_OperationID : "";
-  }
-  /**
-   * Replaces the LinkParameterTuple list.
-   * @param list The new list node to be used as the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  public void setLinkParameterTupleList(JastAddList<LinkParameterTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the LinkParameterTuple list.
-   * @return Number of children in the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  public int getNumLinkParameterTuple() {
-    return getLinkParameterTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the LinkParameterTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the LinkParameterTuple list.
-   * @apilevel low-level
-   */
-  public int getNumLinkParameterTupleNoTransform() {
-    return getLinkParameterTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the LinkParameterTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  public LinkParameterTuple getLinkParameterTuple(int i) {
-    return (LinkParameterTuple) getLinkParameterTupleList().getChild(i);
-  }
-  /**
-   * Check whether the LinkParameterTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasLinkParameterTuple() {
-    return getLinkParameterTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the LinkParameterTuple list.
-   * @param node The element to append to the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  public void addLinkParameterTuple(LinkParameterTuple node) {
-    JastAddList<LinkParameterTuple> list = (parent == null) ? getLinkParameterTupleListNoTransform() : getLinkParameterTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addLinkParameterTupleNoTransform(LinkParameterTuple node) {
-    JastAddList<LinkParameterTuple> list = getLinkParameterTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the LinkParameterTuple 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 setLinkParameterTuple(LinkParameterTuple node, int i) {
-    JastAddList<LinkParameterTuple> list = getLinkParameterTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the LinkParameterTuple list.
-   * @return The node representing the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="LinkParameterTuple")
-  public JastAddList<LinkParameterTuple> getLinkParameterTupleList() {
-    JastAddList<LinkParameterTuple> list = (JastAddList<LinkParameterTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the LinkParameterTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkParameterTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkParameterTuple> getLinkParameterTupleListNoTransform() {
-    return (JastAddList<LinkParameterTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the LinkParameterTuple list without
-   * triggering rewrites.
-   */
-  public LinkParameterTuple getLinkParameterTupleNoTransform(int i) {
-    return (LinkParameterTuple) getLinkParameterTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the LinkParameterTuple list.
-   * @return The node representing the LinkParameterTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<LinkParameterTuple> getLinkParameterTuples() {
-    return getLinkParameterTupleList();
-  }
-  /**
-   * Retrieves the LinkParameterTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkParameterTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkParameterTuple> getLinkParameterTuplesNoTransform() {
-    return getLinkParameterTupleListNoTransform();
-  }
-  /**
-   * Replaces the HeaderTuple list.
-   * @param list The new list node to be used as the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void setHeaderTupleList(JastAddList<HeaderTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public int getNumHeaderTuple() {
-    return getHeaderTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public int getNumHeaderTupleNoTransform() {
-    return getHeaderTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the HeaderTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public HeaderTuple getHeaderTuple(int i) {
-    return (HeaderTuple) getHeaderTupleList().getChild(i);
-  }
-  /**
-   * Check whether the HeaderTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasHeaderTuple() {
-    return getHeaderTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the HeaderTuple list.
-   * @param node The element to append to the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void addHeaderTuple(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = (parent == null) ? getHeaderTupleListNoTransform() : getHeaderTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addHeaderTupleNoTransform(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = getHeaderTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the HeaderTuple 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 setHeaderTuple(HeaderTuple node, int i) {
-    JastAddList<HeaderTuple> list = getHeaderTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="HeaderTuple")
-  public JastAddList<HeaderTuple> getHeaderTupleList() {
-    JastAddList<HeaderTuple> list = (JastAddList<HeaderTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTupleListNoTransform() {
-    return (JastAddList<HeaderTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the HeaderTuple list without
-   * triggering rewrites.
-   */
-  public HeaderTuple getHeaderTupleNoTransform(int i) {
-    return (HeaderTuple) getHeaderTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuples() {
-    return getHeaderTupleList();
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuplesNoTransform() {
-    return getHeaderTupleListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the optional node for the ServerObject child. This is the <code>Opt</code>
-   * node containing the child ServerObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ServerObject child.
-   * @apilevel low-level
-   */
-  public void setServerObjectOpt(Opt<ServerObject> opt) {
-    setChild(opt, 2);
-  }
-  /**
-   * Replaces the (optional) ServerObject child.
-   * @param node The new node to be used as the ServerObject child.
-   * @apilevel high-level
-   */
-  public void setServerObject(ServerObject node) {
-    getServerObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ServerObject child exists.
-   * @return {@code true} if the optional ServerObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasServerObject() {
-    return getServerObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ServerObject child.
-   * @return The ServerObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ServerObject getServerObject() {
-    return (ServerObject) getServerObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ServerObject child. This is the <code>Opt</code> node containing the child ServerObject, not the actual child!
-   * @return The optional node for child the ServerObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ServerObject")
-  public Opt<ServerObject> getServerObjectOpt() {
-    return (Opt<ServerObject>) getChild(2);
-  }
-  /**
-   * Retrieves the optional node for child ServerObject. This is the <code>Opt</code> node containing the child ServerObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ServerObject.
-   * @apilevel low-level
-   */
-  public Opt<ServerObject> getServerObjectOptNoTransform() {
-    return (Opt<ServerObject>) getChildNoTransform(2);
-  }
-  /**
-   * 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 : "";
-  }
-  /** @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/LinkParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java
deleted file mode 100644
index 72712a75..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkParameterTuple.java
+++ /dev/null
@@ -1,207 +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 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:82
- * @astdecl LinkParameterTuple : ASTNode ::= <LinkParameterKey:String> <LinkParameterValue:String>;
- * @production LinkParameterTuple : {@link ASTNode} ::= <span class="component">&lt;LinkParameterKey:String&gt;</span> <span class="component">&lt;LinkParameterValue:String&gt;</span>;
-
- */
-public class LinkParameterTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public LinkParameterTuple() {
-    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 = {"LinkParameterKey", "LinkParameterValue"},
-    type = {"String", "String"},
-    kind = {"Token", "Token"}
-  )
-  public LinkParameterTuple(String p0, String p1) {
-    setLinkParameterKey(p0);
-    setLinkParameterValue(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 LinkParameterTuple clone() throws CloneNotSupportedException {
-    LinkParameterTuple node = (LinkParameterTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public LinkParameterTuple copy() {
-    try {
-      LinkParameterTuple node = (LinkParameterTuple) 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 LinkParameterTuple 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 LinkParameterTuple treeCopyNoTransform() {
-    LinkParameterTuple tree = (LinkParameterTuple) 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 LinkParameterTuple treeCopy() {
-    LinkParameterTuple tree = (LinkParameterTuple) 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_LinkParameterKey == ((LinkParameterTuple) node).tokenString_LinkParameterKey) && (tokenString_LinkParameterValue == ((LinkParameterTuple) node).tokenString_LinkParameterValue);    
-  }
-  /**
-   * Replaces the lexeme LinkParameterKey.
-   * @param value The new value for the lexeme LinkParameterKey.
-   * @apilevel high-level
-   */
-  public void setLinkParameterKey(String value) {
-    tokenString_LinkParameterKey = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_LinkParameterKey;
-  /**
-   * Retrieves the value for the lexeme LinkParameterKey.
-   * @return The value for the lexeme LinkParameterKey.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="LinkParameterKey")
-  public String getLinkParameterKey() {
-    return tokenString_LinkParameterKey != null ? tokenString_LinkParameterKey : "";
-  }
-  /**
-   * Replaces the lexeme LinkParameterValue.
-   * @param value The new value for the lexeme LinkParameterValue.
-   * @apilevel high-level
-   */
-  public void setLinkParameterValue(String value) {
-    tokenString_LinkParameterValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_LinkParameterValue;
-  /**
-   * Retrieves the value for the lexeme LinkParameterValue.
-   * @return The value for the lexeme LinkParameterValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="LinkParameterValue")
-  public String getLinkParameterValue() {
-    return tokenString_LinkParameterValue != null ? tokenString_LinkParameterValue : "";
-  }
-  /** @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/LinkTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java
deleted file mode 100644
index 2d619b68..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/LinkTuple.java
+++ /dev/null
@@ -1,214 +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 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:30
- * @astdecl LinkTuple : ASTNode ::= <Key:String> LinkObject;
- * @production LinkTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link LinkObject}</span>;
-
- */
-public class LinkTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public LinkTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "LinkObject"},
-    type = {"String", "LinkObject"},
-    kind = {"Token", "Child"}
-  )
-  public LinkTuple(String p0, LinkObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public LinkTuple clone() throws CloneNotSupportedException {
-    LinkTuple node = (LinkTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public LinkTuple copy() {
-    try {
-      LinkTuple node = (LinkTuple) 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:65
-   */
-  @Deprecated
-  public LinkTuple 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:75
-   */
-  public LinkTuple treeCopyNoTransform() {
-    LinkTuple tree = (LinkTuple) 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:95
-   */
-  public LinkTuple treeCopy() {
-    LinkTuple tree = (LinkTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((LinkTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the LinkObject child.
-   * @param node The new node to replace the LinkObject child.
-   * @apilevel high-level
-   */
-  public void setLinkObject(LinkObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the LinkObject child.
-   * @return The current node used as the LinkObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="LinkObject")
-  public LinkObject getLinkObject() {
-    return (LinkObject) getChild(0);
-  }
-  /**
-   * Retrieves the LinkObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the LinkObject child.
-   * @apilevel low-level
-   */
-  public LinkObject getLinkObjectNoTransform() {
-    return (LinkObject) getChildNoTransform(0);
-  }
-  /** @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/MappingTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java
deleted file mode 100644
index 0023f6c3..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MappingTuple.java
+++ /dev/null
@@ -1,207 +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 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:104
- * @astdecl MappingTuple : ASTNode ::= <Key:String> <Value:String>;
- * @production MappingTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">&lt;Value:String&gt;</span>;
-
- */
-public class MappingTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public MappingTuple() {
-    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 = {"Key", "Value"},
-    type = {"String", "String"},
-    kind = {"Token", "Token"}
-  )
-  public MappingTuple(String p0, String p1) {
-    setKey(p0);
-    setValue(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 MappingTuple clone() throws CloneNotSupportedException {
-    MappingTuple node = (MappingTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public MappingTuple copy() {
-    try {
-      MappingTuple node = (MappingTuple) 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 MappingTuple 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 MappingTuple treeCopyNoTransform() {
-    MappingTuple tree = (MappingTuple) 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 MappingTuple treeCopy() {
-    MappingTuple tree = (MappingTuple) 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_Key == ((MappingTuple) node).tokenString_Key) && (tokenString_Value == ((MappingTuple) node).tokenString_Value);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the lexeme Value.
-   * @param value The new value for the lexeme Value.
-   * @apilevel high-level
-   */
-  public void setValue(String value) {
-    tokenString_Value = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Value;
-  /**
-   * Retrieves the value for the lexeme Value.
-   * @return The value for the lexeme Value.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Value")
-  public String getValue() {
-    return tokenString_Value != null ? tokenString_Value : "";
-  }
-  /** @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/MediaTypeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java
deleted file mode 100644
index 3117de9c..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/MediaTypeObject.java
+++ /dev/null
@@ -1,512 +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 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:63
- * @astdecl MediaTypeObject : ASTNode ::= [SchemaObject] <Example:Object> ExampleTuple* EncodingTuple*;
- * @production MediaTypeObject : {@link ASTNode} ::= <span class="component">[{@link SchemaObject}]</span> <span class="component">&lt;Example:Object&gt;</span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link EncodingTuple}*</span>;
-
- */
-public class MediaTypeObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:459
-   */
-  public static MediaType composeMediaType (MediaTypeObject mediaTypeObject){
-        MediaType mediaType = new MediaType();
-
-        if( mediaTypeObject.getSchemaObject() != null )
-        mediaType.setSchema(SchemaObject.composeSchema(mediaTypeObject.getSchemaObject()));
-        if( mediaTypeObject.getExample() != null )
-        mediaType.setExample(mediaTypeObject.getExample());
-        if( mediaTypeObject.getNumExampleTuple() != 0 ){
-        Map<String, Example> exampleMap = new HashMap<>();
-        for( ExampleTuple t : mediaTypeObject.getExampleTuples() )
-        exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject()));
-        mediaType.setExamples(exampleMap);
-        }
-        if( mediaTypeObject.getNumEncodingTuple() != 0 ){
-        Map<String, EncodingProperty> encodingMap = new HashMap<>();
-        for( EncodingTuple t : mediaTypeObject.getEncodingTuples() )
-        encodingMap.put(t.getKey(), EncodingObject.composeEncodingProperty(t.getEncodingObject()));
-        mediaType.setEncodings(encodingMap);
-        }
-
-        return mediaType;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:474
-   */
-  public static MediaTypeObject parseMediaType(MediaType mediaType){
-        MediaTypeObject mediaTypeObject = new MediaTypeObject();
-
-        if( mediaType.getSchema() != null )
-        mediaTypeObject.setSchemaObject(SchemaObject.parseSchema(mediaType.getSchema()));
-        if( mediaType.getExample() != null )
-        mediaTypeObject.setExample(mediaType.getExample());
-        if( mediaType.getExamples() != null ){
-        for( String key : mediaType.getExamples().keySet() )
-        mediaTypeObject.addExampleTuple(new ExampleTuple(key, ExampleObject.parseExample(mediaType.getExample(key))));
-        }
-        if( mediaType.getEncodings() != null ){
-        for( String key : mediaType.getEncodings().keySet() )
-        mediaTypeObject.addEncodingTuple(new EncodingTuple(key, EncodingObject.parseEncoding(mediaType.getEncoding(key))));
-        }
-
-        return mediaTypeObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public MediaTypeObject() {
-    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() {
-    children = new ASTNode[3];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-  }
-  /**
-   * @declaredat ASTNode:16
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject", "Example", "ExampleTuple", "EncodingTuple"},
-    type = {"Opt<SchemaObject>", "Object", "JastAddList<ExampleTuple>", "JastAddList<EncodingTuple>"},
-    kind = {"Opt", "Token", "List", "List"}
-  )
-  public MediaTypeObject(Opt<SchemaObject> p0, Object p1, JastAddList<ExampleTuple> p2, JastAddList<EncodingTuple> p3) {
-    setChild(p0, 0);
-    setExample(p1);
-    setChild(p2, 1);
-    setChild(p3, 2);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:28
-   */
-  protected int numChildren() {
-    return 3;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:34
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:38
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:42
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public MediaTypeObject clone() throws CloneNotSupportedException {
-    MediaTypeObject node = (MediaTypeObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:51
-   */
-  public MediaTypeObject copy() {
-    try {
-      MediaTypeObject node = (MediaTypeObject) 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:70
-   */
-  @Deprecated
-  public MediaTypeObject 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:80
-   */
-  public MediaTypeObject treeCopyNoTransform() {
-    MediaTypeObject tree = (MediaTypeObject) 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:100
-   */
-  public MediaTypeObject treeCopy() {
-    MediaTypeObject tree = (MediaTypeObject) 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:114
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenObject_Example == ((MediaTypeObject) node).tokenObject_Example);    
-  }
-  /**
-   * Replaces the optional node for the SchemaObject child. This is the <code>Opt</code>
-   * node containing the child SchemaObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the SchemaObject child.
-   * @apilevel low-level
-   */
-  public void setSchemaObjectOpt(Opt<SchemaObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) SchemaObject child.
-   * @param node The new node to be used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    getSchemaObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional SchemaObject child exists.
-   * @return {@code true} if the optional SchemaObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasSchemaObject() {
-    return getSchemaObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) SchemaObject child.
-   * @return The SchemaObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getSchemaObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the SchemaObject child. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * @return The optional node for child the SchemaObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="SchemaObject")
-  public Opt<SchemaObject> getSchemaObjectOpt() {
-    return (Opt<SchemaObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child SchemaObject. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child SchemaObject.
-   * @apilevel low-level
-   */
-  public Opt<SchemaObject> getSchemaObjectOptNoTransform() {
-    return (Opt<SchemaObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the lexeme Example.
-   * @param value The new value for the lexeme Example.
-   * @apilevel high-level
-   */
-  public void setExample(Object value) {
-    tokenObject_Example = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Example;
-  /**
-   * Retrieves the value for the lexeme Example.
-   * @return The value for the lexeme Example.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Example")
-  public Object getExample() {
-    return tokenObject_Example;
-  }
-  /**
-   * Replaces the ExampleTuple list.
-   * @param list The new list node to be used as the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void setExampleTupleList(JastAddList<ExampleTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public int getNumExampleTuple() {
-    return getExampleTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public int getNumExampleTupleNoTransform() {
-    return getExampleTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ExampleTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public ExampleTuple getExampleTuple(int i) {
-    return (ExampleTuple) getExampleTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ExampleTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExampleTuple() {
-    return getExampleTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ExampleTuple list.
-   * @param node The element to append to the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void addExampleTuple(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = (parent == null) ? getExampleTupleListNoTransform() : getExampleTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExampleTupleNoTransform(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = getExampleTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ExampleTuple 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 setExampleTuple(ExampleTuple node, int i) {
-    JastAddList<ExampleTuple> list = getExampleTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ExampleTuple")
-  public JastAddList<ExampleTuple> getExampleTupleList() {
-    JastAddList<ExampleTuple> list = (JastAddList<ExampleTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTupleListNoTransform() {
-    return (JastAddList<ExampleTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ExampleTuple list without
-   * triggering rewrites.
-   */
-  public ExampleTuple getExampleTupleNoTransform(int i) {
-    return (ExampleTuple) getExampleTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuples() {
-    return getExampleTupleList();
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuplesNoTransform() {
-    return getExampleTupleListNoTransform();
-  }
-  /**
-   * Replaces the EncodingTuple list.
-   * @param list The new list node to be used as the EncodingTuple list.
-   * @apilevel high-level
-   */
-  public void setEncodingTupleList(JastAddList<EncodingTuple> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the EncodingTuple list.
-   * @return Number of children in the EncodingTuple list.
-   * @apilevel high-level
-   */
-  public int getNumEncodingTuple() {
-    return getEncodingTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the EncodingTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the EncodingTuple list.
-   * @apilevel low-level
-   */
-  public int getNumEncodingTupleNoTransform() {
-    return getEncodingTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the EncodingTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the EncodingTuple list.
-   * @apilevel high-level
-   */
-  public EncodingTuple getEncodingTuple(int i) {
-    return (EncodingTuple) getEncodingTupleList().getChild(i);
-  }
-  /**
-   * Check whether the EncodingTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasEncodingTuple() {
-    return getEncodingTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the EncodingTuple list.
-   * @param node The element to append to the EncodingTuple list.
-   * @apilevel high-level
-   */
-  public void addEncodingTuple(EncodingTuple node) {
-    JastAddList<EncodingTuple> list = (parent == null) ? getEncodingTupleListNoTransform() : getEncodingTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addEncodingTupleNoTransform(EncodingTuple node) {
-    JastAddList<EncodingTuple> list = getEncodingTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the EncodingTuple 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 setEncodingTuple(EncodingTuple node, int i) {
-    JastAddList<EncodingTuple> list = getEncodingTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the EncodingTuple list.
-   * @return The node representing the EncodingTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="EncodingTuple")
-  public JastAddList<EncodingTuple> getEncodingTupleList() {
-    JastAddList<EncodingTuple> list = (JastAddList<EncodingTuple>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the EncodingTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the EncodingTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<EncodingTuple> getEncodingTupleListNoTransform() {
-    return (JastAddList<EncodingTuple>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the EncodingTuple list without
-   * triggering rewrites.
-   */
-  public EncodingTuple getEncodingTupleNoTransform(int i) {
-    return (EncodingTuple) getEncodingTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the EncodingTuple list.
-   * @return The node representing the EncodingTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<EncodingTuple> getEncodingTuples() {
-    return getEncodingTupleList();
-  }
-  /**
-   * Retrieves the EncodingTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the EncodingTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<EncodingTuple> getEncodingTuplesNoTransform() {
-    return getEncodingTupleListNoTransform();
-  }
-  /** @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/NotSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java
deleted file mode 100644
index 406fa2e4..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/NotSchema.java
+++ /dev/null
@@ -1,193 +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 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:95
- * @astdecl NotSchema : ASTNode ::= SchemaObject;
- * @production NotSchema : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class NotSchema extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public NotSchema() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public NotSchema(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 NotSchema clone() throws CloneNotSupportedException {
-    NotSchema node = (NotSchema) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public NotSchema copy() {
-    try {
-      NotSchema node = (NotSchema) 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 NotSchema 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 NotSchema treeCopyNoTransform() {
-    NotSchema tree = (NotSchema) 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 NotSchema treeCopy() {
-    NotSchema tree = (NotSchema) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/OAuthFlowObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java
deleted file mode 100644
index dbf6a9cf..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowObject.java
+++ /dev/null
@@ -1,402 +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 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:120
- * @astdecl OAuthFlowObject : ASTNode ::= <AuthorizationUrl:String> <TokenUrl:String> <RefreshUrl:String> ScopesTuple* <Configuration:String>;
- * @production OAuthFlowObject : {@link ASTNode} ::= <span class="component">&lt;AuthorizationUrl:String&gt;</span> <span class="component">&lt;TokenUrl:String&gt;</span> <span class="component">&lt;RefreshUrl:String&gt;</span> <span class="component">{@link ScopesTuple}*</span> <span class="component">&lt;Configuration:String&gt;</span>;
-
- */
-public class OAuthFlowObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:829
-   */
-  public static OAuthFlow composeOAuthFlow (OAuthFlowObject oAuthFlowObject){
-        OAuthFlow oAuthFlow = new OAuthFlow();
-        Map<String, String> scopes = new HashMap<>();
-
-        if( oAuthFlowObject.getAuthorizationUrl() != null )
-        oAuthFlow.setAuthorizationUrl( oAuthFlowObject.getAuthorizationUrl() );
-        if( oAuthFlowObject.getTokenUrl() != null )
-        oAuthFlow.setTokenUrl( oAuthFlowObject.getTokenUrl() );
-        for( ScopesTuple t : oAuthFlowObject.getScopesTuples() )
-        scopes.put(t.getScopesKey(), t.getScopesValue());
-        oAuthFlow.setScopes(scopes);
-
-        if( oAuthFlowObject.getRefreshUrl() != null )
-        oAuthFlow.setRefreshUrl(oAuthFlowObject.getRefreshUrl());
-
-        return oAuthFlow;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:846
-   */
-  public static OAuthFlowObject parseOAuthFlow(OAuthFlow oAuthFlow){
-        OAuthFlowObject oAuthFlowObject = new OAuthFlowObject();
-
-        if( oAuthFlow.getAuthorizationUrl() != null )
-        oAuthFlowObject.setAuthorizationUrl( oAuthFlow.getAuthorizationUrl() );
-        if( oAuthFlow.getTokenUrl() != null )
-        oAuthFlowObject.setTokenUrl( oAuthFlow.getTokenUrl() );
-        for( String key : oAuthFlow.getScopes().keySet() )
-        oAuthFlowObject.addScopesTuple( new ScopesTuple(key, oAuthFlow.getScope(key)) );
-
-        if( oAuthFlow.getRefreshUrl() != null )
-        oAuthFlowObject.setRefreshUrl( oAuthFlow.getRefreshUrl() );
-
-        return oAuthFlowObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public OAuthFlowObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"AuthorizationUrl", "TokenUrl", "RefreshUrl", "ScopesTuple", "Configuration"},
-    type = {"String", "String", "String", "JastAddList<ScopesTuple>", "String"},
-    kind = {"Token", "Token", "Token", "List", "Token"}
-  )
-  public OAuthFlowObject(String p0, String p1, String p2, JastAddList<ScopesTuple> p3, String p4) {
-    setAuthorizationUrl(p0);
-    setTokenUrl(p1);
-    setRefreshUrl(p2);
-    setChild(p3, 0);
-    setConfiguration(p4);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:27
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:33
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public OAuthFlowObject clone() throws CloneNotSupportedException {
-    OAuthFlowObject node = (OAuthFlowObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public OAuthFlowObject copy() {
-    try {
-      OAuthFlowObject node = (OAuthFlowObject) 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:69
-   */
-  @Deprecated
-  public OAuthFlowObject 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:79
-   */
-  public OAuthFlowObject treeCopyNoTransform() {
-    OAuthFlowObject tree = (OAuthFlowObject) 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:99
-   */
-  public OAuthFlowObject treeCopy() {
-    OAuthFlowObject tree = (OAuthFlowObject) 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:113
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_AuthorizationUrl == ((OAuthFlowObject) node).tokenString_AuthorizationUrl) && (tokenString_TokenUrl == ((OAuthFlowObject) node).tokenString_TokenUrl) && (tokenString_RefreshUrl == ((OAuthFlowObject) node).tokenString_RefreshUrl) && (tokenString_Configuration == ((OAuthFlowObject) node).tokenString_Configuration);    
-  }
-  /**
-   * Replaces the lexeme AuthorizationUrl.
-   * @param value The new value for the lexeme AuthorizationUrl.
-   * @apilevel high-level
-   */
-  public void setAuthorizationUrl(String value) {
-    tokenString_AuthorizationUrl = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_AuthorizationUrl;
-  /**
-   * Retrieves the value for the lexeme AuthorizationUrl.
-   * @return The value for the lexeme AuthorizationUrl.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AuthorizationUrl")
-  public String getAuthorizationUrl() {
-    return tokenString_AuthorizationUrl != null ? tokenString_AuthorizationUrl : "";
-  }
-  /**
-   * Replaces the lexeme TokenUrl.
-   * @param value The new value for the lexeme TokenUrl.
-   * @apilevel high-level
-   */
-  public void setTokenUrl(String value) {
-    tokenString_TokenUrl = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_TokenUrl;
-  /**
-   * Retrieves the value for the lexeme TokenUrl.
-   * @return The value for the lexeme TokenUrl.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="TokenUrl")
-  public String getTokenUrl() {
-    return tokenString_TokenUrl != null ? tokenString_TokenUrl : "";
-  }
-  /**
-   * Replaces the lexeme RefreshUrl.
-   * @param value The new value for the lexeme RefreshUrl.
-   * @apilevel high-level
-   */
-  public void setRefreshUrl(String value) {
-    tokenString_RefreshUrl = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_RefreshUrl;
-  /**
-   * Retrieves the value for the lexeme RefreshUrl.
-   * @return The value for the lexeme RefreshUrl.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="RefreshUrl")
-  public String getRefreshUrl() {
-    return tokenString_RefreshUrl != null ? tokenString_RefreshUrl : "";
-  }
-  /**
-   * Replaces the ScopesTuple list.
-   * @param list The new list node to be used as the ScopesTuple list.
-   * @apilevel high-level
-   */
-  public void setScopesTupleList(JastAddList<ScopesTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the ScopesTuple list.
-   * @return Number of children in the ScopesTuple list.
-   * @apilevel high-level
-   */
-  public int getNumScopesTuple() {
-    return getScopesTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ScopesTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ScopesTuple list.
-   * @apilevel low-level
-   */
-  public int getNumScopesTupleNoTransform() {
-    return getScopesTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ScopesTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ScopesTuple list.
-   * @apilevel high-level
-   */
-  public ScopesTuple getScopesTuple(int i) {
-    return (ScopesTuple) getScopesTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ScopesTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasScopesTuple() {
-    return getScopesTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ScopesTuple list.
-   * @param node The element to append to the ScopesTuple list.
-   * @apilevel high-level
-   */
-  public void addScopesTuple(ScopesTuple node) {
-    JastAddList<ScopesTuple> list = (parent == null) ? getScopesTupleListNoTransform() : getScopesTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addScopesTupleNoTransform(ScopesTuple node) {
-    JastAddList<ScopesTuple> list = getScopesTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ScopesTuple 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 setScopesTuple(ScopesTuple node, int i) {
-    JastAddList<ScopesTuple> list = getScopesTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ScopesTuple list.
-   * @return The node representing the ScopesTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ScopesTuple")
-  public JastAddList<ScopesTuple> getScopesTupleList() {
-    JastAddList<ScopesTuple> list = (JastAddList<ScopesTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the ScopesTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ScopesTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ScopesTuple> getScopesTupleListNoTransform() {
-    return (JastAddList<ScopesTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the ScopesTuple list without
-   * triggering rewrites.
-   */
-  public ScopesTuple getScopesTupleNoTransform(int i) {
-    return (ScopesTuple) getScopesTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ScopesTuple list.
-   * @return The node representing the ScopesTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ScopesTuple> getScopesTuples() {
-    return getScopesTupleList();
-  }
-  /**
-   * Retrieves the ScopesTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ScopesTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ScopesTuple> getScopesTuplesNoTransform() {
-    return getScopesTupleListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Configuration.
-   * @param value The new value for the lexeme Configuration.
-   * @apilevel high-level
-   */
-  public void setConfiguration(String value) {
-    tokenString_Configuration = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Configuration;
-  /**
-   * Retrieves the value for the lexeme Configuration.
-   * @return The value for the lexeme Configuration.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Configuration")
-  public String getConfiguration() {
-    return tokenString_Configuration != null ? tokenString_Configuration : "";
-  }
-  /** @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/OAuthFlowsObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java
deleted file mode 100644
index 27f398fc..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OAuthFlowsObject.java
+++ /dev/null
@@ -1,431 +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 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:113
- * @astdecl OAuthFlowsObject : ASTNode ::= [Implicit] [Password] [ClientCredentials] [AuthorizationCode];
- * @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>;
-
- */
-public class OAuthFlowsObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:809
-   */
-  public static OAuthFlows composeOAuthFlows (OAuthFlowsObject oAuthFlowsObject){
-        OAuthFlows oAuthFlows = new OAuthFlows();
-
-        if( oAuthFlowsObject.hasImplicit() )
-        oAuthFlows.setImplicit( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getImplicit().getOAuthFlowObject()) );
-        if( oAuthFlowsObject.hasPassword() ){
-        //System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getAuthorizationUrl() );
-        System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getConfiguration() );
-        System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getTokenUrl() );
-        System.out.println("Password eingegangen : " + oAuthFlowsObject.getPassword().getOAuthFlowObject().getRefreshUrl() );
-        oAuthFlows.setPassword( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getPassword().getOAuthFlowObject()) );
-        }
-        if( oAuthFlowsObject.hasClientCredentials() )
-        oAuthFlows.setClientCredentials( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getClientCredentials().getOAuthFlowObject()) );
-        if( oAuthFlowsObject.hasAuthorizationCode() )
-        oAuthFlows.setAuthorizationCode( OAuthFlowObject.composeOAuthFlow(oAuthFlowsObject.getAuthorizationCode().getOAuthFlowObject()) );
-
-        return oAuthFlows;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:819
-   */
-  public static OAuthFlowsObject parseOAuthFlows(OAuthFlows oAuthFlows){
-        OAuthFlowsObject oAuthFlowsObject = new OAuthFlowsObject();
-        Implicit implicit = new Implicit();
-        Password password = new Password();
-        ClientCredentials clientCredentials = new ClientCredentials();
-        AuthorizationCode authorizationCode = new AuthorizationCode();
-
-        if( oAuthFlows.getImplicit() != null ){
-        implicit.setOAuthFlowObject( OAuthFlowObject.parseOAuthFlow(oAuthFlows.getImplicit()) );
-        oAuthFlowsObject.setImplicit(implicit);
-        }
-        if( oAuthFlows.getPassword() != null ){
-            password.setOAuthFlowObject(OAuthFlowObject.parseOAuthFlow(oAuthFlows.getPassword()));
-            oAuthFlowsObject.setPassword(password);
-        }
-        if( oAuthFlows.getClientCredentials() != null ){
-        clientCredentials.setOAuthFlowObject(OAuthFlowObject.parseOAuthFlow(oAuthFlows.getClientCredentials()));
-        oAuthFlowsObject.setClientCredentials(clientCredentials);
-        }
-        if( oAuthFlows.getAuthorizationCode() != null ){
-        authorizationCode.setOAuthFlowObject(OAuthFlowObject.parseOAuthFlow(oAuthFlows.getAuthorizationCode()));
-        oAuthFlowsObject.setAuthorizationCode(authorizationCode);
-        }
-
-        return oAuthFlowsObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public OAuthFlowsObject() {
-    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() {
-    children = new ASTNode[4];
-    setChild(new Opt(), 0);
-    setChild(new Opt(), 1);
-    setChild(new Opt(), 2);
-    setChild(new Opt(), 3);
-  }
-  /**
-   * @declaredat ASTNode:17
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Implicit", "Password", "ClientCredentials", "AuthorizationCode"},
-    type = {"Opt<Implicit>", "Opt<Password>", "Opt<ClientCredentials>", "Opt<AuthorizationCode>"},
-    kind = {"Opt", "Opt", "Opt", "Opt"}
-  )
-  public OAuthFlowsObject(Opt<Implicit> p0, Opt<Password> p1, Opt<ClientCredentials> p2, Opt<AuthorizationCode> p3) {
-    setChild(p0, 0);
-    setChild(p1, 1);
-    setChild(p2, 2);
-    setChild(p3, 3);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:29
-   */
-  protected int numChildren() {
-    return 4;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:35
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:47
-   */
-  public OAuthFlowsObject clone() throws CloneNotSupportedException {
-    OAuthFlowsObject node = (OAuthFlowsObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:52
-   */
-  public OAuthFlowsObject copy() {
-    try {
-      OAuthFlowsObject node = (OAuthFlowsObject) 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:71
-   */
-  @Deprecated
-  public OAuthFlowsObject 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:81
-   */
-  public OAuthFlowsObject treeCopyNoTransform() {
-    OAuthFlowsObject tree = (OAuthFlowsObject) 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:101
-   */
-  public OAuthFlowsObject treeCopy() {
-    OAuthFlowsObject tree = (OAuthFlowsObject) 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:115
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node);    
-  }
-  /**
-   * Replaces the optional node for the Implicit child. This is the <code>Opt</code>
-   * node containing the child Implicit, not the actual child!
-   * @param opt The new node to be used as the optional node for the Implicit child.
-   * @apilevel low-level
-   */
-  public void setImplicitOpt(Opt<Implicit> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) Implicit child.
-   * @param node The new node to be used as the Implicit child.
-   * @apilevel high-level
-   */
-  public void setImplicit(Implicit node) {
-    getImplicitOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Implicit child exists.
-   * @return {@code true} if the optional Implicit child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasImplicit() {
-    return getImplicitOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Implicit child.
-   * @return The Implicit child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Implicit getImplicit() {
-    return (Implicit) getImplicitOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Implicit child. This is the <code>Opt</code> node containing the child Implicit, not the actual child!
-   * @return The optional node for child the Implicit child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Implicit")
-  public Opt<Implicit> getImplicitOpt() {
-    return (Opt<Implicit>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child Implicit. This is the <code>Opt</code> node containing the child Implicit, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Implicit.
-   * @apilevel low-level
-   */
-  public Opt<Implicit> getImplicitOptNoTransform() {
-    return (Opt<Implicit>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the optional node for the Password child. This is the <code>Opt</code>
-   * node containing the child Password, not the actual child!
-   * @param opt The new node to be used as the optional node for the Password child.
-   * @apilevel low-level
-   */
-  public void setPasswordOpt(Opt<Password> opt) {
-    setChild(opt, 1);
-  }
-  /**
-   * Replaces the (optional) Password child.
-   * @param node The new node to be used as the Password child.
-   * @apilevel high-level
-   */
-  public void setPassword(Password node) {
-    getPasswordOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Password child exists.
-   * @return {@code true} if the optional Password child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasPassword() {
-    return getPasswordOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Password child.
-   * @return The Password child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Password getPassword() {
-    return (Password) getPasswordOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Password child. This is the <code>Opt</code> node containing the child Password, not the actual child!
-   * @return The optional node for child the Password child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Password")
-  public Opt<Password> getPasswordOpt() {
-    return (Opt<Password>) getChild(1);
-  }
-  /**
-   * Retrieves the optional node for child Password. This is the <code>Opt</code> node containing the child Password, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Password.
-   * @apilevel low-level
-   */
-  public Opt<Password> getPasswordOptNoTransform() {
-    return (Opt<Password>) getChildNoTransform(1);
-  }
-  /**
-   * Replaces the optional node for the ClientCredentials child. This is the <code>Opt</code>
-   * node containing the child ClientCredentials, not the actual child!
-   * @param opt The new node to be used as the optional node for the ClientCredentials child.
-   * @apilevel low-level
-   */
-  public void setClientCredentialsOpt(Opt<ClientCredentials> opt) {
-    setChild(opt, 2);
-  }
-  /**
-   * Replaces the (optional) ClientCredentials child.
-   * @param node The new node to be used as the ClientCredentials child.
-   * @apilevel high-level
-   */
-  public void setClientCredentials(ClientCredentials node) {
-    getClientCredentialsOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ClientCredentials child exists.
-   * @return {@code true} if the optional ClientCredentials child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasClientCredentials() {
-    return getClientCredentialsOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ClientCredentials child.
-   * @return The ClientCredentials child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ClientCredentials getClientCredentials() {
-    return (ClientCredentials) getClientCredentialsOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ClientCredentials child. This is the <code>Opt</code> node containing the child ClientCredentials, not the actual child!
-   * @return The optional node for child the ClientCredentials child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ClientCredentials")
-  public Opt<ClientCredentials> getClientCredentialsOpt() {
-    return (Opt<ClientCredentials>) getChild(2);
-  }
-  /**
-   * Retrieves the optional node for child ClientCredentials. This is the <code>Opt</code> node containing the child ClientCredentials, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ClientCredentials.
-   * @apilevel low-level
-   */
-  public Opt<ClientCredentials> getClientCredentialsOptNoTransform() {
-    return (Opt<ClientCredentials>) getChildNoTransform(2);
-  }
-  /**
-   * Replaces the optional node for the AuthorizationCode child. This is the <code>Opt</code>
-   * node containing the child AuthorizationCode, not the actual child!
-   * @param opt The new node to be used as the optional node for the AuthorizationCode child.
-   * @apilevel low-level
-   */
-  public void setAuthorizationCodeOpt(Opt<AuthorizationCode> opt) {
-    setChild(opt, 3);
-  }
-  /**
-   * Replaces the (optional) AuthorizationCode child.
-   * @param node The new node to be used as the AuthorizationCode child.
-   * @apilevel high-level
-   */
-  public void setAuthorizationCode(AuthorizationCode node) {
-    getAuthorizationCodeOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional AuthorizationCode child exists.
-   * @return {@code true} if the optional AuthorizationCode child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasAuthorizationCode() {
-    return getAuthorizationCodeOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) AuthorizationCode child.
-   * @return The AuthorizationCode child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public AuthorizationCode getAuthorizationCode() {
-    return (AuthorizationCode) getAuthorizationCodeOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the AuthorizationCode child. This is the <code>Opt</code> node containing the child AuthorizationCode, not the actual child!
-   * @return The optional node for child the AuthorizationCode child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="AuthorizationCode")
-  public Opt<AuthorizationCode> getAuthorizationCodeOpt() {
-    return (Opt<AuthorizationCode>) getChild(3);
-  }
-  /**
-   * Retrieves the optional node for child AuthorizationCode. This is the <code>Opt</code> node containing the child AuthorizationCode, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child AuthorizationCode.
-   * @apilevel low-level
-   */
-  public Opt<AuthorizationCode> getAuthorizationCodeOptNoTransform() {
-    return (Opt<AuthorizationCode>) getChildNoTransform(3);
-  }
-  /** @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/OneOfSchema.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java
deleted file mode 100644
index ac7c1577..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OneOfSchema.java
+++ /dev/null
@@ -1,193 +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 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:100
- * @astdecl OneOfSchema : ASTNode ::= SchemaObject;
- * @production OneOfSchema : {@link ASTNode} ::= <span class="component">{@link SchemaObject}</span>;
-
- */
-public class OneOfSchema extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public OneOfSchema() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SchemaObject"},
-    type = {"SchemaObject"},
-    kind = {"Child"}
-  )
-  public OneOfSchema(SchemaObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 OneOfSchema clone() throws CloneNotSupportedException {
-    OneOfSchema node = (OneOfSchema) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public OneOfSchema copy() {
-    try {
-      OneOfSchema node = (OneOfSchema) 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 OneOfSchema 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 OneOfSchema treeCopyNoTransform() {
-    OneOfSchema tree = (OneOfSchema) 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 OneOfSchema treeCopy() {
-    OneOfSchema tree = (OneOfSchema) 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);    
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/OpenAPIObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
deleted file mode 100644
index c9ad5f3c..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
+++ /dev/null
@@ -1,1028 +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 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:2
- * @astdecl OpenAPIObject : ASTNode ::= <OpenAPI:String> [InfoObject] ServerObject* PathsObject* [ComponentsObject] SecurityRequirementObject* TagObject* [ExternalDocObject] <Context:OAIContext> Extension*;
- * @production OpenAPIObject : {@link ASTNode} ::= <span class="component">&lt;OpenAPI:String&gt;</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">&lt;Context:OAIContext&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class OpenAPIObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:13
-   */
-  public static OpenApi3 composeOpenAPI (OpenAPIObject openapi){
-        OpenApi3 api3 = new OpenApi3();
-
-        if( !openapi.getOpenAPI().isEmpty() )
-        api3.setOpenapi(openapi.getOpenAPI());
-        if( openapi.hasInfoObject() )
-        api3.setInfo(InfoObject.composeInfo(openapi.getInfoObject()));
-        if( openapi.getNumServerObject() != 0 ){
-        List<org.openapi4j.parser.model.v3.Server> servers = new ArrayList<>();
-        for( ServerObject s : openapi.getServerObjects() )
-        servers.add(ServerObject.composeServer(s));
-        api3.setServers(servers);
-        }
-        if( openapi.getNumPathsObject() != 0 ){
-        Map<String, Path> paths = new HashMap<>();
-        for( PathsObject p : openapi.getPathsObjects() )
-        paths.put( p.getRef(), PathItem.composePath(p.getPathItem()) );
-        api3.setPaths(paths);
-        }
-        if( openapi.hasComponentsObject() )
-        api3.setComponents( ComponentsObject.composeComponents(openapi.getComponentsObject()) );
-        if( openapi.getNumSecurityRequirementObject() != 0 ){
-        List<SecurityRequirement> securityRequirements = new ArrayList<>();
-        for( SecurityRequirementObject s : openapi.getSecurityRequirementObjects() )
-        securityRequirements.add( SecurityRequirementObject.composeSecurityRequirement( s ) );
-        api3.setSecurityRequirements(securityRequirements);
-        }
-        if( openapi.getNumTagObject() != 0 ){
-        List<org.openapi4j.parser.model.v3.Tag> tags = new ArrayList<>();
-        for( TagObject t : openapi.getTagObjects() )
-        tags.add( TagObject.composeTag(t) );
-        api3.setTags( tags );
-        }
-        if( openapi.hasExternalDocObject() )
-        api3.setExternalDocs(ExternalDocObject.composeExternalDocs(openapi.getExternalDocObject()));
-        if( openapi.getContext() != null )
-        api3.setContext(openapi.getContext());
-        if( openapi.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : openapi.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        api3.setExtensions(extensionMap);
-        }
-
-        return api3;
-        }
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:12
-   */
-  public void generateRequests() throws Exception {
-        String baseUrl = this.getServerObject(0).getUrl();
-
-        for( PathsObject p : this.getPathsObjects() )
-        p.sendRandomRequests(baseUrl);
-
-    }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:3
-   */
-  public static OpenAPIObject parseOpenAPI(OpenApi3 api) throws IOException, ResolutionException, ValidationException {
-        OpenAPIObject openapi = new OpenAPIObject();
-
-        if( api.getOpenapi() != null )
-        openapi.setOpenAPI(api.getOpenapi());
-        if( api.getInfo() != null )
-        openapi.setInfoObject(InfoObject.parseInfo(api.getInfo()));
-        if( api.getPaths() != null ){
-        for( String key : api.getPaths().keySet() )
-        openapi.addPathsObject(new PathsObject( key, PathItem.parsePath(api.getPath(key))));
-        }
-        if( api.getServers() != null ){
-        for( Server s : api.getServers() )
-        openapi.addServerObject(ServerObject.parseServer(s));
-        }
-        if( api.getComponents() != null )
-        openapi.setComponentsObject(ComponentsObject.parseComponents(api.getComponents()));
-        if( api.getSecurityRequirements() != null ){
-        for( SecurityRequirement s : api.getSecurityRequirements() )
-        openapi.addSecurityRequirementObject(SecurityRequirementObject.parseSecurityRequirement(s));
-        }
-        if( api.getTags() != null ){
-        for( org.openapi4j.parser.model.v3.Tag t : api.getTags() )
-        openapi.addTagObject(TagObject.parseTag(t));
-        }
-        if( api.getExternalDocs() != null )
-        openapi.setExternalDocObject(ExternalDocObject.parseExternalDocs(api.getExternalDocs()));
-        if( api.getContext() != null )
-        openapi.setContext(api.getContext());
-        if( api.getExtensions() != null ){
-        for( String key : api.getExtensions().keySet() )
-        openapi.addExtension(new Extension(key, api.getExtensions().get(key)));
-        }
-
-        return openapi;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public OpenAPIObject() {
-    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() {
-    children = new ASTNode[8];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-    setChild(new Opt(), 3);
-    setChild(new JastAddList(), 4);
-    setChild(new JastAddList(), 5);
-    setChild(new Opt(), 6);
-    setChild(new JastAddList(), 7);
-  }
-  /**
-   * @declaredat ASTNode:21
-   */
-  @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"}
-  )
-  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) {
-    setOpenAPI(p0);
-    setChild(p1, 0);
-    setChild(p2, 1);
-    setChild(p3, 2);
-    setChild(p4, 3);
-    setChild(p5, 4);
-    setChild(p6, 5);
-    setChild(p7, 6);
-    setContext(p8);
-    setChild(p9, 7);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:39
-   */
-  protected int numChildren() {
-    return 8;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:45
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:53
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:57
-   */
-  public OpenAPIObject clone() throws CloneNotSupportedException {
-    OpenAPIObject node = (OpenAPIObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:62
-   */
-  public OpenAPIObject copy() {
-    try {
-      OpenAPIObject node = (OpenAPIObject) 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:81
-   */
-  @Deprecated
-  public OpenAPIObject 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:91
-   */
-  public OpenAPIObject treeCopyNoTransform() {
-    OpenAPIObject tree = (OpenAPIObject) 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:111
-   */
-  public OpenAPIObject treeCopy() {
-    OpenAPIObject tree = (OpenAPIObject) 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:125
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_OpenAPI == ((OpenAPIObject) node).tokenString_OpenAPI) && (tokenOAIContext_Context == ((OpenAPIObject) node).tokenOAIContext_Context);    
-  }
-  /**
-   * Replaces the lexeme OpenAPI.
-   * @param value The new value for the lexeme OpenAPI.
-   * @apilevel high-level
-   */
-  public void setOpenAPI(String value) {
-    tokenString_OpenAPI = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_OpenAPI;
-  /**
-   * Retrieves the value for the lexeme OpenAPI.
-   * @return The value for the lexeme OpenAPI.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="OpenAPI")
-  public String getOpenAPI() {
-    return tokenString_OpenAPI != null ? tokenString_OpenAPI : "";
-  }
-  /**
-   * Replaces the optional node for the InfoObject child. This is the <code>Opt</code>
-   * node containing the child InfoObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the InfoObject child.
-   * @apilevel low-level
-   */
-  public void setInfoObjectOpt(Opt<InfoObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) InfoObject child.
-   * @param node The new node to be used as the InfoObject child.
-   * @apilevel high-level
-   */
-  public void setInfoObject(InfoObject node) {
-    getInfoObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional InfoObject child exists.
-   * @return {@code true} if the optional InfoObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasInfoObject() {
-    return getInfoObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) InfoObject child.
-   * @return The InfoObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public InfoObject getInfoObject() {
-    return (InfoObject) getInfoObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the InfoObject child. This is the <code>Opt</code> node containing the child InfoObject, not the actual child!
-   * @return The optional node for child the InfoObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="InfoObject")
-  public Opt<InfoObject> getInfoObjectOpt() {
-    return (Opt<InfoObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child InfoObject. This is the <code>Opt</code> node containing the child InfoObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child InfoObject.
-   * @apilevel low-level
-   */
-  public Opt<InfoObject> getInfoObjectOptNoTransform() {
-    return (Opt<InfoObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the ServerObject list.
-   * @param list The new list node to be used as the ServerObject list.
-   * @apilevel high-level
-   */
-  public void setServerObjectList(JastAddList<ServerObject> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * @return Number of children in the ServerObject list.
-   * @apilevel high-level
-   */
-  public int getNumServerObject() {
-    return getServerObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ServerObject list.
-   * @apilevel low-level
-   */
-  public int getNumServerObjectNoTransform() {
-    return getServerObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ServerObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ServerObject list.
-   * @apilevel high-level
-   */
-  public ServerObject getServerObject(int i) {
-    return (ServerObject) getServerObjectList().getChild(i);
-  }
-  /**
-   * Check whether the ServerObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasServerObject() {
-    return getServerObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ServerObject list.
-   * @param node The element to append to the ServerObject list.
-   * @apilevel high-level
-   */
-  public void addServerObject(ServerObject node) {
-    JastAddList<ServerObject> list = (parent == null) ? getServerObjectListNoTransform() : getServerObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addServerObjectNoTransform(ServerObject node) {
-    JastAddList<ServerObject> list = getServerObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ServerObject 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 setServerObject(ServerObject node, int i) {
-    JastAddList<ServerObject> list = getServerObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ServerObject")
-  public JastAddList<ServerObject> getServerObjectList() {
-    JastAddList<ServerObject> list = (JastAddList<ServerObject>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectListNoTransform() {
-    return (JastAddList<ServerObject>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ServerObject list without
-   * triggering rewrites.
-   */
-  public ServerObject getServerObjectNoTransform(int i) {
-    return (ServerObject) getServerObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<ServerObject> getServerObjects() {
-    return getServerObjectList();
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectsNoTransform() {
-    return getServerObjectListNoTransform();
-  }
-  /**
-   * Replaces the PathsObject list.
-   * @param list The new list node to be used as the PathsObject list.
-   * @apilevel high-level
-   */
-  public void setPathsObjectList(JastAddList<PathsObject> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the PathsObject list.
-   * @return Number of children in the PathsObject list.
-   * @apilevel high-level
-   */
-  public int getNumPathsObject() {
-    return getPathsObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the PathsObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the PathsObject list.
-   * @apilevel low-level
-   */
-  public int getNumPathsObjectNoTransform() {
-    return getPathsObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the PathsObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the PathsObject list.
-   * @apilevel high-level
-   */
-  public PathsObject getPathsObject(int i) {
-    return (PathsObject) getPathsObjectList().getChild(i);
-  }
-  /**
-   * Check whether the PathsObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasPathsObject() {
-    return getPathsObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the PathsObject list.
-   * @param node The element to append to the PathsObject list.
-   * @apilevel high-level
-   */
-  public void addPathsObject(PathsObject node) {
-    JastAddList<PathsObject> list = (parent == null) ? getPathsObjectListNoTransform() : getPathsObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addPathsObjectNoTransform(PathsObject node) {
-    JastAddList<PathsObject> list = getPathsObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the PathsObject 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 setPathsObject(PathsObject node, int i) {
-    JastAddList<PathsObject> list = getPathsObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the PathsObject list.
-   * @return The node representing the PathsObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="PathsObject")
-  public JastAddList<PathsObject> getPathsObjectList() {
-    JastAddList<PathsObject> list = (JastAddList<PathsObject>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the PathsObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the PathsObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<PathsObject> getPathsObjectListNoTransform() {
-    return (JastAddList<PathsObject>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the PathsObject list without
-   * triggering rewrites.
-   */
-  public PathsObject getPathsObjectNoTransform(int i) {
-    return (PathsObject) getPathsObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the PathsObject list.
-   * @return The node representing the PathsObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<PathsObject> getPathsObjects() {
-    return getPathsObjectList();
-  }
-  /**
-   * Retrieves the PathsObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the PathsObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<PathsObject> getPathsObjectsNoTransform() {
-    return getPathsObjectListNoTransform();
-  }
-  /**
-   * Replaces the optional node for the ComponentsObject child. This is the <code>Opt</code>
-   * node containing the child ComponentsObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ComponentsObject child.
-   * @apilevel low-level
-   */
-  public void setComponentsObjectOpt(Opt<ComponentsObject> opt) {
-    setChild(opt, 3);
-  }
-  /**
-   * Replaces the (optional) ComponentsObject child.
-   * @param node The new node to be used as the ComponentsObject child.
-   * @apilevel high-level
-   */
-  public void setComponentsObject(ComponentsObject node) {
-    getComponentsObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ComponentsObject child exists.
-   * @return {@code true} if the optional ComponentsObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasComponentsObject() {
-    return getComponentsObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ComponentsObject child.
-   * @return The ComponentsObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ComponentsObject getComponentsObject() {
-    return (ComponentsObject) getComponentsObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ComponentsObject child. This is the <code>Opt</code> node containing the child ComponentsObject, not the actual child!
-   * @return The optional node for child the ComponentsObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ComponentsObject")
-  public Opt<ComponentsObject> getComponentsObjectOpt() {
-    return (Opt<ComponentsObject>) getChild(3);
-  }
-  /**
-   * Retrieves the optional node for child ComponentsObject. This is the <code>Opt</code> node containing the child ComponentsObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ComponentsObject.
-   * @apilevel low-level
-   */
-  public Opt<ComponentsObject> getComponentsObjectOptNoTransform() {
-    return (Opt<ComponentsObject>) getChildNoTransform(3);
-  }
-  /**
-   * Replaces the SecurityRequirementObject list.
-   * @param list The new list node to be used as the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public void setSecurityRequirementObjectList(JastAddList<SecurityRequirementObject> list) {
-    setChild(list, 4);
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementObject list.
-   * @return Number of children in the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public int getNumSecurityRequirementObject() {
-    return getSecurityRequirementObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public int getNumSecurityRequirementObjectNoTransform() {
-    return getSecurityRequirementObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SecurityRequirementObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public SecurityRequirementObject getSecurityRequirementObject(int i) {
-    return (SecurityRequirementObject) getSecurityRequirementObjectList().getChild(i);
-  }
-  /**
-   * Check whether the SecurityRequirementObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSecurityRequirementObject() {
-    return getSecurityRequirementObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SecurityRequirementObject list.
-   * @param node The element to append to the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public void addSecurityRequirementObject(SecurityRequirementObject node) {
-    JastAddList<SecurityRequirementObject> list = (parent == null) ? getSecurityRequirementObjectListNoTransform() : getSecurityRequirementObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSecurityRequirementObjectNoTransform(SecurityRequirementObject node) {
-    JastAddList<SecurityRequirementObject> list = getSecurityRequirementObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SecurityRequirementObject 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 setSecurityRequirementObject(SecurityRequirementObject node, int i) {
-    JastAddList<SecurityRequirementObject> list = getSecurityRequirementObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SecurityRequirementObject")
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectList() {
-    JastAddList<SecurityRequirementObject> list = (JastAddList<SecurityRequirementObject>) getChild(4);
-    return list;
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectListNoTransform() {
-    return (JastAddList<SecurityRequirementObject>) getChildNoTransform(4);
-  }
-  /**
-   * @return the element at index {@code i} in the SecurityRequirementObject list without
-   * triggering rewrites.
-   */
-  public SecurityRequirementObject getSecurityRequirementObjectNoTransform(int i) {
-    return (SecurityRequirementObject) getSecurityRequirementObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjects() {
-    return getSecurityRequirementObjectList();
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectsNoTransform() {
-    return getSecurityRequirementObjectListNoTransform();
-  }
-  /**
-   * Replaces the TagObject list.
-   * @param list The new list node to be used as the TagObject list.
-   * @apilevel high-level
-   */
-  public void setTagObjectList(JastAddList<TagObject> list) {
-    setChild(list, 5);
-  }
-  /**
-   * Retrieves the number of children in the TagObject list.
-   * @return Number of children in the TagObject list.
-   * @apilevel high-level
-   */
-  public int getNumTagObject() {
-    return getTagObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the TagObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the TagObject list.
-   * @apilevel low-level
-   */
-  public int getNumTagObjectNoTransform() {
-    return getTagObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the TagObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the TagObject list.
-   * @apilevel high-level
-   */
-  public TagObject getTagObject(int i) {
-    return (TagObject) getTagObjectList().getChild(i);
-  }
-  /**
-   * Check whether the TagObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasTagObject() {
-    return getTagObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the TagObject list.
-   * @param node The element to append to the TagObject list.
-   * @apilevel high-level
-   */
-  public void addTagObject(TagObject node) {
-    JastAddList<TagObject> list = (parent == null) ? getTagObjectListNoTransform() : getTagObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addTagObjectNoTransform(TagObject node) {
-    JastAddList<TagObject> list = getTagObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the TagObject 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 setTagObject(TagObject node, int i) {
-    JastAddList<TagObject> list = getTagObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the TagObject list.
-   * @return The node representing the TagObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="TagObject")
-  public JastAddList<TagObject> getTagObjectList() {
-    JastAddList<TagObject> list = (JastAddList<TagObject>) getChild(5);
-    return list;
-  }
-  /**
-   * Retrieves the TagObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the TagObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<TagObject> getTagObjectListNoTransform() {
-    return (JastAddList<TagObject>) getChildNoTransform(5);
-  }
-  /**
-   * @return the element at index {@code i} in the TagObject list without
-   * triggering rewrites.
-   */
-  public TagObject getTagObjectNoTransform(int i) {
-    return (TagObject) getTagObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the TagObject list.
-   * @return The node representing the TagObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<TagObject> getTagObjects() {
-    return getTagObjectList();
-  }
-  /**
-   * Retrieves the TagObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the TagObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<TagObject> getTagObjectsNoTransform() {
-    return getTagObjectListNoTransform();
-  }
-  /**
-   * Replaces the optional node for the ExternalDocObject child. This is the <code>Opt</code>
-   * node containing the child ExternalDocObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  public void setExternalDocObjectOpt(Opt<ExternalDocObject> opt) {
-    setChild(opt, 6);
-  }
-  /**
-   * Replaces the (optional) ExternalDocObject child.
-   * @param node The new node to be used as the ExternalDocObject child.
-   * @apilevel high-level
-   */
-  public void setExternalDocObject(ExternalDocObject node) {
-    getExternalDocObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ExternalDocObject child exists.
-   * @return {@code true} if the optional ExternalDocObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasExternalDocObject() {
-    return getExternalDocObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ExternalDocObject child.
-   * @return The ExternalDocObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ExternalDocObject getExternalDocObject() {
-    return (ExternalDocObject) getExternalDocObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ExternalDocObject child. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * @return The optional node for child the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ExternalDocObject")
-  public Opt<ExternalDocObject> getExternalDocObjectOpt() {
-    return (Opt<ExternalDocObject>) getChild(6);
-  }
-  /**
-   * Retrieves the optional node for child ExternalDocObject. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ExternalDocObject.
-   * @apilevel low-level
-   */
-  public Opt<ExternalDocObject> getExternalDocObjectOptNoTransform() {
-    return (Opt<ExternalDocObject>) getChildNoTransform(6);
-  }
-  /**
-   * Replaces the lexeme Context.
-   * @param value The new value for the lexeme Context.
-   * @apilevel high-level
-   */
-  public void setContext(OAIContext value) {
-    tokenOAIContext_Context = value;
-  }
-  /** @apilevel internal 
-   */
-  protected OAIContext tokenOAIContext_Context;
-  /**
-   * Retrieves the value for the lexeme Context.
-   * @return The value for the lexeme Context.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Context")
-  public OAIContext getContext() {
-    return tokenOAIContext_Context;
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 7);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(7);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(7);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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
deleted file mode 100644
index 641cb06a..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OperationObject.java
+++ /dev/null
@@ -1,1415 +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 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:49
- * @astdecl OperationObject : ASTNode ::= Tag* <Summary:String> <Description:String> [ExternalDocObject] <OperationID:String> ParameterObject* [RequestBodyObject] ResponseTuple* CallbackTuple* <DeprecatedBoolean:Boolean> SecurityRequirementObject* ServerObject* <Required:Boolean> Extension*;
- * @production OperationObject : {@link ASTNode} ::= <span class="component">{@link Tag}*</span> <span class="component">&lt;Summary:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component">&lt;OperationID:String&gt;</span> <span class="component">{@link ParameterObject}*</span> <span class="component">[{@link RequestBodyObject}]</span> <span class="component">{@link ResponseTuple}*</span> <span class="component">{@link CallbackTuple}*</span> <span class="component">&lt;DeprecatedBoolean:Boolean&gt;</span> <span class="component">{@link SecurityRequirementObject}*</span> <span class="component">{@link ServerObject}*</span> <span class="component">&lt;Required:Boolean&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class OperationObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:314
-   */
-  public static Operation composeOperation (OperationObject operationObject){
-        Operation operation = new Operation();
-
-        if( operationObject.getNumTag() != 0 ){
-        for( de.tudresden.inf.st.openapi.ast.Tag t : operationObject.getTags() )
-        operation.addTag(t.getTag());
-        }
-        if( !operationObject.getSummary().isEmpty() )
-        operation.setSummary( operationObject.getSummary() );
-        if( !operationObject.getDescription().isEmpty() )
-        operation.setDescription( operationObject.getDescription() );
-        if( operationObject.hasExternalDocObject() )
-        operation.setExternalDocs( ExternalDocObject.composeExternalDocs(operationObject.getExternalDocObject()) );
-        if( !operationObject.getOperationID().isEmpty() )
-        operation.setOperationId( operationObject.getOperationID() );
-        if( operationObject.getNumParameterObject() != 0 ){
-        for( ParameterObject p : operationObject.getParameterObjects() )
-        operation.addParameter( ParameterObject.composeParameter(p) );
-        }
-        if( operationObject.hasRequestBodyObject() )
-        operation.setRequestBody( RequestBodyObject.composeRequestBody(operationObject.getRequestBodyObject()));
-        if( operationObject.getNumResponseTuple() != 0){
-        Map<String, Response> responseMap = new HashMap<>();
-        for( ResponseTuple t : operationObject.getResponseTuples() )
-        responseMap.put(t.getKey(), ResponseObject.composeResponse(t.getResponseObject()));
-        operation.setResponses(responseMap);
-        }
-        if( operationObject.getNumCallbackTuple() != 0 ){
-        Map<String, Callback> callbacks = new HashMap<>();
-        for( CallbackTuple t : operationObject.getCallbackTuples() ) {
-        if( !t.getCallbackObject().getRef().isEmpty() ){
-        Callback callback = new Callback();
-        callback.setRef(t.getCallbackObject().getRef());
-        callbacks.put(t.getKey(), callback);
-        }
-        else
-        callbacks.put(t.getKey(), CallbackObject.composeCallback(t.getCallbackObject()));
-        operation.setCallbacks(callbacks);
-        }
-        }
-        if( operationObject.getDeprecatedBoolean() != null )
-        operation.setDeprecated(operationObject.getDeprecatedBoolean());
-        if( operationObject.getSecurityRequirementObjects() != null ){
-        for( SecurityRequirementObject s : operationObject.getSecurityRequirementObjects() )
-        operation.addSecurityRequirement( SecurityRequirementObject.composeSecurityRequirement(s) );
-        }
-        if( operationObject.getNumServerObject() != 0 ){
-        for( ServerObject s : operationObject.getServerObjects() )
-        operation.addServer( ServerObject.composeServer(s) );
-        }
-        if( operationObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : operationObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        operation.setExtensions(extensionMap);
-        }
-
-        return operation;
-        }
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:40
-   */
-  public void sendRandomGET(String targetUrl) throws Exception {
-        Random rand = new Random();
-
-        for( ParameterObject p : this.getParameterObjects() ){
-        if( p.getIn().equals("path") ){
-        String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1);
-
-        if( p.getSchemaObject().getType().equals("string") )
-        targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, p.getSchemaObject().getEnumObjs()));
-        else if( p.getSchemaObject().getType().equals("integer") )
-        targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand,
-        p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1
-        ));
-        }
-        else if( p.getIn().equals("query") ){
-
-        if( p.getSchemaObject().getType().equals("string") )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, p.getSchemaObject().getEnumObjs());
-        else if( p.getSchemaObject().getType().equals("integer") )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt(  rand,
-        p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 );
-        else if( p.getSchemaObject().getType().equals("array") ){
-        if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("string") ){
-        for( EnumObj e : p.getSchemaObject().getItemsSchema().getSchemaObject().getEnumObjs() )
-        targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl;
-        }
-        else if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("integer") ){
-        for( int i = 0 ; i < 5 ; i++ )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt(  rand,
-        p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1 );
-        }
-
-        }
-        }
-        }
-        targetUrl = targetUrl.replaceFirst("&", "?");
-        System.out.println(targetUrl);
-
-        URL url = new URL(targetUrl);
-        HttpURLConnection con = (HttpURLConnection) url.openConnection();
-
-        con.setRequestMethod("GET"); // optional default is GET
-        int responseCode = con.getResponseCode();
-
-        // print result
-        System.out.println("HTTP status code (GET) : " + responseCode);
-    }
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:91
-   */
-  public void sendRandomPOST(String targetUrl) throws Exception {
-        Random rand = new Random();
-
-        for( ParameterObject p : this.getParameterObjects() ){
-        if( p.getIn().equals("path") ){
-        String pathPart = targetUrl.substring(targetUrl.indexOf("{") ,targetUrl.indexOf("}") + 1);
-
-        if( p.getSchemaObject().getType().equals("string") )
-        targetUrl = targetUrl.replace(pathPart, this.generateRandomString(rand, p.getSchemaObject().getEnumObjs()));
-        else if( p.getSchemaObject().getType().equals("integer") )
-        targetUrl = targetUrl.replace(pathPart, this.generateRandomInt( rand,
-        -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        10 // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1
-        ));
-        }
-        else if( p.getIn().equals("query") ){
-
-        if( p.getSchemaObject().getType().equals("string") )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomString(rand, p.getSchemaObject().getEnumObjs());
-        else if( p.getSchemaObject().getType().equals("integer") )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt(  rand,
-        -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1
-        else if( p.getSchemaObject().getType().equals("array") ){
-        if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("string") ){
-        for( EnumObj e : p.getSchemaObject().getItemsSchema().getSchemaObject().getEnumObjs() )
-        targetUrl=rand.nextDouble()< 0.5?targetUrl+"&"+p.getName()+"="+e.getEnumOb():targetUrl;
-        }
-        else if( p.getSchemaObject().getItemsSchema().getSchemaObject().getType().equals("integer") ){
-        for( int i = 0 ; i < 5 ; i++ )
-        targetUrl = targetUrl + "&" + p.getName() + "=" + this.generateRandomInt(  rand,
-        -1, // p.getSchemaObject().getMinimum() != null ? p.getSchemaObject().getMinimum().intValue() : -1,
-        10); // p.getSchemaObject().getMaximum() != null ? p.getSchemaObject().getMaximum().intValue() : -1
-        }
-
-        }
-        }
-        }
-        targetUrl = targetUrl.replaceFirst("&", "?");
-        System.out.println(targetUrl);
-
-        URL url = new URL(targetUrl);
-        HttpURLConnection con = (HttpURLConnection) url.openConnection();
-
-        con.setRequestMethod("POST"); // HTTP POST
-        con.setDoOutput(true); // POST
-
-        int responseCode = con.getResponseCode();
-
-        // print result
-        System.out.println("HTTP status code (POST) : " + responseCode);
-    }
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:144
-   */
-  public String generateRandomString(Random rand, JastAddList<EnumObj> objs) {
-        if( objs.getNumChild() != 0 )
-        return objs.getChild(rand.nextInt(objs.getNumChild())).getEnumOb().toString();
-
-
-        return rand
-        .ints(97, 123)
-        .limit(10)
-        .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
-        .toString();
-    }
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:156
-   */
-  public String generateRandomInt(Random rand, int minimum, int maximum){
-        if( minimum > -1 && maximum > 0 )
-        return String.valueOf(rand.nextInt(minimum+maximum)-minimum);
-        else if( minimum > -1 )
-        return String.valueOf(rand.nextInt()+minimum);
-        else if( maximum > 0 )
-        return String.valueOf(rand.nextInt(maximum));
-        return String.valueOf(rand.nextInt());
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:350
-   */
-  public static OperationObject parseOperation(Operation operation){
-        OperationObject operationObject = new OperationObject();
-
-        if( operation.getDeprecated() != null )
-        operationObject.setDeprecatedBoolean(operation.getDeprecated());
-        if( operation.getTags() != null ){
-        for(String t : operation.getTags()) {
-        de.tudresden.inf.st.openapi.ast.Tag tag = new de.tudresden.inf.st.openapi.ast.Tag();
-        tag.setTag(t);
-        operationObject.addTag(tag);
-        }
-        }
-        if( operation.getSummary() != null )
-        operationObject.setSummary(operation.getSummary());
-        if( operation.getDescription() != null )
-        operationObject.setDescription( operation.getDescription() );
-        if( operation.getExternalDocs() != null )
-        operationObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(operation.getExternalDocs()));
-        if( operation.getOperationId() != null )
-        operationObject.setOperationID( operation.getOperationId() );
-        if( operation.getParameters() != null ){
-        for( Parameter p : operation.getParameters() )
-        operationObject.addParameterObject(ParameterObject.parseParameter(p));
-        }
-        if( operation.getRequestBody() != null )
-        operationObject.setRequestBodyObject( RequestBodyObject.parseRequestBody( operation.getRequestBody() ) );
-        if( operation.getResponses() != null ){
-        for( String key : operation.getResponses().keySet())
-        operationObject.addResponseTuple(new ResponseTuple(key, ResponseObject.parseResponse(operation.getResponse(key))));
-        }
-        if( operation.getCallbacks() != null ){
-        for( String key : operation.getCallbacks().keySet() )
-        operationObject.addCallbackTuple(new CallbackTuple(key, CallbackObject.parseCallback(operation.getCallback(key))));
-        }
-        if( operation.getSecurityRequirements() != null ){
-        for( SecurityRequirement s : operation.getSecurityRequirements() )
-        operationObject.addSecurityRequirementObject(SecurityRequirementObject.parseSecurityRequirement(s));
-        }
-        if( operation.getServers() != null ){
-        for( Server s : operation.getServers() )
-        operationObject.addServerObject(ServerObject.parseServer(s));
-        }
-        if( operation.getExtensions() != null ) {
-        for( String key : operation.getExtensions().keySet() )
-        operationObject.addExtension(new Extension(key, operation.getExtensions().get(key)));
-        }
-
-        return operationObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public OperationObject() {
-    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() {
-    children = new ASTNode[9];
-    setChild(new JastAddList(), 0);
-    setChild(new Opt(), 1);
-    setChild(new JastAddList(), 2);
-    setChild(new Opt(), 3);
-    setChild(new JastAddList(), 4);
-    setChild(new JastAddList(), 5);
-    setChild(new JastAddList(), 6);
-    setChild(new JastAddList(), 7);
-    setChild(new JastAddList(), 8);
-  }
-  /**
-   * @declaredat ASTNode:22
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Tag", "Summary", "Description", "ExternalDocObject", "OperationID", "ParameterObject", "RequestBodyObject", "ResponseTuple", "CallbackTuple", "DeprecatedBoolean", "SecurityRequirementObject", "ServerObject", "Required", "Extension"},
-    type = {"JastAddList<Tag>", "String", "String", "Opt<ExternalDocObject>", "String", "JastAddList<ParameterObject>", "Opt<RequestBodyObject>", "JastAddList<ResponseTuple>", "JastAddList<CallbackTuple>", "Boolean", "JastAddList<SecurityRequirementObject>", "JastAddList<ServerObject>", "Boolean", "JastAddList<Extension>"},
-    kind = {"List", "Token", "Token", "Opt", "Token", "List", "Opt", "List", "List", "Token", "List", "List", "Token", "List"}
-  )
-  public OperationObject(JastAddList<Tag> p0, String p1, String p2, Opt<ExternalDocObject> p3, String p4, JastAddList<ParameterObject> p5, Opt<RequestBodyObject> p6, JastAddList<ResponseTuple> p7, JastAddList<CallbackTuple> p8, Boolean p9, JastAddList<SecurityRequirementObject> p10, JastAddList<ServerObject> p11, Boolean p12, JastAddList<Extension> p13) {
-    setChild(p0, 0);
-    setSummary(p1);
-    setDescription(p2);
-    setChild(p3, 1);
-    setOperationID(p4);
-    setChild(p5, 2);
-    setChild(p6, 3);
-    setChild(p7, 4);
-    setChild(p8, 5);
-    setDeprecatedBoolean(p9);
-    setChild(p10, 6);
-    setChild(p11, 7);
-    setRequired(p12);
-    setChild(p13, 8);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:44
-   */
-  protected int numChildren() {
-    return 9;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:50
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:54
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:58
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:62
-   */
-  public OperationObject clone() throws CloneNotSupportedException {
-    OperationObject node = (OperationObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:67
-   */
-  public OperationObject copy() {
-    try {
-      OperationObject node = (OperationObject) 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:86
-   */
-  @Deprecated
-  public OperationObject 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:96
-   */
-  public OperationObject treeCopyNoTransform() {
-    OperationObject tree = (OperationObject) 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:116
-   */
-  public OperationObject treeCopy() {
-    OperationObject tree = (OperationObject) 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:130
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Summary == ((OperationObject) node).tokenString_Summary) && (tokenString_Description == ((OperationObject) node).tokenString_Description) && (tokenString_OperationID == ((OperationObject) node).tokenString_OperationID) && (tokenBoolean_DeprecatedBoolean == ((OperationObject) node).tokenBoolean_DeprecatedBoolean) && (tokenBoolean_Required == ((OperationObject) node).tokenBoolean_Required);    
-  }
-  /**
-   * Replaces the Tag list.
-   * @param list The new list node to be used as the Tag list.
-   * @apilevel high-level
-   */
-  public void setTagList(JastAddList<Tag> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Tag list.
-   * @return Number of children in the Tag list.
-   * @apilevel high-level
-   */
-  public int getNumTag() {
-    return getTagList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Tag list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Tag list.
-   * @apilevel low-level
-   */
-  public int getNumTagNoTransform() {
-    return getTagListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Tag list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Tag list.
-   * @apilevel high-level
-   */
-  public Tag getTag(int i) {
-    return (Tag) getTagList().getChild(i);
-  }
-  /**
-   * Check whether the Tag list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasTag() {
-    return getTagList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Tag list.
-   * @param node The element to append to the Tag list.
-   * @apilevel high-level
-   */
-  public void addTag(Tag node) {
-    JastAddList<Tag> list = (parent == null) ? getTagListNoTransform() : getTagList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addTagNoTransform(Tag node) {
-    JastAddList<Tag> list = getTagListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Tag 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 setTag(Tag node, int i) {
-    JastAddList<Tag> list = getTagList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Tag list.
-   * @return The node representing the Tag list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Tag")
-  public JastAddList<Tag> getTagList() {
-    JastAddList<Tag> list = (JastAddList<Tag>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Tag list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Tag list.
-   * @apilevel low-level
-   */
-  public JastAddList<Tag> getTagListNoTransform() {
-    return (JastAddList<Tag>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Tag list without
-   * triggering rewrites.
-   */
-  public Tag getTagNoTransform(int i) {
-    return (Tag) getTagListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Tag list.
-   * @return The node representing the Tag list.
-   * @apilevel high-level
-   */
-  public JastAddList<Tag> getTags() {
-    return getTagList();
-  }
-  /**
-   * Retrieves the Tag list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Tag list.
-   * @apilevel low-level
-   */
-  public JastAddList<Tag> getTagsNoTransform() {
-    return getTagListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Summary.
-   * @param value The new value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  public void setSummary(String value) {
-    tokenString_Summary = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Summary;
-  /**
-   * Retrieves the value for the lexeme Summary.
-   * @return The value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Summary")
-  public String getSummary() {
-    return tokenString_Summary != null ? tokenString_Summary : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the optional node for the ExternalDocObject child. This is the <code>Opt</code>
-   * node containing the child ExternalDocObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  public void setExternalDocObjectOpt(Opt<ExternalDocObject> opt) {
-    setChild(opt, 1);
-  }
-  /**
-   * Replaces the (optional) ExternalDocObject child.
-   * @param node The new node to be used as the ExternalDocObject child.
-   * @apilevel high-level
-   */
-  public void setExternalDocObject(ExternalDocObject node) {
-    getExternalDocObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ExternalDocObject child exists.
-   * @return {@code true} if the optional ExternalDocObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasExternalDocObject() {
-    return getExternalDocObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ExternalDocObject child.
-   * @return The ExternalDocObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ExternalDocObject getExternalDocObject() {
-    return (ExternalDocObject) getExternalDocObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ExternalDocObject child. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * @return The optional node for child the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ExternalDocObject")
-  public Opt<ExternalDocObject> getExternalDocObjectOpt() {
-    return (Opt<ExternalDocObject>) getChild(1);
-  }
-  /**
-   * Retrieves the optional node for child ExternalDocObject. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ExternalDocObject.
-   * @apilevel low-level
-   */
-  public Opt<ExternalDocObject> getExternalDocObjectOptNoTransform() {
-    return (Opt<ExternalDocObject>) getChildNoTransform(1);
-  }
-  /**
-   * Replaces the lexeme OperationID.
-   * @param value The new value for the lexeme OperationID.
-   * @apilevel high-level
-   */
-  public void setOperationID(String value) {
-    tokenString_OperationID = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_OperationID;
-  /**
-   * Retrieves the value for the lexeme OperationID.
-   * @return The value for the lexeme OperationID.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="OperationID")
-  public String getOperationID() {
-    return tokenString_OperationID != null ? tokenString_OperationID : "";
-  }
-  /**
-   * Replaces the ParameterObject list.
-   * @param list The new list node to be used as the ParameterObject list.
-   * @apilevel high-level
-   */
-  public void setParameterObjectList(JastAddList<ParameterObject> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the ParameterObject list.
-   * @return Number of children in the ParameterObject list.
-   * @apilevel high-level
-   */
-  public int getNumParameterObject() {
-    return getParameterObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ParameterObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ParameterObject list.
-   * @apilevel low-level
-   */
-  public int getNumParameterObjectNoTransform() {
-    return getParameterObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ParameterObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ParameterObject list.
-   * @apilevel high-level
-   */
-  public ParameterObject getParameterObject(int i) {
-    return (ParameterObject) getParameterObjectList().getChild(i);
-  }
-  /**
-   * Check whether the ParameterObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasParameterObject() {
-    return getParameterObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ParameterObject list.
-   * @param node The element to append to the ParameterObject list.
-   * @apilevel high-level
-   */
-  public void addParameterObject(ParameterObject node) {
-    JastAddList<ParameterObject> list = (parent == null) ? getParameterObjectListNoTransform() : getParameterObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addParameterObjectNoTransform(ParameterObject node) {
-    JastAddList<ParameterObject> list = getParameterObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ParameterObject 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 setParameterObject(ParameterObject node, int i) {
-    JastAddList<ParameterObject> list = getParameterObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * @return The node representing the ParameterObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ParameterObject")
-  public JastAddList<ParameterObject> getParameterObjectList() {
-    JastAddList<ParameterObject> list = (JastAddList<ParameterObject>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterObject> getParameterObjectListNoTransform() {
-    return (JastAddList<ParameterObject>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the ParameterObject list without
-   * triggering rewrites.
-   */
-  public ParameterObject getParameterObjectNoTransform(int i) {
-    return (ParameterObject) getParameterObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * @return The node representing the ParameterObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<ParameterObject> getParameterObjects() {
-    return getParameterObjectList();
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterObject> getParameterObjectsNoTransform() {
-    return getParameterObjectListNoTransform();
-  }
-  /**
-   * Replaces the optional node for the RequestBodyObject child. This is the <code>Opt</code>
-   * node containing the child RequestBodyObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the RequestBodyObject child.
-   * @apilevel low-level
-   */
-  public void setRequestBodyObjectOpt(Opt<RequestBodyObject> opt) {
-    setChild(opt, 3);
-  }
-  /**
-   * Replaces the (optional) RequestBodyObject child.
-   * @param node The new node to be used as the RequestBodyObject child.
-   * @apilevel high-level
-   */
-  public void setRequestBodyObject(RequestBodyObject node) {
-    getRequestBodyObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional RequestBodyObject child exists.
-   * @return {@code true} if the optional RequestBodyObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasRequestBodyObject() {
-    return getRequestBodyObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) RequestBodyObject child.
-   * @return The RequestBodyObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public RequestBodyObject getRequestBodyObject() {
-    return (RequestBodyObject) getRequestBodyObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the RequestBodyObject child. This is the <code>Opt</code> node containing the child RequestBodyObject, not the actual child!
-   * @return The optional node for child the RequestBodyObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="RequestBodyObject")
-  public Opt<RequestBodyObject> getRequestBodyObjectOpt() {
-    return (Opt<RequestBodyObject>) getChild(3);
-  }
-  /**
-   * Retrieves the optional node for child RequestBodyObject. This is the <code>Opt</code> node containing the child RequestBodyObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child RequestBodyObject.
-   * @apilevel low-level
-   */
-  public Opt<RequestBodyObject> getRequestBodyObjectOptNoTransform() {
-    return (Opt<RequestBodyObject>) getChildNoTransform(3);
-  }
-  /**
-   * Replaces the ResponseTuple list.
-   * @param list The new list node to be used as the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public void setResponseTupleList(JastAddList<ResponseTuple> list) {
-    setChild(list, 4);
-  }
-  /**
-   * Retrieves the number of children in the ResponseTuple list.
-   * @return Number of children in the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public int getNumResponseTuple() {
-    return getResponseTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ResponseTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public int getNumResponseTupleNoTransform() {
-    return getResponseTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ResponseTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public ResponseTuple getResponseTuple(int i) {
-    return (ResponseTuple) getResponseTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ResponseTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasResponseTuple() {
-    return getResponseTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ResponseTuple list.
-   * @param node The element to append to the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public void addResponseTuple(ResponseTuple node) {
-    JastAddList<ResponseTuple> list = (parent == null) ? getResponseTupleListNoTransform() : getResponseTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addResponseTupleNoTransform(ResponseTuple node) {
-    JastAddList<ResponseTuple> list = getResponseTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ResponseTuple 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 setResponseTuple(ResponseTuple node, int i) {
-    JastAddList<ResponseTuple> list = getResponseTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * @return The node representing the ResponseTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ResponseTuple")
-  public JastAddList<ResponseTuple> getResponseTupleList() {
-    JastAddList<ResponseTuple> list = (JastAddList<ResponseTuple>) getChild(4);
-    return list;
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ResponseTuple> getResponseTupleListNoTransform() {
-    return (JastAddList<ResponseTuple>) getChildNoTransform(4);
-  }
-  /**
-   * @return the element at index {@code i} in the ResponseTuple list without
-   * triggering rewrites.
-   */
-  public ResponseTuple getResponseTupleNoTransform(int i) {
-    return (ResponseTuple) getResponseTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * @return The node representing the ResponseTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ResponseTuple> getResponseTuples() {
-    return getResponseTupleList();
-  }
-  /**
-   * Retrieves the ResponseTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ResponseTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ResponseTuple> getResponseTuplesNoTransform() {
-    return getResponseTupleListNoTransform();
-  }
-  /**
-   * Replaces the CallbackTuple list.
-   * @param list The new list node to be used as the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public void setCallbackTupleList(JastAddList<CallbackTuple> list) {
-    setChild(list, 5);
-  }
-  /**
-   * Retrieves the number of children in the CallbackTuple list.
-   * @return Number of children in the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public int getNumCallbackTuple() {
-    return getCallbackTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the CallbackTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public int getNumCallbackTupleNoTransform() {
-    return getCallbackTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the CallbackTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public CallbackTuple getCallbackTuple(int i) {
-    return (CallbackTuple) getCallbackTupleList().getChild(i);
-  }
-  /**
-   * Check whether the CallbackTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasCallbackTuple() {
-    return getCallbackTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the CallbackTuple list.
-   * @param node The element to append to the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public void addCallbackTuple(CallbackTuple node) {
-    JastAddList<CallbackTuple> list = (parent == null) ? getCallbackTupleListNoTransform() : getCallbackTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addCallbackTupleNoTransform(CallbackTuple node) {
-    JastAddList<CallbackTuple> list = getCallbackTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the CallbackTuple 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 setCallbackTuple(CallbackTuple node, int i) {
-    JastAddList<CallbackTuple> list = getCallbackTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * @return The node representing the CallbackTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="CallbackTuple")
-  public JastAddList<CallbackTuple> getCallbackTupleList() {
-    JastAddList<CallbackTuple> list = (JastAddList<CallbackTuple>) getChild(5);
-    return list;
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTupleListNoTransform() {
-    return (JastAddList<CallbackTuple>) getChildNoTransform(5);
-  }
-  /**
-   * @return the element at index {@code i} in the CallbackTuple list without
-   * triggering rewrites.
-   */
-  public CallbackTuple getCallbackTupleNoTransform(int i) {
-    return (CallbackTuple) getCallbackTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * @return The node representing the CallbackTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTuples() {
-    return getCallbackTupleList();
-  }
-  /**
-   * Retrieves the CallbackTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the CallbackTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<CallbackTuple> getCallbackTuplesNoTransform() {
-    return getCallbackTupleListNoTransform();
-  }
-  /**
-   * Replaces the lexeme DeprecatedBoolean.
-   * @param value The new value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  public void setDeprecatedBoolean(Boolean value) {
-    tokenBoolean_DeprecatedBoolean = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_DeprecatedBoolean;
-  /**
-   * Retrieves the value for the lexeme DeprecatedBoolean.
-   * @return The value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="DeprecatedBoolean")
-  public Boolean getDeprecatedBoolean() {
-    return tokenBoolean_DeprecatedBoolean;
-  }
-  /**
-   * Replaces the SecurityRequirementObject list.
-   * @param list The new list node to be used as the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public void setSecurityRequirementObjectList(JastAddList<SecurityRequirementObject> list) {
-    setChild(list, 6);
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementObject list.
-   * @return Number of children in the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public int getNumSecurityRequirementObject() {
-    return getSecurityRequirementObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public int getNumSecurityRequirementObjectNoTransform() {
-    return getSecurityRequirementObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SecurityRequirementObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public SecurityRequirementObject getSecurityRequirementObject(int i) {
-    return (SecurityRequirementObject) getSecurityRequirementObjectList().getChild(i);
-  }
-  /**
-   * Check whether the SecurityRequirementObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSecurityRequirementObject() {
-    return getSecurityRequirementObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SecurityRequirementObject list.
-   * @param node The element to append to the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public void addSecurityRequirementObject(SecurityRequirementObject node) {
-    JastAddList<SecurityRequirementObject> list = (parent == null) ? getSecurityRequirementObjectListNoTransform() : getSecurityRequirementObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSecurityRequirementObjectNoTransform(SecurityRequirementObject node) {
-    JastAddList<SecurityRequirementObject> list = getSecurityRequirementObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SecurityRequirementObject 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 setSecurityRequirementObject(SecurityRequirementObject node, int i) {
-    JastAddList<SecurityRequirementObject> list = getSecurityRequirementObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SecurityRequirementObject")
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectList() {
-    JastAddList<SecurityRequirementObject> list = (JastAddList<SecurityRequirementObject>) getChild(6);
-    return list;
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectListNoTransform() {
-    return (JastAddList<SecurityRequirementObject>) getChildNoTransform(6);
-  }
-  /**
-   * @return the element at index {@code i} in the SecurityRequirementObject list without
-   * triggering rewrites.
-   */
-  public SecurityRequirementObject getSecurityRequirementObjectNoTransform(int i) {
-    return (SecurityRequirementObject) getSecurityRequirementObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjects() {
-    return getSecurityRequirementObjectList();
-  }
-  /**
-   * Retrieves the SecurityRequirementObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementObject> getSecurityRequirementObjectsNoTransform() {
-    return getSecurityRequirementObjectListNoTransform();
-  }
-  /**
-   * Replaces the ServerObject list.
-   * @param list The new list node to be used as the ServerObject list.
-   * @apilevel high-level
-   */
-  public void setServerObjectList(JastAddList<ServerObject> list) {
-    setChild(list, 7);
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * @return Number of children in the ServerObject list.
-   * @apilevel high-level
-   */
-  public int getNumServerObject() {
-    return getServerObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ServerObject list.
-   * @apilevel low-level
-   */
-  public int getNumServerObjectNoTransform() {
-    return getServerObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ServerObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ServerObject list.
-   * @apilevel high-level
-   */
-  public ServerObject getServerObject(int i) {
-    return (ServerObject) getServerObjectList().getChild(i);
-  }
-  /**
-   * Check whether the ServerObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasServerObject() {
-    return getServerObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ServerObject list.
-   * @param node The element to append to the ServerObject list.
-   * @apilevel high-level
-   */
-  public void addServerObject(ServerObject node) {
-    JastAddList<ServerObject> list = (parent == null) ? getServerObjectListNoTransform() : getServerObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addServerObjectNoTransform(ServerObject node) {
-    JastAddList<ServerObject> list = getServerObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ServerObject 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 setServerObject(ServerObject node, int i) {
-    JastAddList<ServerObject> list = getServerObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ServerObject")
-  public JastAddList<ServerObject> getServerObjectList() {
-    JastAddList<ServerObject> list = (JastAddList<ServerObject>) getChild(7);
-    return list;
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectListNoTransform() {
-    return (JastAddList<ServerObject>) getChildNoTransform(7);
-  }
-  /**
-   * @return the element at index {@code i} in the ServerObject list without
-   * triggering rewrites.
-   */
-  public ServerObject getServerObjectNoTransform(int i) {
-    return (ServerObject) getServerObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<ServerObject> getServerObjects() {
-    return getServerObjectList();
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectsNoTransform() {
-    return getServerObjectListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Required.
-   * @param value The new value for the lexeme Required.
-   * @apilevel high-level
-   */
-  public void setRequired(Boolean value) {
-    tokenBoolean_Required = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Required;
-  /**
-   * Retrieves the value for the lexeme Required.
-   * @return The value for the lexeme Required.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Required")
-  public Boolean getRequired() {
-    return tokenBoolean_Required;
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 8);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(8);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(8);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/Opt.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java
deleted file mode 100644
index 9a294dba..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Opt.java
+++ /dev/null
@@ -1,154 +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 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
- * @astdecl Opt : ASTNode;
- * @production Opt : {@link ASTNode};
-
- */
-public class Opt<T extends ASTNode> extends ASTNode<T> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Opt() {
-    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
-   */
-  public Opt(T opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:18
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:22
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:26
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:30
-   */
-  public Opt<T> clone() throws CloneNotSupportedException {
-    Opt node = (Opt) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:35
-   */
-  public Opt<T> copy() {
-    try {
-      Opt node = (Opt) 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:54
-   */
-  @Deprecated
-  public Opt<T> 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:64
-   */
-  public Opt<T> treeCopyNoTransform() {
-    Opt tree = (Opt) 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:84
-   */
-  public Opt<T> treeCopy() {
-    Opt tree = (Opt) 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:98
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node);    
-  }
-  /** @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/Options.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java
deleted file mode 100644
index 7b99b406..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Options.java
+++ /dev/null
@@ -1,193 +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 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 Options : ASTNode ::= OperationObject;
- * @production Options : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Options extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Options() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Options(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Options clone() throws CloneNotSupportedException {
-    Options node = (Options) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Options copy() {
-    try {
-      Options node = (Options) 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 Options 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 Options treeCopyNoTransform() {
-    Options tree = (Options) 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 Options treeCopy() {
-    Options tree = (Options) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/ParameterObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
deleted file mode 100644
index 9a7f7920..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
+++ /dev/null
@@ -1,882 +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 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:56
- * @astdecl ParameterObject : ASTNode ::= <Name:String> <In:String> <Description:String> <Required:Boolean> <DeprecatedBoolean:Boolean> <AllowEmptyValue:Boolean> <Style:String> <Explode:Boolean> <AllowReserved:Boolean> [SchemaObject] <Example:Object> ExampleTuple* ContentTuple* <Ref:String> Extension*;
- * @production ParameterObject : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;In:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;Required:Boolean&gt;</span> <span class="component">&lt;DeprecatedBoolean:Boolean&gt;</span> <span class="component">&lt;AllowEmptyValue:Boolean&gt;</span> <span class="component">&lt;Style:String&gt;</span> <span class="component">&lt;Explode:Boolean&gt;</span> <span class="component">&lt;AllowReserved:Boolean&gt;</span> <span class="component">[{@link SchemaObject}]</span> <span class="component">&lt;Example:Object&gt;</span> <span class="component">{@link ExampleTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">&lt;Ref:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class ParameterObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:391
-   */
-  public static Parameter composeParameter (ParameterObject parameterObject){
-        Parameter parameter = new Parameter();
-
-        if( !parameterObject.getRef().isEmpty() )
-        parameter.setRef(parameterObject.getRef());
-        if( !parameterObject.getName().isEmpty() )
-        parameter.setName(parameterObject.getName());
-        if( !parameterObject.getIn().isEmpty() )
-        parameter.setIn(parameterObject.getIn());
-        if( parameterObject.getRequired() != null )
-        parameter.setRequired(parameterObject.getRequired());
-        if( !parameterObject.getDescription().isEmpty() )
-        parameter.setDescription(parameterObject.getDescription());
-        if( parameterObject.getDeprecatedBoolean() != null )
-        parameter.setDeprecated(parameterObject.getDeprecatedBoolean());
-        if( !parameterObject.getStyle().isEmpty() )
-        parameter.setStyle(parameterObject.getStyle());
-        if( parameterObject.getAllowReserved() != null )
-        parameter.setAllowReserved(parameterObject.getAllowReserved());
-        if( parameterObject.getExplode() != null )
-        parameter.setExplode(parameterObject.getExplode());
-        if( parameterObject.getSchemaObject() != null )
-        parameter.setSchema(SchemaObject.composeSchema(parameterObject.getSchemaObject()));
-        if( parameterObject.getExample() != null )
-        parameter.setExample(parameterObject.getExample());
-        if( parameterObject.getNumExampleTuple() != 0 ){
-        Map<String, Example> exampleMap = new HashMap<>();
-        for( ExampleTuple t : parameterObject.getExampleTuples() )
-        exampleMap.put(t.getKey(), ExampleObject.composeExample(t.getExampleObject()));
-        parameter.setExamples(exampleMap);
-        }
-        if( parameterObject.getNumContentTuple() != 0 ){
-        Map<String, MediaType> contentMap = new HashMap<>();
-        for( ContentTuple t : parameterObject.getContentTuples() )
-        contentMap.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject()));
-        parameter.setContentMediaTypes(contentMap);
-        }
-        if( parameterObject.getRequired() != null )
-            parameter.setRequired(parameterObject.getRequired());
-        if( parameterObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : parameterObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        parameter.setExtensions(extensionMap);
-        }
-
-        return parameter;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:416
-   */
-  public static ParameterObject parseParameter(Parameter parameter){
-        ParameterObject parameterObject = new ParameterObject();
-
-        if( parameter.isRef() )
-        parameterObject.setRef(parameter.getRef());
-        if( parameter.getName() != null )
-        parameterObject.setName(parameter.getName());
-        if( parameter.getIn() != null )
-        parameterObject.setIn(parameter.getIn());
-        if( parameter.getDescription() != null )
-        parameterObject.setDescription(parameter.getDescription());
-        if( parameter.getDeprecated() != null )
-        parameterObject.setDeprecatedBoolean(parameter.getDeprecated());
-        if( parameter.getStyle() != null )
-        parameterObject.setStyle( parameter.getStyle() );
-        if( parameter.getExplode() != null )
-        parameterObject.setExplode( parameter.getExplode() );
-        if( parameter.getAllowReserved() != null )
-        parameterObject.setAllowReserved( parameter.getAllowReserved() );
-        if( parameter.getSchema() != null )
-        parameterObject.setSchemaObject(SchemaObject.parseSchema(parameter.getSchema()));
-        if( parameter.getExample() != null )
-        parameterObject.setExample( parameter.getExample() );
-        if( parameter.getExamples() != null ){
-        for( String key : parameter.getExamples().keySet() )
-        parameterObject.addExampleTuple(new ExampleTuple(key, ExampleObject.parseExample(parameter.getExample(key))));
-        }
-        if( parameter.getContentMediaTypes() != null ){
-        for( String key : parameter.getContentMediaTypes().keySet() )
-        parameterObject.addContentTuple(new ContentTuple(key, MediaTypeObject.parseMediaType(parameter.getContentMediaType(key))));
-        }
-        if( parameter.getRequired() != null )
-            parameterObject.setRequired(parameter.getRequired());
-        if( parameter.getExtensions() != null ){
-        for( String key : parameter.getExtensions().keySet() )
-        parameterObject.addExtension(new Extension(key, parameter.getExtensions().get(key)));
-        }
-
-        return parameterObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ParameterObject() {
-    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() {
-    children = new ASTNode[4];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-    setChild(new JastAddList(), 3);
-  }
-  /**
-   * @declaredat ASTNode:17
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "In", "Description", "Required", "DeprecatedBoolean", "AllowEmptyValue", "Style", "Explode", "AllowReserved", "SchemaObject", "Example", "ExampleTuple", "ContentTuple", "Ref", "Extension"},
-    type = {"String", "String", "String", "Boolean", "Boolean", "Boolean", "String", "Boolean", "Boolean", "Opt<SchemaObject>", "Object", "JastAddList<ExampleTuple>", "JastAddList<ContentTuple>", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "List", "List", "Token", "List"}
-  )
-  public ParameterObject(String p0, String p1, String p2, Boolean p3, Boolean p4, Boolean p5, String p6, Boolean p7, Boolean p8, Opt<SchemaObject> p9, Object p10, JastAddList<ExampleTuple> p11, JastAddList<ContentTuple> p12, String p13, JastAddList<Extension> p14) {
-    setName(p0);
-    setIn(p1);
-    setDescription(p2);
-    setRequired(p3);
-    setDeprecatedBoolean(p4);
-    setAllowEmptyValue(p5);
-    setStyle(p6);
-    setExplode(p7);
-    setAllowReserved(p8);
-    setChild(p9, 0);
-    setExample(p10);
-    setChild(p11, 1);
-    setChild(p12, 2);
-    setRef(p13);
-    setChild(p14, 3);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:40
-   */
-  protected int numChildren() {
-    return 4;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:46
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:54
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:58
-   */
-  public ParameterObject clone() throws CloneNotSupportedException {
-    ParameterObject node = (ParameterObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:63
-   */
-  public ParameterObject copy() {
-    try {
-      ParameterObject node = (ParameterObject) 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:82
-   */
-  @Deprecated
-  public ParameterObject 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:92
-   */
-  public ParameterObject treeCopyNoTransform() {
-    ParameterObject tree = (ParameterObject) 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:112
-   */
-  public ParameterObject treeCopy() {
-    ParameterObject tree = (ParameterObject) 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:126
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((ParameterObject) node).tokenString_Name) && (tokenString_In == ((ParameterObject) node).tokenString_In) && (tokenString_Description == ((ParameterObject) node).tokenString_Description) && (tokenBoolean_Required == ((ParameterObject) node).tokenBoolean_Required) && (tokenBoolean_DeprecatedBoolean == ((ParameterObject) node).tokenBoolean_DeprecatedBoolean) && (tokenBoolean_AllowEmptyValue == ((ParameterObject) node).tokenBoolean_AllowEmptyValue) && (tokenString_Style == ((ParameterObject) node).tokenString_Style) && (tokenBoolean_Explode == ((ParameterObject) node).tokenBoolean_Explode) && (tokenBoolean_AllowReserved == ((ParameterObject) node).tokenBoolean_AllowReserved) && (tokenObject_Example == ((ParameterObject) node).tokenObject_Example) && (tokenString_Ref == ((ParameterObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme In.
-   * @param value The new value for the lexeme In.
-   * @apilevel high-level
-   */
-  public void setIn(String value) {
-    tokenString_In = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_In;
-  /**
-   * Retrieves the value for the lexeme In.
-   * @return The value for the lexeme In.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="In")
-  public String getIn() {
-    return tokenString_In != null ? tokenString_In : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme Required.
-   * @param value The new value for the lexeme Required.
-   * @apilevel high-level
-   */
-  public void setRequired(Boolean value) {
-    tokenBoolean_Required = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Required;
-  /**
-   * Retrieves the value for the lexeme Required.
-   * @return The value for the lexeme Required.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Required")
-  public Boolean getRequired() {
-    return tokenBoolean_Required;
-  }
-  /**
-   * Replaces the lexeme DeprecatedBoolean.
-   * @param value The new value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  public void setDeprecatedBoolean(Boolean value) {
-    tokenBoolean_DeprecatedBoolean = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_DeprecatedBoolean;
-  /**
-   * Retrieves the value for the lexeme DeprecatedBoolean.
-   * @return The value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="DeprecatedBoolean")
-  public Boolean getDeprecatedBoolean() {
-    return tokenBoolean_DeprecatedBoolean;
-  }
-  /**
-   * Replaces the lexeme AllowEmptyValue.
-   * @param value The new value for the lexeme AllowEmptyValue.
-   * @apilevel high-level
-   */
-  public void setAllowEmptyValue(Boolean value) {
-    tokenBoolean_AllowEmptyValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AllowEmptyValue;
-  /**
-   * Retrieves the value for the lexeme AllowEmptyValue.
-   * @return The value for the lexeme AllowEmptyValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AllowEmptyValue")
-  public Boolean getAllowEmptyValue() {
-    return tokenBoolean_AllowEmptyValue;
-  }
-  /**
-   * Replaces the lexeme Style.
-   * @param value The new value for the lexeme Style.
-   * @apilevel high-level
-   */
-  public void setStyle(String value) {
-    tokenString_Style = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Style;
-  /**
-   * Retrieves the value for the lexeme Style.
-   * @return The value for the lexeme Style.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Style")
-  public String getStyle() {
-    return tokenString_Style != null ? tokenString_Style : "";
-  }
-  /**
-   * Replaces the lexeme Explode.
-   * @param value The new value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  public void setExplode(Boolean value) {
-    tokenBoolean_Explode = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Explode;
-  /**
-   * Retrieves the value for the lexeme Explode.
-   * @return The value for the lexeme Explode.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Explode")
-  public Boolean getExplode() {
-    return tokenBoolean_Explode;
-  }
-  /**
-   * Replaces the lexeme AllowReserved.
-   * @param value The new value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  public void setAllowReserved(Boolean value) {
-    tokenBoolean_AllowReserved = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AllowReserved;
-  /**
-   * Retrieves the value for the lexeme AllowReserved.
-   * @return The value for the lexeme AllowReserved.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AllowReserved")
-  public Boolean getAllowReserved() {
-    return tokenBoolean_AllowReserved;
-  }
-  /**
-   * Replaces the optional node for the SchemaObject child. This is the <code>Opt</code>
-   * node containing the child SchemaObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the SchemaObject child.
-   * @apilevel low-level
-   */
-  public void setSchemaObjectOpt(Opt<SchemaObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) SchemaObject child.
-   * @param node The new node to be used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    getSchemaObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional SchemaObject child exists.
-   * @return {@code true} if the optional SchemaObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasSchemaObject() {
-    return getSchemaObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) SchemaObject child.
-   * @return The SchemaObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getSchemaObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the SchemaObject child. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * @return The optional node for child the SchemaObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="SchemaObject")
-  public Opt<SchemaObject> getSchemaObjectOpt() {
-    return (Opt<SchemaObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child SchemaObject. This is the <code>Opt</code> node containing the child SchemaObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child SchemaObject.
-   * @apilevel low-level
-   */
-  public Opt<SchemaObject> getSchemaObjectOptNoTransform() {
-    return (Opt<SchemaObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the lexeme Example.
-   * @param value The new value for the lexeme Example.
-   * @apilevel high-level
-   */
-  public void setExample(Object value) {
-    tokenObject_Example = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Example;
-  /**
-   * Retrieves the value for the lexeme Example.
-   * @return The value for the lexeme Example.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Example")
-  public Object getExample() {
-    return tokenObject_Example;
-  }
-  /**
-   * Replaces the ExampleTuple list.
-   * @param list The new list node to be used as the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void setExampleTupleList(JastAddList<ExampleTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public int getNumExampleTuple() {
-    return getExampleTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ExampleTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public int getNumExampleTupleNoTransform() {
-    return getExampleTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ExampleTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public ExampleTuple getExampleTuple(int i) {
-    return (ExampleTuple) getExampleTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ExampleTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExampleTuple() {
-    return getExampleTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ExampleTuple list.
-   * @param node The element to append to the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public void addExampleTuple(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = (parent == null) ? getExampleTupleListNoTransform() : getExampleTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExampleTupleNoTransform(ExampleTuple node) {
-    JastAddList<ExampleTuple> list = getExampleTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ExampleTuple 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 setExampleTuple(ExampleTuple node, int i) {
-    JastAddList<ExampleTuple> list = getExampleTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ExampleTuple")
-  public JastAddList<ExampleTuple> getExampleTupleList() {
-    JastAddList<ExampleTuple> list = (JastAddList<ExampleTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTupleListNoTransform() {
-    return (JastAddList<ExampleTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ExampleTuple list without
-   * triggering rewrites.
-   */
-  public ExampleTuple getExampleTupleNoTransform(int i) {
-    return (ExampleTuple) getExampleTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * @return The node representing the ExampleTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuples() {
-    return getExampleTupleList();
-  }
-  /**
-   * Retrieves the ExampleTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ExampleTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ExampleTuple> getExampleTuplesNoTransform() {
-    return getExampleTupleListNoTransform();
-  }
-  /**
-   * Replaces the ContentTuple list.
-   * @param list The new list node to be used as the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void setContentTupleList(JastAddList<ContentTuple> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public int getNumContentTuple() {
-    return getContentTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel low-level
-   */
-  public int getNumContentTupleNoTransform() {
-    return getContentTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ContentTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public ContentTuple getContentTuple(int i) {
-    return (ContentTuple) getContentTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ContentTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasContentTuple() {
-    return getContentTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ContentTuple list.
-   * @param node The element to append to the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void addContentTuple(ContentTuple node) {
-    JastAddList<ContentTuple> list = (parent == null) ? getContentTupleListNoTransform() : getContentTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addContentTupleNoTransform(ContentTuple node) {
-    JastAddList<ContentTuple> list = getContentTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ContentTuple 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 setContentTuple(ContentTuple node, int i) {
-    JastAddList<ContentTuple> list = getContentTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ContentTuple")
-  public JastAddList<ContentTuple> getContentTupleList() {
-    JastAddList<ContentTuple> list = (JastAddList<ContentTuple>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTupleListNoTransform() {
-    return (JastAddList<ContentTuple>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the ContentTuple list without
-   * triggering rewrites.
-   */
-  public ContentTuple getContentTupleNoTransform(int i) {
-    return (ContentTuple) getContentTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ContentTuple> getContentTuples() {
-    return getContentTupleList();
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTuplesNoTransform() {
-    return getContentTupleListNoTransform();
-  }
-  /**
-   * 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 Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 3);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(3);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(3);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/ParameterTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java
deleted file mode 100644
index e46c3dab..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterTuple.java
+++ /dev/null
@@ -1,214 +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 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:25
- * @astdecl ParameterTuple : ASTNode ::= <Key:String> ParameterObject;
- * @production ParameterTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link ParameterObject}</span>;
-
- */
-public class ParameterTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ParameterTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "ParameterObject"},
-    type = {"String", "ParameterObject"},
-    kind = {"Token", "Child"}
-  )
-  public ParameterTuple(String p0, ParameterObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public ParameterTuple clone() throws CloneNotSupportedException {
-    ParameterTuple node = (ParameterTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public ParameterTuple copy() {
-    try {
-      ParameterTuple node = (ParameterTuple) 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:65
-   */
-  @Deprecated
-  public ParameterTuple 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:75
-   */
-  public ParameterTuple treeCopyNoTransform() {
-    ParameterTuple tree = (ParameterTuple) 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:95
-   */
-  public ParameterTuple treeCopy() {
-    ParameterTuple tree = (ParameterTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((ParameterTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the ParameterObject child.
-   * @param node The new node to replace the ParameterObject child.
-   * @apilevel high-level
-   */
-  public void setParameterObject(ParameterObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the ParameterObject child.
-   * @return The current node used as the ParameterObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="ParameterObject")
-  public ParameterObject getParameterObject() {
-    return (ParameterObject) getChild(0);
-  }
-  /**
-   * Retrieves the ParameterObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the ParameterObject child.
-   * @apilevel low-level
-   */
-  public ParameterObject getParameterObjectNoTransform() {
-    return (ParameterObject) getChildNoTransform(0);
-  }
-  /** @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/Password.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java
deleted file mode 100644
index d351d574..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Password.java
+++ /dev/null
@@ -1,193 +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 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:115
- * @astdecl Password : ASTNode ::= OAuthFlowObject;
- * @production Password : {@link ASTNode} ::= <span class="component">{@link OAuthFlowObject}</span>;
-
- */
-public class Password extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Password() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OAuthFlowObject"},
-    type = {"OAuthFlowObject"},
-    kind = {"Child"}
-  )
-  public Password(OAuthFlowObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Password clone() throws CloneNotSupportedException {
-    Password node = (Password) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Password copy() {
-    try {
-      Password node = (Password) 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 Password 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 Password treeCopyNoTransform() {
-    Password tree = (Password) 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 Password treeCopy() {
-    Password tree = (Password) 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);    
-  }
-  /**
-   * Replaces the OAuthFlowObject child.
-   * @param node The new node to replace the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  public void setOAuthFlowObject(OAuthFlowObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OAuthFlowObject")
-  public OAuthFlowObject getOAuthFlowObject() {
-    return (OAuthFlowObject) getChild(0);
-  }
-  /**
-   * Retrieves the OAuthFlowObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OAuthFlowObject child.
-   * @apilevel low-level
-   */
-  public OAuthFlowObject getOAuthFlowObjectNoTransform() {
-    return (OAuthFlowObject) getChildNoTransform(0);
-  }
-  /** @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/Patch.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java
deleted file mode 100644
index a9db89fe..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Patch.java
+++ /dev/null
@@ -1,193 +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 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:45
- * @astdecl Patch : ASTNode ::= OperationObject;
- * @production Patch : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Patch extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Patch() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Patch(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Patch clone() throws CloneNotSupportedException {
-    Patch node = (Patch) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Patch copy() {
-    try {
-      Patch node = (Patch) 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 Patch 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 Patch treeCopyNoTransform() {
-    Patch tree = (Patch) 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 Patch treeCopy() {
-    Patch tree = (Patch) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/PathItem.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItem.java
deleted file mode 100644
index 2f95a885..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathItem.java
+++ /dev/null
@@ -1,1110 +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 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 PathItem : ASTNode ::= <Ref:String> <Summary:String> <Description:String> [Get] [Put] [Post] [Delete] [Options] [Head] [Patch] [Trace] ServerObject* ParameterObject* Extension*;
- * @production PathItem : {@link ASTNode} ::= <span class="component">&lt;Ref:String&gt;</span> <span class="component">&lt;Summary:String&gt;</span> <span class="component">&lt;Description:String&gt;</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 ParameterObject}*</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class PathItem extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:272
-   */
-  public static Path composePath (PathItem pathItem){
-        Path path = new Path();
-
-
-        if( !pathItem.getRef().isEmpty() )
-        path.setRef(pathItem.getRef());
-        if( !pathItem.getSummary().isEmpty())
-        path.setSummary(pathItem.getSummary());
-        if( !pathItem.getDescription().isEmpty() )
-        path.setDescription(pathItem.getDescription());
-        if( pathItem.hasGet() )
-        path.setGet( OperationObject.composeOperation(pathItem.getGet().getOperationObject()) );
-        if( pathItem.hasPut() )
-        path.setPut( OperationObject.composeOperation(pathItem.getPut().getOperationObject()) );
-        if( pathItem.hasPost() )
-        path.setPost( OperationObject.composeOperation(pathItem.getPost().getOperationObject()) );
-        if( pathItem.hasDelete() )
-        path.setDelete( OperationObject.composeOperation(pathItem.getDelete().getOperationObject()) );
-        if( pathItem.hasOptions() )
-        path.setOptions( OperationObject.composeOperation(pathItem.getOptions().getOperationObject()) );
-        if( pathItem.hasHead() )
-        path.setHead( OperationObject.composeOperation(pathItem.getHead().getOperationObject()) );
-        if( pathItem.hasPatch() )
-        path.setPatch( OperationObject.composeOperation(pathItem.getPatch().getOperationObject()) );
-        if( pathItem.getNumServerObject() != 0 ){
-        for( ServerObject s : pathItem.getServerObjects() )
-        path.addServer( ServerObject.composeServer(s) );
-        }
-        if( pathItem.getNumParameterObject() != 0 ){
-        for( ParameterObject p : pathItem.getParameterObjects() )
-        path.addParameter( ParameterObject.composeParameter(p) );
-        }
-        if( pathItem.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : pathItem.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        path.setExtensions(extensionMap);
-        }
-
-        return path;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:277
-   */
-  public static PathItem parsePath(Path path){
-        PathItem pathItem = new PathItem();
-
-
-        if( path.getRef() != null )
-        pathItem.setRef(path.getRef());
-        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() ) );
-        pathItem.setGet(get);
-        }
-        if( path.getPut() != null ){
-        Put put = new Put();
-        put.setOperationObject( OperationObject.parseOperation( path.getPut() ) );
-        pathItem.setPut(put);
-        }
-        if( path.getPost() != null ){
-        Post post = new Post();
-        post.setOperationObject( OperationObject.parseOperation( path.getPost() ) );
-        pathItem.setPost(post);
-        }
-        if( path.getDelete() != null ){
-        Delete delete = new Delete();
-        delete.setOperationObject( OperationObject.parseOperation( path.getDelete() ) );
-        pathItem.setDelete(delete);
-        }
-        if( path.getOptions() != null ){
-        Options options = new Options();
-        options.setOperationObject( OperationObject.parseOperation( path.getOptions() ) );
-        pathItem.setOptions(options);
-        }
-        if( path.getHead() != null ){
-        Head head = new Head();
-        head.setOperationObject( OperationObject.parseOperation( path.getHead() ) );
-        pathItem.setHead(head);
-        }
-        if( path.getPatch() != null ){
-        Patch patch = new Patch();
-        patch.setOperationObject( OperationObject.parseOperation( path.getPatch() ) );
-        pathItem.setPatch(patch);
-        }
-        if( path.getTrace() != null ){
-        Trace trace = new Trace();
-        trace.setOperationObject( OperationObject.parseOperation( path.getTrace() ) );
-        pathItem.setTrace(trace);
-        }
-        if( path.getServers() != null ){
-        for(Server s : path.getServers())
-        pathItem.addServerObject( ServerObject.parseServer(s));
-        }
-        if( path.getParameters() != null ){
-        for(Parameter p : path.getParameters()){
-        if( p.isRef() ) {
-        ParameterObject parameterObject = new ParameterObject();
-        parameterObject.setRef(p.getRef());
-        pathItem.addParameterObject(parameterObject);
-        }
-        else
-        pathItem.addParameterObject(ParameterObject.parseParameter(p));
-        }
-        }
-        if( path.getExtensions() != null ){
-        for( String key : path.getExtensions().keySet() )
-        pathItem.addExtension(new Extension(key, path.getExtensions().get(key)));
-        }
-
-        return pathItem;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public PathItem() {
-    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() {
-    children = new ASTNode[11];
-    setChild(new Opt(), 0);
-    setChild(new Opt(), 1);
-    setChild(new Opt(), 2);
-    setChild(new Opt(), 3);
-    setChild(new Opt(), 4);
-    setChild(new Opt(), 5);
-    setChild(new Opt(), 6);
-    setChild(new Opt(), 7);
-    setChild(new JastAddList(), 8);
-    setChild(new JastAddList(), 9);
-    setChild(new JastAddList(), 10);
-  }
-  /**
-   * @declaredat ASTNode:24
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Ref", "Summary", "Description", "Get", "Put", "Post", "Delete", "Options", "Head", "Patch", "Trace", "ServerObject", "ParameterObject", "Extension"},
-    type = {"String", "String", "String", "Opt<Get>", "Opt<Put>", "Opt<Post>", "Opt<Delete>", "Opt<Options>", "Opt<Head>", "Opt<Patch>", "Opt<Trace>", "JastAddList<ServerObject>", "JastAddList<ParameterObject>", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Opt", "Opt", "Opt", "Opt", "Opt", "Opt", "Opt", "Opt", "List", "List", "List"}
-  )
-  public PathItem(String p0, String p1, String p2, Opt<Get> p3, Opt<Put> p4, Opt<Post> p5, Opt<Delete> p6, Opt<Options> p7, Opt<Head> p8, Opt<Patch> p9, Opt<Trace> p10, JastAddList<ServerObject> p11, JastAddList<ParameterObject> p12, JastAddList<Extension> p13) {
-    setRef(p0);
-    setSummary(p1);
-    setDescription(p2);
-    setChild(p3, 0);
-    setChild(p4, 1);
-    setChild(p5, 2);
-    setChild(p6, 3);
-    setChild(p7, 4);
-    setChild(p8, 5);
-    setChild(p9, 6);
-    setChild(p10, 7);
-    setChild(p11, 8);
-    setChild(p12, 9);
-    setChild(p13, 10);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:46
-   */
-  protected int numChildren() {
-    return 11;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:52
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:56
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:60
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:64
-   */
-  public PathItem clone() throws CloneNotSupportedException {
-    PathItem node = (PathItem) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:69
-   */
-  public PathItem copy() {
-    try {
-      PathItem node = (PathItem) 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:88
-   */
-  @Deprecated
-  public PathItem 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:98
-   */
-  public PathItem treeCopyNoTransform() {
-    PathItem tree = (PathItem) 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:118
-   */
-  public PathItem treeCopy() {
-    PathItem tree = (PathItem) 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:132
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Ref == ((PathItem) node).tokenString_Ref) && (tokenString_Summary == ((PathItem) node).tokenString_Summary) && (tokenString_Description == ((PathItem) node).tokenString_Description);    
-  }
-  /**
-   * 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 Summary.
-   * @param value The new value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  public void setSummary(String value) {
-    tokenString_Summary = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Summary;
-  /**
-   * Retrieves the value for the lexeme Summary.
-   * @return The value for the lexeme Summary.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Summary")
-  public String getSummary() {
-    return tokenString_Summary != null ? tokenString_Summary : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the optional node for the Get child. This is the <code>Opt</code>
-   * node containing the child Get, not the actual child!
-   * @param opt The new node to be used as the optional node for the Get child.
-   * @apilevel low-level
-   */
-  public void setGetOpt(Opt<Get> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) Get child.
-   * @param node The new node to be used as the Get child.
-   * @apilevel high-level
-   */
-  public void setGet(Get node) {
-    getGetOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Get child exists.
-   * @return {@code true} if the optional Get child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasGet() {
-    return getGetOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Get child.
-   * @return The Get child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Get getGet() {
-    return (Get) getGetOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Get child. This is the <code>Opt</code> node containing the child Get, not the actual child!
-   * @return The optional node for child the Get child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Get")
-  public Opt<Get> getGetOpt() {
-    return (Opt<Get>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child Get. This is the <code>Opt</code> node containing the child Get, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Get.
-   * @apilevel low-level
-   */
-  public Opt<Get> getGetOptNoTransform() {
-    return (Opt<Get>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the optional node for the Put child. This is the <code>Opt</code>
-   * node containing the child Put, not the actual child!
-   * @param opt The new node to be used as the optional node for the Put child.
-   * @apilevel low-level
-   */
-  public void setPutOpt(Opt<Put> opt) {
-    setChild(opt, 1);
-  }
-  /**
-   * Replaces the (optional) Put child.
-   * @param node The new node to be used as the Put child.
-   * @apilevel high-level
-   */
-  public void setPut(Put node) {
-    getPutOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Put child exists.
-   * @return {@code true} if the optional Put child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasPut() {
-    return getPutOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Put child.
-   * @return The Put child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Put getPut() {
-    return (Put) getPutOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Put child. This is the <code>Opt</code> node containing the child Put, not the actual child!
-   * @return The optional node for child the Put child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Put")
-  public Opt<Put> getPutOpt() {
-    return (Opt<Put>) getChild(1);
-  }
-  /**
-   * Retrieves the optional node for child Put. This is the <code>Opt</code> node containing the child Put, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Put.
-   * @apilevel low-level
-   */
-  public Opt<Put> getPutOptNoTransform() {
-    return (Opt<Put>) getChildNoTransform(1);
-  }
-  /**
-   * Replaces the optional node for the Post child. This is the <code>Opt</code>
-   * node containing the child Post, not the actual child!
-   * @param opt The new node to be used as the optional node for the Post child.
-   * @apilevel low-level
-   */
-  public void setPostOpt(Opt<Post> opt) {
-    setChild(opt, 2);
-  }
-  /**
-   * Replaces the (optional) Post child.
-   * @param node The new node to be used as the Post child.
-   * @apilevel high-level
-   */
-  public void setPost(Post node) {
-    getPostOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Post child exists.
-   * @return {@code true} if the optional Post child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasPost() {
-    return getPostOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Post child.
-   * @return The Post child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Post getPost() {
-    return (Post) getPostOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Post child. This is the <code>Opt</code> node containing the child Post, not the actual child!
-   * @return The optional node for child the Post child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Post")
-  public Opt<Post> getPostOpt() {
-    return (Opt<Post>) getChild(2);
-  }
-  /**
-   * Retrieves the optional node for child Post. This is the <code>Opt</code> node containing the child Post, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Post.
-   * @apilevel low-level
-   */
-  public Opt<Post> getPostOptNoTransform() {
-    return (Opt<Post>) getChildNoTransform(2);
-  }
-  /**
-   * Replaces the optional node for the Delete child. This is the <code>Opt</code>
-   * node containing the child Delete, not the actual child!
-   * @param opt The new node to be used as the optional node for the Delete child.
-   * @apilevel low-level
-   */
-  public void setDeleteOpt(Opt<Delete> opt) {
-    setChild(opt, 3);
-  }
-  /**
-   * Replaces the (optional) Delete child.
-   * @param node The new node to be used as the Delete child.
-   * @apilevel high-level
-   */
-  public void setDelete(Delete node) {
-    getDeleteOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Delete child exists.
-   * @return {@code true} if the optional Delete child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasDelete() {
-    return getDeleteOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Delete child.
-   * @return The Delete child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Delete getDelete() {
-    return (Delete) getDeleteOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Delete child. This is the <code>Opt</code> node containing the child Delete, not the actual child!
-   * @return The optional node for child the Delete child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Delete")
-  public Opt<Delete> getDeleteOpt() {
-    return (Opt<Delete>) getChild(3);
-  }
-  /**
-   * Retrieves the optional node for child Delete. This is the <code>Opt</code> node containing the child Delete, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Delete.
-   * @apilevel low-level
-   */
-  public Opt<Delete> getDeleteOptNoTransform() {
-    return (Opt<Delete>) getChildNoTransform(3);
-  }
-  /**
-   * Replaces the optional node for the Options child. This is the <code>Opt</code>
-   * node containing the child Options, not the actual child!
-   * @param opt The new node to be used as the optional node for the Options child.
-   * @apilevel low-level
-   */
-  public void setOptionsOpt(Opt<Options> opt) {
-    setChild(opt, 4);
-  }
-  /**
-   * Replaces the (optional) Options child.
-   * @param node The new node to be used as the Options child.
-   * @apilevel high-level
-   */
-  public void setOptions(Options node) {
-    getOptionsOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Options child exists.
-   * @return {@code true} if the optional Options child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasOptions() {
-    return getOptionsOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Options child.
-   * @return The Options child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Options getOptions() {
-    return (Options) getOptionsOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Options child. This is the <code>Opt</code> node containing the child Options, not the actual child!
-   * @return The optional node for child the Options child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Options")
-  public Opt<Options> getOptionsOpt() {
-    return (Opt<Options>) getChild(4);
-  }
-  /**
-   * Retrieves the optional node for child Options. This is the <code>Opt</code> node containing the child Options, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Options.
-   * @apilevel low-level
-   */
-  public Opt<Options> getOptionsOptNoTransform() {
-    return (Opt<Options>) getChildNoTransform(4);
-  }
-  /**
-   * Replaces the optional node for the Head child. This is the <code>Opt</code>
-   * node containing the child Head, not the actual child!
-   * @param opt The new node to be used as the optional node for the Head child.
-   * @apilevel low-level
-   */
-  public void setHeadOpt(Opt<Head> opt) {
-    setChild(opt, 5);
-  }
-  /**
-   * Replaces the (optional) Head child.
-   * @param node The new node to be used as the Head child.
-   * @apilevel high-level
-   */
-  public void setHead(Head node) {
-    getHeadOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Head child exists.
-   * @return {@code true} if the optional Head child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasHead() {
-    return getHeadOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Head child.
-   * @return The Head child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Head getHead() {
-    return (Head) getHeadOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Head child. This is the <code>Opt</code> node containing the child Head, not the actual child!
-   * @return The optional node for child the Head child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Head")
-  public Opt<Head> getHeadOpt() {
-    return (Opt<Head>) getChild(5);
-  }
-  /**
-   * Retrieves the optional node for child Head. This is the <code>Opt</code> node containing the child Head, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Head.
-   * @apilevel low-level
-   */
-  public Opt<Head> getHeadOptNoTransform() {
-    return (Opt<Head>) getChildNoTransform(5);
-  }
-  /**
-   * Replaces the optional node for the Patch child. This is the <code>Opt</code>
-   * node containing the child Patch, not the actual child!
-   * @param opt The new node to be used as the optional node for the Patch child.
-   * @apilevel low-level
-   */
-  public void setPatchOpt(Opt<Patch> opt) {
-    setChild(opt, 6);
-  }
-  /**
-   * Replaces the (optional) Patch child.
-   * @param node The new node to be used as the Patch child.
-   * @apilevel high-level
-   */
-  public void setPatch(Patch node) {
-    getPatchOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Patch child exists.
-   * @return {@code true} if the optional Patch child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasPatch() {
-    return getPatchOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Patch child.
-   * @return The Patch child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Patch getPatch() {
-    return (Patch) getPatchOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Patch child. This is the <code>Opt</code> node containing the child Patch, not the actual child!
-   * @return The optional node for child the Patch child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Patch")
-  public Opt<Patch> getPatchOpt() {
-    return (Opt<Patch>) getChild(6);
-  }
-  /**
-   * Retrieves the optional node for child Patch. This is the <code>Opt</code> node containing the child Patch, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Patch.
-   * @apilevel low-level
-   */
-  public Opt<Patch> getPatchOptNoTransform() {
-    return (Opt<Patch>) getChildNoTransform(6);
-  }
-  /**
-   * Replaces the optional node for the Trace child. This is the <code>Opt</code>
-   * node containing the child Trace, not the actual child!
-   * @param opt The new node to be used as the optional node for the Trace child.
-   * @apilevel low-level
-   */
-  public void setTraceOpt(Opt<Trace> opt) {
-    setChild(opt, 7);
-  }
-  /**
-   * Replaces the (optional) Trace child.
-   * @param node The new node to be used as the Trace child.
-   * @apilevel high-level
-   */
-  public void setTrace(Trace node) {
-    getTraceOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional Trace child exists.
-   * @return {@code true} if the optional Trace child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasTrace() {
-    return getTraceOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) Trace child.
-   * @return The Trace child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public Trace getTrace() {
-    return (Trace) getTraceOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the Trace child. This is the <code>Opt</code> node containing the child Trace, not the actual child!
-   * @return The optional node for child the Trace child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="Trace")
-  public Opt<Trace> getTraceOpt() {
-    return (Opt<Trace>) getChild(7);
-  }
-  /**
-   * Retrieves the optional node for child Trace. This is the <code>Opt</code> node containing the child Trace, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child Trace.
-   * @apilevel low-level
-   */
-  public Opt<Trace> getTraceOptNoTransform() {
-    return (Opt<Trace>) getChildNoTransform(7);
-  }
-  /**
-   * Replaces the ServerObject list.
-   * @param list The new list node to be used as the ServerObject list.
-   * @apilevel high-level
-   */
-  public void setServerObjectList(JastAddList<ServerObject> list) {
-    setChild(list, 8);
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * @return Number of children in the ServerObject list.
-   * @apilevel high-level
-   */
-  public int getNumServerObject() {
-    return getServerObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ServerObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ServerObject list.
-   * @apilevel low-level
-   */
-  public int getNumServerObjectNoTransform() {
-    return getServerObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ServerObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ServerObject list.
-   * @apilevel high-level
-   */
-  public ServerObject getServerObject(int i) {
-    return (ServerObject) getServerObjectList().getChild(i);
-  }
-  /**
-   * Check whether the ServerObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasServerObject() {
-    return getServerObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ServerObject list.
-   * @param node The element to append to the ServerObject list.
-   * @apilevel high-level
-   */
-  public void addServerObject(ServerObject node) {
-    JastAddList<ServerObject> list = (parent == null) ? getServerObjectListNoTransform() : getServerObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addServerObjectNoTransform(ServerObject node) {
-    JastAddList<ServerObject> list = getServerObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ServerObject 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 setServerObject(ServerObject node, int i) {
-    JastAddList<ServerObject> list = getServerObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ServerObject")
-  public JastAddList<ServerObject> getServerObjectList() {
-    JastAddList<ServerObject> list = (JastAddList<ServerObject>) getChild(8);
-    return list;
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectListNoTransform() {
-    return (JastAddList<ServerObject>) getChildNoTransform(8);
-  }
-  /**
-   * @return the element at index {@code i} in the ServerObject list without
-   * triggering rewrites.
-   */
-  public ServerObject getServerObjectNoTransform(int i) {
-    return (ServerObject) getServerObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * @return The node representing the ServerObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<ServerObject> getServerObjects() {
-    return getServerObjectList();
-  }
-  /**
-   * Retrieves the ServerObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerObject> getServerObjectsNoTransform() {
-    return getServerObjectListNoTransform();
-  }
-  /**
-   * Replaces the ParameterObject list.
-   * @param list The new list node to be used as the ParameterObject list.
-   * @apilevel high-level
-   */
-  public void setParameterObjectList(JastAddList<ParameterObject> list) {
-    setChild(list, 9);
-  }
-  /**
-   * Retrieves the number of children in the ParameterObject list.
-   * @return Number of children in the ParameterObject list.
-   * @apilevel high-level
-   */
-  public int getNumParameterObject() {
-    return getParameterObjectList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ParameterObject list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ParameterObject list.
-   * @apilevel low-level
-   */
-  public int getNumParameterObjectNoTransform() {
-    return getParameterObjectListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ParameterObject list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ParameterObject list.
-   * @apilevel high-level
-   */
-  public ParameterObject getParameterObject(int i) {
-    return (ParameterObject) getParameterObjectList().getChild(i);
-  }
-  /**
-   * Check whether the ParameterObject list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasParameterObject() {
-    return getParameterObjectList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ParameterObject list.
-   * @param node The element to append to the ParameterObject list.
-   * @apilevel high-level
-   */
-  public void addParameterObject(ParameterObject node) {
-    JastAddList<ParameterObject> list = (parent == null) ? getParameterObjectListNoTransform() : getParameterObjectList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addParameterObjectNoTransform(ParameterObject node) {
-    JastAddList<ParameterObject> list = getParameterObjectListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ParameterObject 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 setParameterObject(ParameterObject node, int i) {
-    JastAddList<ParameterObject> list = getParameterObjectList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * @return The node representing the ParameterObject list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ParameterObject")
-  public JastAddList<ParameterObject> getParameterObjectList() {
-    JastAddList<ParameterObject> list = (JastAddList<ParameterObject>) getChild(9);
-    return list;
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterObject> getParameterObjectListNoTransform() {
-    return (JastAddList<ParameterObject>) getChildNoTransform(9);
-  }
-  /**
-   * @return the element at index {@code i} in the ParameterObject list without
-   * triggering rewrites.
-   */
-  public ParameterObject getParameterObjectNoTransform(int i) {
-    return (ParameterObject) getParameterObjectListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * @return The node representing the ParameterObject list.
-   * @apilevel high-level
-   */
-  public JastAddList<ParameterObject> getParameterObjects() {
-    return getParameterObjectList();
-  }
-  /**
-   * Retrieves the ParameterObject list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ParameterObject list.
-   * @apilevel low-level
-   */
-  public JastAddList<ParameterObject> getParameterObjectsNoTransform() {
-    return getParameterObjectListNoTransform();
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 10);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(10);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(10);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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
deleted file mode 100644
index 3a7c8b30..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PathsObject.java
+++ /dev/null
@@ -1,237 +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 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:35
- * @astdecl PathsObject : ASTNode ::= <Ref:String> PathItem;
- * @production PathsObject : {@link ASTNode} ::= <span class="component">&lt;Ref:String&gt;</span> <span class="component">{@link PathItem}</span>;
-
- */
-public class PathsObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jadd:20
-   */
-  public void sendRandomRequests(String baseUrl) throws Exception {
-        if( this.getPathItem().hasGet() ){
-        IntStream.range(0, 1).forEach( i -> {
-        try {
-        this.getPathItem().getGet().getOperationObject().sendRandomGET(baseUrl+this.getRef());
-        } catch (Exception e) {
-        e.printStackTrace();
-        }
-        });
-        }
-        if( this.getPathItem().hasPost() ){
-        IntStream.range(0, 1).forEach( i -> {
-        try {
-        this.getPathItem().getPost().getOperationObject().sendRandomPOST(baseUrl+this.getRef());
-        } catch (Exception e) {
-        e.printStackTrace();
-        }
-        });}
-    }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public PathsObject() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Ref", "PathItem"},
-    type = {"String", "PathItem"},
-    kind = {"Token", "Child"}
-  )
-  public PathsObject(String p0, PathItem p1) {
-    setRef(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public PathsObject clone() throws CloneNotSupportedException {
-    PathsObject node = (PathsObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public PathsObject copy() {
-    try {
-      PathsObject node = (PathsObject) 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:65
-   */
-  @Deprecated
-  public PathsObject 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:75
-   */
-  public PathsObject treeCopyNoTransform() {
-    PathsObject tree = (PathsObject) 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:95
-   */
-  public PathsObject treeCopy() {
-    PathsObject tree = (PathsObject) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Ref == ((PathsObject) node).tokenString_Ref);    
-  }
-  /**
-   * 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 PathItem child.
-   * @param node The new node to replace the PathItem child.
-   * @apilevel high-level
-   */
-  public void setPathItem(PathItem node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the PathItem child.
-   * @return The current node used as the PathItem child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="PathItem")
-  public PathItem getPathItem() {
-    return (PathItem) getChild(0);
-  }
-  /**
-   * Retrieves the PathItem child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the PathItem child.
-   * @apilevel low-level
-   */
-  public PathItem getPathItemNoTransform() {
-    return (PathItem) getChildNoTransform(0);
-  }
-  /** @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/Post.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
deleted file mode 100644
index 0542b2ec..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
+++ /dev/null
@@ -1,193 +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 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:41
- * @astdecl Post : ASTNode ::= OperationObject;
- * @production Post : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Post extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Post() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Post(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Post clone() throws CloneNotSupportedException {
-    Post node = (Post) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Post copy() {
-    try {
-      Post node = (Post) 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 Post 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 Post treeCopyNoTransform() {
-    Post tree = (Post) 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 Post treeCopy() {
-    Post tree = (Post) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/PropertyItem.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java
deleted file mode 100644
index c84587fe..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/PropertyItem.java
+++ /dev/null
@@ -1,214 +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 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:96
- * @astdecl PropertyItem : ASTNode ::= <Name:String> SchemaObject;
- * @production PropertyItem : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">{@link SchemaObject}</span>;
-
- */
-public class PropertyItem extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public PropertyItem() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "SchemaObject"},
-    type = {"String", "SchemaObject"},
-    kind = {"Token", "Child"}
-  )
-  public PropertyItem(String p0, SchemaObject p1) {
-    setName(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public PropertyItem clone() throws CloneNotSupportedException {
-    PropertyItem node = (PropertyItem) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public PropertyItem copy() {
-    try {
-      PropertyItem node = (PropertyItem) 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:65
-   */
-  @Deprecated
-  public PropertyItem 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:75
-   */
-  public PropertyItem treeCopyNoTransform() {
-    PropertyItem tree = (PropertyItem) 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:95
-   */
-  public PropertyItem treeCopy() {
-    PropertyItem tree = (PropertyItem) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((PropertyItem) node).tokenString_Name);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/Put.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java
deleted file mode 100644
index 946dd8c4..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Put.java
+++ /dev/null
@@ -1,193 +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 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:40
- * @astdecl Put : ASTNode ::= OperationObject;
- * @production Put : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Put extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Put() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Put(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Put clone() throws CloneNotSupportedException {
-    Put node = (Put) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Put copy() {
-    try {
-      Put node = (Put) 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 Put 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 Put treeCopyNoTransform() {
-    Put tree = (Put) 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 Put treeCopy() {
-    Put tree = (Put) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/RequestBodyObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java
deleted file mode 100644
index 151f79c5..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyObject.java
+++ /dev/null
@@ -1,383 +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 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:60
- * @astdecl RequestBodyObject : ASTNode ::= <Description:String> ContentTuple* <Required:Boolean> <Ref:String>;
- * @production RequestBodyObject : {@link ASTNode} ::= <span class="component">&lt;Description:String&gt;</span> <span class="component">{@link ContentTuple}*</span> <span class="component">&lt;Required:Boolean&gt;</span> <span class="component">&lt;Ref:String&gt;</span>;
-
- */
-public class RequestBodyObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:440
-   */
-  public static org.openapi4j.parser.model.v3.RequestBody composeRequestBody (RequestBodyObject requestBodyObject){
-        org.openapi4j.parser.model.v3.RequestBody requestBody = new org.openapi4j.parser.model.v3.RequestBody();
-
-        if( requestBodyObject.getNumContentTuple() != 0 ){
-        Map<String, MediaType> contents = new HashMap<>();
-        for( ContentTuple t : requestBodyObject.getContentTuples())
-        contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject()));
-        requestBody.setContentMediaTypes(contents);
-        }
-        if( !requestBodyObject.getDescription().isEmpty() )
-        requestBody.setDescription(requestBodyObject.getDescription());
-        if( requestBodyObject.getRequired() != null )
-        requestBody.setRequired(requestBodyObject.getRequired());
-        if( !requestBodyObject.getRef().isEmpty() )
-        requestBody.setRef(requestBodyObject.getRef());
-
-        return requestBody;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:457
-   */
-  public static RequestBodyObject parseRequestBody(org.openapi4j.parser.model.v3.RequestBody requestBody){
-        RequestBodyObject requestBodyObject = new RequestBodyObject();
-
-        if( requestBody.getContentMediaTypes() != null ) {
-        for (String key : requestBody.getContentMediaTypes().keySet())
-        requestBodyObject.addContentTuple(new ContentTuple(key, MediaTypeObject.parseMediaType(requestBody.getContentMediaType(key))));
-        }
-        if( requestBody.getDescription() != null )
-        requestBodyObject.setDescription(requestBody.getDescription());
-        if( requestBody.getRequired() != null )
-        requestBodyObject.setRequired( requestBody.getRequired() );
-        if( requestBody.isRef() )
-        requestBodyObject.setRef(requestBody.getRef());
-
-        return requestBodyObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public RequestBodyObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Description", "ContentTuple", "Required", "Ref"},
-    type = {"String", "JastAddList<ContentTuple>", "Boolean", "String"},
-    kind = {"Token", "List", "Token", "Token"}
-  )
-  public RequestBodyObject(String p0, JastAddList<ContentTuple> p1, Boolean p2, String p3) {
-    setDescription(p0);
-    setChild(p1, 0);
-    setRequired(p2);
-    setRef(p3);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:26
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:32
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:36
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:40
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public RequestBodyObject clone() throws CloneNotSupportedException {
-    RequestBodyObject node = (RequestBodyObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:49
-   */
-  public RequestBodyObject copy() {
-    try {
-      RequestBodyObject node = (RequestBodyObject) 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:68
-   */
-  @Deprecated
-  public RequestBodyObject 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:78
-   */
-  public RequestBodyObject treeCopyNoTransform() {
-    RequestBodyObject tree = (RequestBodyObject) 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:98
-   */
-  public RequestBodyObject treeCopy() {
-    RequestBodyObject tree = (RequestBodyObject) 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:112
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Description == ((RequestBodyObject) node).tokenString_Description) && (tokenBoolean_Required == ((RequestBodyObject) node).tokenBoolean_Required) && (tokenString_Ref == ((RequestBodyObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the ContentTuple list.
-   * @param list The new list node to be used as the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void setContentTupleList(JastAddList<ContentTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public int getNumContentTuple() {
-    return getContentTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel low-level
-   */
-  public int getNumContentTupleNoTransform() {
-    return getContentTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ContentTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public ContentTuple getContentTuple(int i) {
-    return (ContentTuple) getContentTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ContentTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasContentTuple() {
-    return getContentTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ContentTuple list.
-   * @param node The element to append to the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void addContentTuple(ContentTuple node) {
-    JastAddList<ContentTuple> list = (parent == null) ? getContentTupleListNoTransform() : getContentTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addContentTupleNoTransform(ContentTuple node) {
-    JastAddList<ContentTuple> list = getContentTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ContentTuple 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 setContentTuple(ContentTuple node, int i) {
-    JastAddList<ContentTuple> list = getContentTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ContentTuple")
-  public JastAddList<ContentTuple> getContentTupleList() {
-    JastAddList<ContentTuple> list = (JastAddList<ContentTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTupleListNoTransform() {
-    return (JastAddList<ContentTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the ContentTuple list without
-   * triggering rewrites.
-   */
-  public ContentTuple getContentTupleNoTransform(int i) {
-    return (ContentTuple) getContentTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ContentTuple> getContentTuples() {
-    return getContentTupleList();
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTuplesNoTransform() {
-    return getContentTupleListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Required.
-   * @param value The new value for the lexeme Required.
-   * @apilevel high-level
-   */
-  public void setRequired(Boolean value) {
-    tokenBoolean_Required = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Required;
-  /**
-   * Retrieves the value for the lexeme Required.
-   * @return The value for the lexeme Required.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Required")
-  public Boolean getRequired() {
-    return tokenBoolean_Required;
-  }
-  /**
-   * 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 : "";
-  }
-  /** @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/RequestBodyTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java
deleted file mode 100644
index 5d18284a..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequestBodyTuple.java
+++ /dev/null
@@ -1,214 +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 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:27
- * @astdecl RequestBodyTuple : ASTNode ::= <Key:String> RequestBodyObject;
- * @production RequestBodyTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link RequestBodyObject}</span>;
-
- */
-public class RequestBodyTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public RequestBodyTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "RequestBodyObject"},
-    type = {"String", "RequestBodyObject"},
-    kind = {"Token", "Child"}
-  )
-  public RequestBodyTuple(String p0, RequestBodyObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public RequestBodyTuple clone() throws CloneNotSupportedException {
-    RequestBodyTuple node = (RequestBodyTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public RequestBodyTuple copy() {
-    try {
-      RequestBodyTuple node = (RequestBodyTuple) 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:65
-   */
-  @Deprecated
-  public RequestBodyTuple 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:75
-   */
-  public RequestBodyTuple treeCopyNoTransform() {
-    RequestBodyTuple tree = (RequestBodyTuple) 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:95
-   */
-  public RequestBodyTuple treeCopy() {
-    RequestBodyTuple tree = (RequestBodyTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((RequestBodyTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the RequestBodyObject child.
-   * @param node The new node to replace the RequestBodyObject child.
-   * @apilevel high-level
-   */
-  public void setRequestBodyObject(RequestBodyObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the RequestBodyObject child.
-   * @return The current node used as the RequestBodyObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="RequestBodyObject")
-  public RequestBodyObject getRequestBodyObject() {
-    return (RequestBodyObject) getChild(0);
-  }
-  /**
-   * Retrieves the RequestBodyObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the RequestBodyObject child.
-   * @apilevel low-level
-   */
-  public RequestBodyObject getRequestBodyObjectNoTransform() {
-    return (RequestBodyObject) getChildNoTransform(0);
-  }
-  /** @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/RequiredField.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java
deleted file mode 100644
index 04961216..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/RequiredField.java
+++ /dev/null
@@ -1,186 +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 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:97
- * @astdecl RequiredField : ASTNode ::= <Value:String>;
- * @production RequiredField : {@link ASTNode} ::= <span class="component">&lt;Value:String&gt;</span>;
-
- */
-public class RequiredField extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public RequiredField() {
-    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 = {"Value"},
-    type = {"String"},
-    kind = {"Token"}
-  )
-  public RequiredField(String p0) {
-    setValue(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 RequiredField clone() throws CloneNotSupportedException {
-    RequiredField node = (RequiredField) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public RequiredField copy() {
-    try {
-      RequiredField node = (RequiredField) 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 RequiredField 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 RequiredField treeCopyNoTransform() {
-    RequiredField tree = (RequiredField) 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 RequiredField treeCopy() {
-    RequiredField tree = (RequiredField) 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_Value == ((RequiredField) node).tokenString_Value);    
-  }
-  /**
-   * Replaces the lexeme Value.
-   * @param value The new value for the lexeme Value.
-   * @apilevel high-level
-   */
-  public void setValue(String value) {
-    tokenString_Value = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Value;
-  /**
-   * Retrieves the value for the lexeme Value.
-   * @return The value for the lexeme Value.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Value")
-  public String getValue() {
-    return tokenString_Value != null ? tokenString_Value : "";
-  }
-  /** @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/ResponseObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java
deleted file mode 100644
index aa382360..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseObject.java
+++ /dev/null
@@ -1,602 +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 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:70
- * @astdecl ResponseObject : ASTNode ::= <Ref:String> <Description:String> HeaderTuple* ContentTuple* LinkTuple*;
- * @production ResponseObject : {@link ASTNode} ::= <span class="component">&lt;Ref:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">{@link HeaderTuple}*</span> <span class="component">{@link ContentTuple}*</span> <span class="component">{@link LinkTuple}*</span>;
-
- */
-public class ResponseObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:507
-   */
-  public static Response composeResponse (ResponseObject responseObject){
-        Response response = new Response();
-
-        if( !responseObject.getRef().isEmpty() )
-        response.setRef(responseObject.getRef());
-        if( !responseObject.getDescription().isEmpty() )
-        response.setDescription(responseObject.getDescription());
-        if( responseObject.getNumHeaderTuple() != 0 ){
-        Map<String, Header> headers = new HashMap<>();
-        for( HeaderTuple t : responseObject.getHeaderTuples() )
-        headers.put(t.getKey(), HeaderObject.composeHeader(t.getHeaderObject()));
-        response.setHeaders(headers);
-        }
-        if( responseObject.getNumContentTuple() != 0 ){
-        Map<String, MediaType> contents = new HashMap<>();
-        for( ContentTuple t : responseObject.getContentTuples() )
-        contents.put(t.getKey(), MediaTypeObject.composeMediaType(t.getMediaTypeObject()));
-        response.setContentMediaTypes(contents);
-        }
-        if( responseObject.getNumLinkTuple() != 0 ){
-        Map<String, Link> links = new HashMap<>();
-        for( LinkTuple t : responseObject.getLinkTuples() )
-        links.put(t.getKey(), LinkObject.composeLink(t.getLinkObject()));
-        response.setLinks(links);
-        }
-
-        return response;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:514
-   */
-  public static ResponseObject parseResponse(Response response){
-        ResponseObject responseObject = new ResponseObject();
-
-        if( response.isRef() )
-        responseObject.setRef(response.getRef());
-        if( response.getDescription() != null )
-        responseObject.setDescription(response.getDescription());
-        if( response.getHeaders() != null ){
-        for( String key : response.getHeaders().keySet() )
-        responseObject.addHeaderTuple( new HeaderTuple(key, HeaderObject.parseHeader(response.getHeader(key))) );
-        }
-        if( response.getContentMediaTypes() != null ){
-        for( String key : response.getContentMediaTypes().keySet() )
-        responseObject.addContentTuple( new ContentTuple(key, MediaTypeObject.parseMediaType(response.getContentMediaType(key))) );
-        }
-        if( response.getLinks() != null ){
-        for( String key : response.getLinks().keySet() )
-        responseObject.addLinkTuple( new LinkTuple(key, LinkObject.parseLink(response.getLink(key))) );
-        }
-
-        return responseObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ResponseObject() {
-    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() {
-    children = new ASTNode[3];
-    setChild(new JastAddList(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new JastAddList(), 2);
-  }
-  /**
-   * @declaredat ASTNode:16
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Ref", "Description", "HeaderTuple", "ContentTuple", "LinkTuple"},
-    type = {"String", "String", "JastAddList<HeaderTuple>", "JastAddList<ContentTuple>", "JastAddList<LinkTuple>"},
-    kind = {"Token", "Token", "List", "List", "List"}
-  )
-  public ResponseObject(String p0, String p1, JastAddList<HeaderTuple> p2, JastAddList<ContentTuple> p3, JastAddList<LinkTuple> p4) {
-    setRef(p0);
-    setDescription(p1);
-    setChild(p2, 0);
-    setChild(p3, 1);
-    setChild(p4, 2);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:29
-   */
-  protected int numChildren() {
-    return 3;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:35
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:47
-   */
-  public ResponseObject clone() throws CloneNotSupportedException {
-    ResponseObject node = (ResponseObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:52
-   */
-  public ResponseObject copy() {
-    try {
-      ResponseObject node = (ResponseObject) 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:71
-   */
-  @Deprecated
-  public ResponseObject 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:81
-   */
-  public ResponseObject treeCopyNoTransform() {
-    ResponseObject tree = (ResponseObject) 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:101
-   */
-  public ResponseObject treeCopy() {
-    ResponseObject tree = (ResponseObject) 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:115
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Ref == ((ResponseObject) node).tokenString_Ref) && (tokenString_Description == ((ResponseObject) node).tokenString_Description);    
-  }
-  /**
-   * 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 Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the HeaderTuple list.
-   * @param list The new list node to be used as the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void setHeaderTupleList(JastAddList<HeaderTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public int getNumHeaderTuple() {
-    return getHeaderTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the HeaderTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public int getNumHeaderTupleNoTransform() {
-    return getHeaderTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the HeaderTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public HeaderTuple getHeaderTuple(int i) {
-    return (HeaderTuple) getHeaderTupleList().getChild(i);
-  }
-  /**
-   * Check whether the HeaderTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasHeaderTuple() {
-    return getHeaderTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the HeaderTuple list.
-   * @param node The element to append to the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public void addHeaderTuple(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = (parent == null) ? getHeaderTupleListNoTransform() : getHeaderTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addHeaderTupleNoTransform(HeaderTuple node) {
-    JastAddList<HeaderTuple> list = getHeaderTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the HeaderTuple 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 setHeaderTuple(HeaderTuple node, int i) {
-    JastAddList<HeaderTuple> list = getHeaderTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="HeaderTuple")
-  public JastAddList<HeaderTuple> getHeaderTupleList() {
-    JastAddList<HeaderTuple> list = (JastAddList<HeaderTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTupleListNoTransform() {
-    return (JastAddList<HeaderTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the HeaderTuple list without
-   * triggering rewrites.
-   */
-  public HeaderTuple getHeaderTupleNoTransform(int i) {
-    return (HeaderTuple) getHeaderTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * @return The node representing the HeaderTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuples() {
-    return getHeaderTupleList();
-  }
-  /**
-   * Retrieves the HeaderTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the HeaderTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<HeaderTuple> getHeaderTuplesNoTransform() {
-    return getHeaderTupleListNoTransform();
-  }
-  /**
-   * Replaces the ContentTuple list.
-   * @param list The new list node to be used as the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void setContentTupleList(JastAddList<ContentTuple> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public int getNumContentTuple() {
-    return getContentTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ContentTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ContentTuple list.
-   * @apilevel low-level
-   */
-  public int getNumContentTupleNoTransform() {
-    return getContentTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ContentTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ContentTuple list.
-   * @apilevel high-level
-   */
-  public ContentTuple getContentTuple(int i) {
-    return (ContentTuple) getContentTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ContentTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasContentTuple() {
-    return getContentTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ContentTuple list.
-   * @param node The element to append to the ContentTuple list.
-   * @apilevel high-level
-   */
-  public void addContentTuple(ContentTuple node) {
-    JastAddList<ContentTuple> list = (parent == null) ? getContentTupleListNoTransform() : getContentTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addContentTupleNoTransform(ContentTuple node) {
-    JastAddList<ContentTuple> list = getContentTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ContentTuple 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 setContentTuple(ContentTuple node, int i) {
-    JastAddList<ContentTuple> list = getContentTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ContentTuple")
-  public JastAddList<ContentTuple> getContentTupleList() {
-    JastAddList<ContentTuple> list = (JastAddList<ContentTuple>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTupleListNoTransform() {
-    return (JastAddList<ContentTuple>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the ContentTuple list without
-   * triggering rewrites.
-   */
-  public ContentTuple getContentTupleNoTransform(int i) {
-    return (ContentTuple) getContentTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * @return The node representing the ContentTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ContentTuple> getContentTuples() {
-    return getContentTupleList();
-  }
-  /**
-   * Retrieves the ContentTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ContentTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ContentTuple> getContentTuplesNoTransform() {
-    return getContentTupleListNoTransform();
-  }
-  /**
-   * Replaces the LinkTuple list.
-   * @param list The new list node to be used as the LinkTuple list.
-   * @apilevel high-level
-   */
-  public void setLinkTupleList(JastAddList<LinkTuple> list) {
-    setChild(list, 2);
-  }
-  /**
-   * Retrieves the number of children in the LinkTuple list.
-   * @return Number of children in the LinkTuple list.
-   * @apilevel high-level
-   */
-  public int getNumLinkTuple() {
-    return getLinkTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the LinkTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the LinkTuple list.
-   * @apilevel low-level
-   */
-  public int getNumLinkTupleNoTransform() {
-    return getLinkTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the LinkTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the LinkTuple list.
-   * @apilevel high-level
-   */
-  public LinkTuple getLinkTuple(int i) {
-    return (LinkTuple) getLinkTupleList().getChild(i);
-  }
-  /**
-   * Check whether the LinkTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasLinkTuple() {
-    return getLinkTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the LinkTuple list.
-   * @param node The element to append to the LinkTuple list.
-   * @apilevel high-level
-   */
-  public void addLinkTuple(LinkTuple node) {
-    JastAddList<LinkTuple> list = (parent == null) ? getLinkTupleListNoTransform() : getLinkTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addLinkTupleNoTransform(LinkTuple node) {
-    JastAddList<LinkTuple> list = getLinkTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the LinkTuple 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 setLinkTuple(LinkTuple node, int i) {
-    JastAddList<LinkTuple> list = getLinkTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * @return The node representing the LinkTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="LinkTuple")
-  public JastAddList<LinkTuple> getLinkTupleList() {
-    JastAddList<LinkTuple> list = (JastAddList<LinkTuple>) getChild(2);
-    return list;
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkTuple> getLinkTupleListNoTransform() {
-    return (JastAddList<LinkTuple>) getChildNoTransform(2);
-  }
-  /**
-   * @return the element at index {@code i} in the LinkTuple list without
-   * triggering rewrites.
-   */
-  public LinkTuple getLinkTupleNoTransform(int i) {
-    return (LinkTuple) getLinkTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * @return The node representing the LinkTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<LinkTuple> getLinkTuples() {
-    return getLinkTupleList();
-  }
-  /**
-   * Retrieves the LinkTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the LinkTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<LinkTuple> getLinkTuplesNoTransform() {
-    return getLinkTupleListNoTransform();
-  }
-  /** @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/ResponseTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java
deleted file mode 100644
index 9547763a..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ResponseTuple.java
+++ /dev/null
@@ -1,214 +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 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:24
- * @astdecl ResponseTuple : ASTNode ::= <Key:String> ResponseObject;
- * @production ResponseTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link ResponseObject}</span>;
-
- */
-public class ResponseTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ResponseTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "ResponseObject"},
-    type = {"String", "ResponseObject"},
-    kind = {"Token", "Child"}
-  )
-  public ResponseTuple(String p0, ResponseObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public ResponseTuple clone() throws CloneNotSupportedException {
-    ResponseTuple node = (ResponseTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public ResponseTuple copy() {
-    try {
-      ResponseTuple node = (ResponseTuple) 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:65
-   */
-  @Deprecated
-  public ResponseTuple 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:75
-   */
-  public ResponseTuple treeCopyNoTransform() {
-    ResponseTuple tree = (ResponseTuple) 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:95
-   */
-  public ResponseTuple treeCopy() {
-    ResponseTuple tree = (ResponseTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((ResponseTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the ResponseObject child.
-   * @param node The new node to replace the ResponseObject child.
-   * @apilevel high-level
-   */
-  public void setResponseObject(ResponseObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the ResponseObject child.
-   * @return The current node used as the ResponseObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="ResponseObject")
-  public ResponseObject getResponseObject() {
-    return (ResponseObject) getChild(0);
-  }
-  /**
-   * Retrieves the ResponseObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the ResponseObject child.
-   * @apilevel low-level
-   */
-  public ResponseObject getResponseObjectNoTransform() {
-    return (ResponseObject) getChildNoTransform(0);
-  }
-  /** @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/SchemaObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java
deleted file mode 100644
index a62e7fd6..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaObject.java
+++ /dev/null
@@ -1,1988 +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 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:91
- * @astdecl SchemaObject : ASTNode ::= <AdditionalProperties:SchemaObject> <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] <Ref:String> Extension*;
- * @production SchemaObject : {@link ASTNode} ::= <span class="component">&lt;AdditionalProperties:SchemaObject&gt;</span> <span class="component">&lt;AdditionalPropertiesAllowed:Boolean&gt;</span> <span class="component">&lt;DefaultValue:Object&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;DeprecatedBoolean:Boolean&gt;</span> <span class="component">[{@link DiscriminatorObject}]</span> <span class="component">{@link EnumObj}*</span> <span class="component">&lt;Example:Object&gt;</span> <span class="component">&lt;ExclusiveMaximum:Boolean&gt;</span> <span class="component">&lt;ExclusiveMinimum:Boolean&gt;</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component">&lt;Format:String&gt;</span> <span class="component">[{@link ItemsSchema}]</span> <span class="component">&lt;Maximum:Number&gt;</span> <span class="component">&lt;Minimum:Number&gt;</span> <span class="component">&lt;MaxItems:Integer&gt;</span> <span class="component">&lt;MinItems:Integer&gt;</span> <span class="component">&lt;MaxLength:Integer&gt;</span> <span class="component">&lt;MinLength:Integer&gt;</span> <span class="component">&lt;MaxProperties:Integer&gt;</span> <span class="component">&lt;MinProperties:Integer&gt;</span> <span class="component">&lt;MultipleOf:Number&gt;</span> <span class="component">[{@link NotSchema}]</span> <span class="component">&lt;Nullable:Boolean&gt;</span> <span class="component">&lt;Pattern:String&gt;</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">&lt;ReadOnly:Boolean&gt;</span> <span class="component">&lt;WriteOnly:Boolean&gt;</span> <span class="component">&lt;Type:String&gt;</span> <span class="component">&lt;Title:String&gt;</span> <span class="component">&lt;UniqueItems:Boolean&gt;</span> <span class="component">[{@link XmlObject}]</span> <span class="component">&lt;Ref:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class SchemaObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:647
-   */
-  public static org.openapi4j.parser.model.v3.Schema composeSchema (SchemaObject schemaObject) {
-        org.openapi4j.parser.model.v3.Schema schema = new org.openapi4j.parser.model.v3.Schema();
-
-        if( !schemaObject.getRef().isEmpty() )
-        schema.setRef(schemaObject.getRef());
-        if( schemaObject.getAdditionalProperties() != null )
-        schema.setAdditionalProperties(composeSchema(schemaObject.getAdditionalProperties()));
-        if( schemaObject.getAdditionalPropertiesAllowed() != null )
-        schema.setAdditionalPropertiesAllowed(schemaObject.getAdditionalPropertiesAllowed());
-        if( schemaObject.getDefaultValue() != null )
-        schema.setDefault(schemaObject.getDefaultValue());
-        if( !schemaObject.getDescription().isEmpty() )
-        schema.setDescription(schemaObject.getDescription());
-        if( schemaObject.getDeprecatedBoolean() != null )
-        schema.setDeprecated(schemaObject.getDeprecatedBoolean());
-        if( schemaObject.hasDiscriminatorObject() )
-        schema.setDiscriminator(DiscriminatorObject.composeDiscriminator(schemaObject.getDiscriminatorObject()));
-        if( schemaObject.getNumEnumObj() != 0 ){
-        for( EnumObj e : schemaObject.getEnumObjs() )
-        schema.addEnum(e.getEnumOb());
-        }
-        if( schemaObject.getExample() != null )
-        schema.setExample(schemaObject.getExample());
-        if( schemaObject.getExclusiveMaximum() != null )
-        schema.setExclusiveMaximum(schemaObject.getExclusiveMaximum());
-        if( schemaObject.getExclusiveMinimum() != null )
-        schema.setExclusiveMinimum(schemaObject.getExclusiveMinimum());
-        if( schemaObject.hasExternalDocObject() )
-        schema.setExternalDocs(ExternalDocObject.composeExternalDocs(schemaObject.getExternalDocObject()));
-        if( !schemaObject.getFormat().isEmpty() )
-        schema.setFormat(schemaObject.getFormat());
-        if( schemaObject.hasItemsSchema() )
-        schema.setItemsSchema(composeSchema(schemaObject.getItemsSchema().getSchemaObject()));
-        if( schemaObject.getMaximum() != null )
-        schema.setMaximum(schemaObject.getMaximum());
-        if( schemaObject.getMinimum() != null )
-        schema.setMinimum(schemaObject.getMinimum());
-        if( schemaObject.getMaxItems() != null )
-        schema.setMaxItems(schemaObject.getMaxItems());
-        if( schemaObject.getMinItems() != null )
-        schema.setMinItems(schemaObject.getMinItems());
-        if( schemaObject.getMaxLength() != null )
-        schema.setMaxLength(schemaObject.getMaxLength());
-        if( schemaObject.getMinLength() != null )
-        schema.setMinLength(schemaObject.getMinLength());
-        if( schemaObject.getMaxProperties() != null )
-        schema.setMaxProperties(schemaObject.getMaxProperties());
-        if( schemaObject.getMinProperties() != null )
-        schema.setMinProperties(schemaObject.getMinProperties());
-        if( schemaObject.getMultipleOf() != null )
-        schema.setMultipleOf(schemaObject.getMultipleOf());
-        if( schemaObject.hasNotSchema() )
-        schema.setNotSchema(composeSchema(schemaObject.getNotSchema().getSchemaObject()));
-        if( schemaObject.getNullable() != null )
-        schema.setNullable(schemaObject.getNullable());
-        if( !schemaObject.getPattern().isEmpty() )
-        schema.setPattern(schemaObject.getPattern());
-        if( schemaObject.getNumPropertyItem() != 0 ){
-        Map<String, org.openapi4j.parser.model.v3.Schema> properties = new HashMap<>();
-        for( PropertyItem p : schemaObject.getPropertyItemList() )
-        properties.put(p.getName(), composeSchema(p.getSchemaObject()));
-        schema.setProperties(properties);
-        }
-        if( schemaObject.getNumRequiredField() != 0 ){
-        for( RequiredField r : schemaObject.getRequiredFields() )
-        schema.addRequiredField(r.getValue());
-        }
-        if( schemaObject.getNumAllOfSchema() != 0 ){
-        for( AllOfSchema a : schemaObject.getAllOfSchemas() )
-        schema.addAllOfSchema(composeSchema(a.getSchemaObject()));
-        }
-        if( schemaObject.getNumAnyOfSchema() != 0 ){
-        for( AnyOfSchema a : schemaObject.getAnyOfSchemas() )
-        schema.addAnyOfSchema(composeSchema(a.getSchemaObject()));
-        }
-        if( schemaObject.getNumOneOfSchema() != 0 ){
-        for( OneOfSchema o : schemaObject.getOneOfSchemas() )
-        schema.addOneOfSchema(composeSchema(o.getSchemaObject()));
-        }
-        if( schemaObject.getReadOnly() != null )
-        schema.setReadOnly(schemaObject.getReadOnly());
-        if( schemaObject.getWriteOnly() != null )
-        schema.setWriteOnly(schemaObject.getWriteOnly());
-        if( !schemaObject.getType().isEmpty() )
-        schema.setType(schemaObject.getType());
-        if( !schemaObject.getTitle().isEmpty() )
-        schema.setTitle(schemaObject.getTitle());
-        if( schemaObject.getUniqueItems() != null )
-        schema.setUniqueItems(schemaObject.getUniqueItems());
-        if( schemaObject.hasXmlObject() )
-        schema.setXml(XmlObject.composeXml(schemaObject.getXmlObject()));
-        if( schemaObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : schemaObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        schema.setExtensions(extensionMap);
-        }
-
-        return schema;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:638
-   */
-  public static SchemaObject parseSchema (org.openapi4j.parser.model.v3.Schema schema) {
-        SchemaObject schemaObject = new SchemaObject();
-
-        if( schema.isRef() )
-        schemaObject.setRef(schema.getRef());
-        if( schema.getAdditionalProperties() != null )
-        schemaObject.setAdditionalProperties(parseSchema(schema.getAdditionalProperties()));
-        if( schema.getAdditionalProperties() == null && schema.getAdditionalPropertiesAllowed() != null )
-        schemaObject.setAdditionalPropertiesAllowed(schema.getAdditionalPropertiesAllowed());
-        if( schema.getDefault() != null )
-        schemaObject.setDefaultValue(schema.getDefault());
-        if( schema.getDescription() != null )
-        schemaObject.setDescription(schema.getDescription());
-        if( schema.getDeprecated() != null )
-        schemaObject.setDeprecatedBoolean(schema.getDeprecated());
-        if( schema.getDiscriminator() != null )
-        schemaObject.setDiscriminatorObject(DiscriminatorObject.parseDiscriminator(schema.getDiscriminator()));
-        if( schema.getEnums() != null ){
-        for( Object o : schema.getEnums() ){
-        EnumObj enumObj = new EnumObj();
-        enumObj.setEnumOb(o);
-        schemaObject.addEnumObj(enumObj);
-        }
-        }
-        if( schema.getExample() != null )
-        schemaObject.setExample(schema.getExample());
-        if( schema.getExclusiveMaximum() != null )
-        schemaObject.setExclusiveMaximum(schema.getExclusiveMaximum());
-        if( schema.getExclusiveMinimum() != null )
-        schemaObject.setExclusiveMinimum(schema.getExclusiveMinimum());
-        if( schema.getExternalDocs() != null )
-        schemaObject.setExternalDocObject(ExternalDocObject.parseExternalDocs(schema.getExternalDocs()));
-        if( schema.getFormat() != null )
-        schemaObject.setFormat(schema.getFormat());
-        if( schema.getItemsSchema() != null ){
-        ItemsSchema itemsSchema = new ItemsSchema();
-        itemsSchema.setSchemaObject(parseSchema(schema.getItemsSchema()));
-        schemaObject.setItemsSchema(itemsSchema);
-        }
-        if( schema.getMaximum() != null )
-        schemaObject.setMaximum(schema.getMaximum());
-        if( schema.getMinimum() != null )
-        schemaObject.setMinimum(schema.getMinimum());
-        if( schema.getMaxItems() != null )
-        schemaObject.setMaxItems(schema.getMaxItems());
-        if( schema.getMinItems() != null )
-        schemaObject.setMinItems(schema.getMinItems());
-        if( schema.getMaxLength() != null )
-        schemaObject.setMaxLength(schema.getMaxLength());
-        if( schema.getMinLength() != null )
-        schemaObject.setMinLength(schema.getMinLength());
-        if( schema.getMaxProperties() != null )
-        schemaObject.setMaxProperties(schema.getMaxProperties());
-        if( schema.getMinProperties() != null )
-        schemaObject.setMinProperties(schema.getMinProperties());
-        if( schema.getMultipleOf() != null )
-        schemaObject.setMultipleOf(schema.getMultipleOf());
-        if( schema.getNotSchema() != null ){
-        NotSchema notSchema = new NotSchema();
-        notSchema.setSchemaObject(parseSchema(schema.getNotSchema()));
-        schemaObject.setNotSchema(notSchema);
-        }
-        if( schema.getNullable() != null )
-        schemaObject.setNullable(schema.getNullable());
-        if( schema.getPattern() != null )
-        schemaObject.setPattern(schema.getPattern());
-        if( schema.getProperties() != null  ){
-        for( String key : schema.getProperties().keySet() ){
-        PropertyItem propertyItem = new PropertyItem();
-        schemaObject.addPropertyItem(new PropertyItem(key, parseSchema(schema.getProperty(key))));
-        }
-        }
-        if( schema.getRequiredFields() != null ){
-        for( String s : schema.getRequiredFields() ){
-        RequiredField requiredField = new RequiredField();
-        requiredField.setValue(s);
-        schemaObject.addRequiredField(requiredField);
-        }
-        }
-        if( schema.getAllOfSchemas() != null ){
-        for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAllOfSchemas()){
-        AllOfSchema allOfSchema = new AllOfSchema();
-        allOfSchema.setSchemaObject(parseSchema(schemaItem));
-        schemaObject.addAllOfSchema(allOfSchema);
-        }
-        }
-        if( schema.getAnyOfSchemas() != null ){
-        for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getAnyOfSchemas()){
-        AnyOfSchema anyOfSchema = new AnyOfSchema();
-        anyOfSchema.setSchemaObject(parseSchema(schemaItem));
-        schemaObject.addAnyOfSchema(anyOfSchema);
-        }
-        }
-        if( schema.getOneOfSchemas() != null ){
-        for(org.openapi4j.parser.model.v3.Schema schemaItem : schema.getOneOfSchemas()){
-        OneOfSchema oneOfSchema = new OneOfSchema();
-        oneOfSchema.setSchemaObject(parseSchema(schemaItem));
-        schemaObject.addOneOfSchema(oneOfSchema);
-        }
-        }
-        if( schema.getReadOnly() != null )
-        schemaObject.setReadOnly(schema.getReadOnly());
-        if( schema.getWriteOnly() != null )
-        schemaObject.setWriteOnly(schema.getWriteOnly());
-        if( schema.getType() != null )
-        schemaObject.setType(schema.getType());
-        if( schema.getTitle() != null )
-        schemaObject.setTitle(schema.getTitle());
-        if( schema.getUniqueItems() != null )
-        schemaObject.setUniqueItems(schema.getUniqueItems());
-        if( schema.getXml() != null )
-        schemaObject.setXmlObject(XmlObject.parseXml(schema.getXml()));
-        if( schema.getExtensions() != null ){
-        for( String key : schema.getExtensions().keySet() )
-        schemaObject.addExtension(new Extension(key, schema.getExtensions().get(key)));
-        }
-
-        return schemaObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SchemaObject() {
-    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() {
-    children = new ASTNode[12];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-    setChild(new Opt(), 2);
-    setChild(new Opt(), 3);
-    setChild(new Opt(), 4);
-    setChild(new JastAddList(), 5);
-    setChild(new JastAddList(), 6);
-    setChild(new JastAddList(), 7);
-    setChild(new JastAddList(), 8);
-    setChild(new JastAddList(), 9);
-    setChild(new Opt(), 10);
-    setChild(new JastAddList(), 11);
-  }
-  /**
-   * @declaredat ASTNode:25
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"AdditionalProperties", "AdditionalPropertiesAllowed", "DefaultValue", "Description", "DeprecatedBoolean", "DiscriminatorObject", "EnumObj", "Example", "ExclusiveMaximum", "ExclusiveMinimum", "ExternalDocObject", "Format", "ItemsSchema", "Maximum", "Minimum", "MaxItems", "MinItems", "MaxLength", "MinLength", "MaxProperties", "MinProperties", "MultipleOf", "NotSchema", "Nullable", "Pattern", "PropertyItem", "RequiredField", "AllOfSchema", "AnyOfSchema", "OneOfSchema", "ReadOnly", "WriteOnly", "Type", "Title", "UniqueItems", "XmlObject", "Ref", "Extension"},
-    type = {"SchemaObject", "Boolean", "Object", "String", "Boolean", "Opt<DiscriminatorObject>", "JastAddList<EnumObj>", "Object", "Boolean", "Boolean", "Opt<ExternalDocObject>", "String", "Opt<ItemsSchema>", "Number", "Number", "Integer", "Integer", "Integer", "Integer", "Integer", "Integer", "Number", "Opt<NotSchema>", "Boolean", "String", "JastAddList<PropertyItem>", "JastAddList<RequiredField>", "JastAddList<AllOfSchema>", "JastAddList<AnyOfSchema>", "JastAddList<OneOfSchema>", "Boolean", "Boolean", "String", "String", "Boolean", "Opt<XmlObject>", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Token", "Token", "Opt", "List", "Token", "Token", "Token", "Opt", "Token", "Opt", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "Token", "List", "List", "List", "List", "List", "Token", "Token", "Token", "Token", "Token", "Opt", "Token", "List"}
-  )
-  public SchemaObject(SchemaObject p0, Boolean p1, Object p2, String p3, Boolean p4, Opt<DiscriminatorObject> p5, JastAddList<EnumObj> p6, Object p7, Boolean p8, Boolean p9, Opt<ExternalDocObject> p10, String p11, Opt<ItemsSchema> p12, Number p13, Number p14, Integer p15, Integer p16, Integer p17, Integer p18, Integer p19, Integer p20, Number p21, Opt<NotSchema> p22, Boolean p23, String p24, JastAddList<PropertyItem> p25, JastAddList<RequiredField> p26, JastAddList<AllOfSchema> p27, JastAddList<AnyOfSchema> p28, JastAddList<OneOfSchema> p29, Boolean p30, Boolean p31, String p32, String p33, Boolean p34, Opt<XmlObject> p35, String p36, JastAddList<Extension> p37) {
-    setAdditionalProperties(p0);
-    setAdditionalPropertiesAllowed(p1);
-    setDefaultValue(p2);
-    setDescription(p3);
-    setDeprecatedBoolean(p4);
-    setChild(p5, 0);
-    setChild(p6, 1);
-    setExample(p7);
-    setExclusiveMaximum(p8);
-    setExclusiveMinimum(p9);
-    setChild(p10, 2);
-    setFormat(p11);
-    setChild(p12, 3);
-    setMaximum(p13);
-    setMinimum(p14);
-    setMaxItems(p15);
-    setMinItems(p16);
-    setMaxLength(p17);
-    setMinLength(p18);
-    setMaxProperties(p19);
-    setMinProperties(p20);
-    setMultipleOf(p21);
-    setChild(p22, 4);
-    setNullable(p23);
-    setPattern(p24);
-    setChild(p25, 5);
-    setChild(p26, 6);
-    setChild(p27, 7);
-    setChild(p28, 8);
-    setChild(p29, 9);
-    setReadOnly(p30);
-    setWriteOnly(p31);
-    setType(p32);
-    setTitle(p33);
-    setUniqueItems(p34);
-    setChild(p35, 10);
-    setRef(p36);
-    setChild(p37, 11);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:71
-   */
-  protected int numChildren() {
-    return 12;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:77
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:81
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:85
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:89
-   */
-  public SchemaObject clone() throws CloneNotSupportedException {
-    SchemaObject node = (SchemaObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:94
-   */
-  public SchemaObject copy() {
-    try {
-      SchemaObject node = (SchemaObject) 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:113
-   */
-  @Deprecated
-  public SchemaObject 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:123
-   */
-  public SchemaObject treeCopyNoTransform() {
-    SchemaObject tree = (SchemaObject) 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:143
-   */
-  public SchemaObject treeCopy() {
-    SchemaObject tree = (SchemaObject) 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:157
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenSchemaObject_AdditionalProperties == ((SchemaObject) node).tokenSchemaObject_AdditionalProperties) && (tokenBoolean_AdditionalPropertiesAllowed == ((SchemaObject) node).tokenBoolean_AdditionalPropertiesAllowed) && (tokenObject_DefaultValue == ((SchemaObject) node).tokenObject_DefaultValue) && (tokenString_Description == ((SchemaObject) node).tokenString_Description) && (tokenBoolean_DeprecatedBoolean == ((SchemaObject) node).tokenBoolean_DeprecatedBoolean) && (tokenObject_Example == ((SchemaObject) node).tokenObject_Example) && (tokenBoolean_ExclusiveMaximum == ((SchemaObject) node).tokenBoolean_ExclusiveMaximum) && (tokenBoolean_ExclusiveMinimum == ((SchemaObject) node).tokenBoolean_ExclusiveMinimum) && (tokenString_Format == ((SchemaObject) node).tokenString_Format) && (tokenNumber_Maximum == ((SchemaObject) node).tokenNumber_Maximum) && (tokenNumber_Minimum == ((SchemaObject) node).tokenNumber_Minimum) && (tokenInteger_MaxItems == ((SchemaObject) node).tokenInteger_MaxItems) && (tokenInteger_MinItems == ((SchemaObject) node).tokenInteger_MinItems) && (tokenInteger_MaxLength == ((SchemaObject) node).tokenInteger_MaxLength) && (tokenInteger_MinLength == ((SchemaObject) node).tokenInteger_MinLength) && (tokenInteger_MaxProperties == ((SchemaObject) node).tokenInteger_MaxProperties) && (tokenInteger_MinProperties == ((SchemaObject) node).tokenInteger_MinProperties) && (tokenNumber_MultipleOf == ((SchemaObject) node).tokenNumber_MultipleOf) && (tokenBoolean_Nullable == ((SchemaObject) node).tokenBoolean_Nullable) && (tokenString_Pattern == ((SchemaObject) node).tokenString_Pattern) && (tokenBoolean_ReadOnly == ((SchemaObject) node).tokenBoolean_ReadOnly) && (tokenBoolean_WriteOnly == ((SchemaObject) node).tokenBoolean_WriteOnly) && (tokenString_Type == ((SchemaObject) node).tokenString_Type) && (tokenString_Title == ((SchemaObject) node).tokenString_Title) && (tokenBoolean_UniqueItems == ((SchemaObject) node).tokenBoolean_UniqueItems) && (tokenString_Ref == ((SchemaObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme AdditionalProperties.
-   * @param value The new value for the lexeme AdditionalProperties.
-   * @apilevel high-level
-   */
-  public void setAdditionalProperties(SchemaObject value) {
-    tokenSchemaObject_AdditionalProperties = value;
-  }
-  /** @apilevel internal 
-   */
-  protected SchemaObject tokenSchemaObject_AdditionalProperties;
-  /**
-   * Retrieves the value for the lexeme AdditionalProperties.
-   * @return The value for the lexeme AdditionalProperties.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AdditionalProperties")
-  public SchemaObject getAdditionalProperties() {
-    return tokenSchemaObject_AdditionalProperties;
-  }
-  /**
-   * Replaces the lexeme AdditionalPropertiesAllowed.
-   * @param value The new value for the lexeme AdditionalPropertiesAllowed.
-   * @apilevel high-level
-   */
-  public void setAdditionalPropertiesAllowed(Boolean value) {
-    tokenBoolean_AdditionalPropertiesAllowed = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_AdditionalPropertiesAllowed;
-  /**
-   * Retrieves the value for the lexeme AdditionalPropertiesAllowed.
-   * @return The value for the lexeme AdditionalPropertiesAllowed.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="AdditionalPropertiesAllowed")
-  public Boolean getAdditionalPropertiesAllowed() {
-    return tokenBoolean_AdditionalPropertiesAllowed;
-  }
-  /**
-   * Replaces the lexeme DefaultValue.
-   * @param value The new value for the lexeme DefaultValue.
-   * @apilevel high-level
-   */
-  public void setDefaultValue(Object value) {
-    tokenObject_DefaultValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_DefaultValue;
-  /**
-   * Retrieves the value for the lexeme DefaultValue.
-   * @return The value for the lexeme DefaultValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="DefaultValue")
-  public Object getDefaultValue() {
-    return tokenObject_DefaultValue;
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme DeprecatedBoolean.
-   * @param value The new value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  public void setDeprecatedBoolean(Boolean value) {
-    tokenBoolean_DeprecatedBoolean = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_DeprecatedBoolean;
-  /**
-   * Retrieves the value for the lexeme DeprecatedBoolean.
-   * @return The value for the lexeme DeprecatedBoolean.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="DeprecatedBoolean")
-  public Boolean getDeprecatedBoolean() {
-    return tokenBoolean_DeprecatedBoolean;
-  }
-  /**
-   * Replaces the optional node for the DiscriminatorObject child. This is the <code>Opt</code>
-   * node containing the child DiscriminatorObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the DiscriminatorObject child.
-   * @apilevel low-level
-   */
-  public void setDiscriminatorObjectOpt(Opt<DiscriminatorObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) DiscriminatorObject child.
-   * @param node The new node to be used as the DiscriminatorObject child.
-   * @apilevel high-level
-   */
-  public void setDiscriminatorObject(DiscriminatorObject node) {
-    getDiscriminatorObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional DiscriminatorObject child exists.
-   * @return {@code true} if the optional DiscriminatorObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasDiscriminatorObject() {
-    return getDiscriminatorObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) DiscriminatorObject child.
-   * @return The DiscriminatorObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public DiscriminatorObject getDiscriminatorObject() {
-    return (DiscriminatorObject) getDiscriminatorObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the DiscriminatorObject child. This is the <code>Opt</code> node containing the child DiscriminatorObject, not the actual child!
-   * @return The optional node for child the DiscriminatorObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="DiscriminatorObject")
-  public Opt<DiscriminatorObject> getDiscriminatorObjectOpt() {
-    return (Opt<DiscriminatorObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child DiscriminatorObject. This is the <code>Opt</code> node containing the child DiscriminatorObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child DiscriminatorObject.
-   * @apilevel low-level
-   */
-  public Opt<DiscriminatorObject> getDiscriminatorObjectOptNoTransform() {
-    return (Opt<DiscriminatorObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the EnumObj list.
-   * @param list The new list node to be used as the EnumObj list.
-   * @apilevel high-level
-   */
-  public void setEnumObjList(JastAddList<EnumObj> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the EnumObj list.
-   * @return Number of children in the EnumObj list.
-   * @apilevel high-level
-   */
-  public int getNumEnumObj() {
-    return getEnumObjList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the EnumObj list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the EnumObj list.
-   * @apilevel low-level
-   */
-  public int getNumEnumObjNoTransform() {
-    return getEnumObjListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the EnumObj list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the EnumObj list.
-   * @apilevel high-level
-   */
-  public EnumObj getEnumObj(int i) {
-    return (EnumObj) getEnumObjList().getChild(i);
-  }
-  /**
-   * Check whether the EnumObj list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasEnumObj() {
-    return getEnumObjList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the EnumObj list.
-   * @param node The element to append to the EnumObj list.
-   * @apilevel high-level
-   */
-  public void addEnumObj(EnumObj node) {
-    JastAddList<EnumObj> list = (parent == null) ? getEnumObjListNoTransform() : getEnumObjList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addEnumObjNoTransform(EnumObj node) {
-    JastAddList<EnumObj> list = getEnumObjListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the EnumObj 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 setEnumObj(EnumObj node, int i) {
-    JastAddList<EnumObj> list = getEnumObjList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the EnumObj list.
-   * @return The node representing the EnumObj list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="EnumObj")
-  public JastAddList<EnumObj> getEnumObjList() {
-    JastAddList<EnumObj> list = (JastAddList<EnumObj>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the EnumObj list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the EnumObj list.
-   * @apilevel low-level
-   */
-  public JastAddList<EnumObj> getEnumObjListNoTransform() {
-    return (JastAddList<EnumObj>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the EnumObj list without
-   * triggering rewrites.
-   */
-  public EnumObj getEnumObjNoTransform(int i) {
-    return (EnumObj) getEnumObjListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the EnumObj list.
-   * @return The node representing the EnumObj list.
-   * @apilevel high-level
-   */
-  public JastAddList<EnumObj> getEnumObjs() {
-    return getEnumObjList();
-  }
-  /**
-   * Retrieves the EnumObj list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the EnumObj list.
-   * @apilevel low-level
-   */
-  public JastAddList<EnumObj> getEnumObjsNoTransform() {
-    return getEnumObjListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Example.
-   * @param value The new value for the lexeme Example.
-   * @apilevel high-level
-   */
-  public void setExample(Object value) {
-    tokenObject_Example = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Object tokenObject_Example;
-  /**
-   * Retrieves the value for the lexeme Example.
-   * @return The value for the lexeme Example.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Example")
-  public Object getExample() {
-    return tokenObject_Example;
-  }
-  /**
-   * Replaces the lexeme ExclusiveMaximum.
-   * @param value The new value for the lexeme ExclusiveMaximum.
-   * @apilevel high-level
-   */
-  public void setExclusiveMaximum(Boolean value) {
-    tokenBoolean_ExclusiveMaximum = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_ExclusiveMaximum;
-  /**
-   * Retrieves the value for the lexeme ExclusiveMaximum.
-   * @return The value for the lexeme ExclusiveMaximum.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ExclusiveMaximum")
-  public Boolean getExclusiveMaximum() {
-    return tokenBoolean_ExclusiveMaximum;
-  }
-  /**
-   * Replaces the lexeme ExclusiveMinimum.
-   * @param value The new value for the lexeme ExclusiveMinimum.
-   * @apilevel high-level
-   */
-  public void setExclusiveMinimum(Boolean value) {
-    tokenBoolean_ExclusiveMinimum = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_ExclusiveMinimum;
-  /**
-   * Retrieves the value for the lexeme ExclusiveMinimum.
-   * @return The value for the lexeme ExclusiveMinimum.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ExclusiveMinimum")
-  public Boolean getExclusiveMinimum() {
-    return tokenBoolean_ExclusiveMinimum;
-  }
-  /**
-   * Replaces the optional node for the ExternalDocObject child. This is the <code>Opt</code>
-   * node containing the child ExternalDocObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  public void setExternalDocObjectOpt(Opt<ExternalDocObject> opt) {
-    setChild(opt, 2);
-  }
-  /**
-   * Replaces the (optional) ExternalDocObject child.
-   * @param node The new node to be used as the ExternalDocObject child.
-   * @apilevel high-level
-   */
-  public void setExternalDocObject(ExternalDocObject node) {
-    getExternalDocObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ExternalDocObject child exists.
-   * @return {@code true} if the optional ExternalDocObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasExternalDocObject() {
-    return getExternalDocObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ExternalDocObject child.
-   * @return The ExternalDocObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ExternalDocObject getExternalDocObject() {
-    return (ExternalDocObject) getExternalDocObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ExternalDocObject child. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * @return The optional node for child the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ExternalDocObject")
-  public Opt<ExternalDocObject> getExternalDocObjectOpt() {
-    return (Opt<ExternalDocObject>) getChild(2);
-  }
-  /**
-   * Retrieves the optional node for child ExternalDocObject. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ExternalDocObject.
-   * @apilevel low-level
-   */
-  public Opt<ExternalDocObject> getExternalDocObjectOptNoTransform() {
-    return (Opt<ExternalDocObject>) getChildNoTransform(2);
-  }
-  /**
-   * Replaces the lexeme Format.
-   * @param value The new value for the lexeme Format.
-   * @apilevel high-level
-   */
-  public void setFormat(String value) {
-    tokenString_Format = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Format;
-  /**
-   * Retrieves the value for the lexeme Format.
-   * @return The value for the lexeme Format.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Format")
-  public String getFormat() {
-    return tokenString_Format != null ? tokenString_Format : "";
-  }
-  /**
-   * Replaces the optional node for the ItemsSchema child. This is the <code>Opt</code>
-   * node containing the child ItemsSchema, not the actual child!
-   * @param opt The new node to be used as the optional node for the ItemsSchema child.
-   * @apilevel low-level
-   */
-  public void setItemsSchemaOpt(Opt<ItemsSchema> opt) {
-    setChild(opt, 3);
-  }
-  /**
-   * Replaces the (optional) ItemsSchema child.
-   * @param node The new node to be used as the ItemsSchema child.
-   * @apilevel high-level
-   */
-  public void setItemsSchema(ItemsSchema node) {
-    getItemsSchemaOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ItemsSchema child exists.
-   * @return {@code true} if the optional ItemsSchema child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasItemsSchema() {
-    return getItemsSchemaOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ItemsSchema child.
-   * @return The ItemsSchema child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ItemsSchema getItemsSchema() {
-    return (ItemsSchema) getItemsSchemaOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ItemsSchema child. This is the <code>Opt</code> node containing the child ItemsSchema, not the actual child!
-   * @return The optional node for child the ItemsSchema child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ItemsSchema")
-  public Opt<ItemsSchema> getItemsSchemaOpt() {
-    return (Opt<ItemsSchema>) getChild(3);
-  }
-  /**
-   * Retrieves the optional node for child ItemsSchema. This is the <code>Opt</code> node containing the child ItemsSchema, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ItemsSchema.
-   * @apilevel low-level
-   */
-  public Opt<ItemsSchema> getItemsSchemaOptNoTransform() {
-    return (Opt<ItemsSchema>) getChildNoTransform(3);
-  }
-  /**
-   * Replaces the lexeme Maximum.
-   * @param value The new value for the lexeme Maximum.
-   * @apilevel high-level
-   */
-  public void setMaximum(Number value) {
-    tokenNumber_Maximum = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Number tokenNumber_Maximum;
-  /**
-   * Retrieves the value for the lexeme Maximum.
-   * @return The value for the lexeme Maximum.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Maximum")
-  public Number getMaximum() {
-    return tokenNumber_Maximum;
-  }
-  /**
-   * Replaces the lexeme Minimum.
-   * @param value The new value for the lexeme Minimum.
-   * @apilevel high-level
-   */
-  public void setMinimum(Number value) {
-    tokenNumber_Minimum = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Number tokenNumber_Minimum;
-  /**
-   * Retrieves the value for the lexeme Minimum.
-   * @return The value for the lexeme Minimum.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Minimum")
-  public Number getMinimum() {
-    return tokenNumber_Minimum;
-  }
-  /**
-   * Replaces the lexeme MaxItems.
-   * @param value The new value for the lexeme MaxItems.
-   * @apilevel high-level
-   */
-  public void setMaxItems(Integer value) {
-    tokenInteger_MaxItems = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MaxItems;
-  /**
-   * Retrieves the value for the lexeme MaxItems.
-   * @return The value for the lexeme MaxItems.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MaxItems")
-  public Integer getMaxItems() {
-    return tokenInteger_MaxItems;
-  }
-  /**
-   * Replaces the lexeme MinItems.
-   * @param value The new value for the lexeme MinItems.
-   * @apilevel high-level
-   */
-  public void setMinItems(Integer value) {
-    tokenInteger_MinItems = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MinItems;
-  /**
-   * Retrieves the value for the lexeme MinItems.
-   * @return The value for the lexeme MinItems.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MinItems")
-  public Integer getMinItems() {
-    return tokenInteger_MinItems;
-  }
-  /**
-   * Replaces the lexeme MaxLength.
-   * @param value The new value for the lexeme MaxLength.
-   * @apilevel high-level
-   */
-  public void setMaxLength(Integer value) {
-    tokenInteger_MaxLength = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MaxLength;
-  /**
-   * Retrieves the value for the lexeme MaxLength.
-   * @return The value for the lexeme MaxLength.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MaxLength")
-  public Integer getMaxLength() {
-    return tokenInteger_MaxLength;
-  }
-  /**
-   * Replaces the lexeme MinLength.
-   * @param value The new value for the lexeme MinLength.
-   * @apilevel high-level
-   */
-  public void setMinLength(Integer value) {
-    tokenInteger_MinLength = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MinLength;
-  /**
-   * Retrieves the value for the lexeme MinLength.
-   * @return The value for the lexeme MinLength.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MinLength")
-  public Integer getMinLength() {
-    return tokenInteger_MinLength;
-  }
-  /**
-   * Replaces the lexeme MaxProperties.
-   * @param value The new value for the lexeme MaxProperties.
-   * @apilevel high-level
-   */
-  public void setMaxProperties(Integer value) {
-    tokenInteger_MaxProperties = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MaxProperties;
-  /**
-   * Retrieves the value for the lexeme MaxProperties.
-   * @return The value for the lexeme MaxProperties.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MaxProperties")
-  public Integer getMaxProperties() {
-    return tokenInteger_MaxProperties;
-  }
-  /**
-   * Replaces the lexeme MinProperties.
-   * @param value The new value for the lexeme MinProperties.
-   * @apilevel high-level
-   */
-  public void setMinProperties(Integer value) {
-    tokenInteger_MinProperties = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Integer tokenInteger_MinProperties;
-  /**
-   * Retrieves the value for the lexeme MinProperties.
-   * @return The value for the lexeme MinProperties.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MinProperties")
-  public Integer getMinProperties() {
-    return tokenInteger_MinProperties;
-  }
-  /**
-   * Replaces the lexeme MultipleOf.
-   * @param value The new value for the lexeme MultipleOf.
-   * @apilevel high-level
-   */
-  public void setMultipleOf(Number value) {
-    tokenNumber_MultipleOf = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Number tokenNumber_MultipleOf;
-  /**
-   * Retrieves the value for the lexeme MultipleOf.
-   * @return The value for the lexeme MultipleOf.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="MultipleOf")
-  public Number getMultipleOf() {
-    return tokenNumber_MultipleOf;
-  }
-  /**
-   * Replaces the optional node for the NotSchema child. This is the <code>Opt</code>
-   * node containing the child NotSchema, not the actual child!
-   * @param opt The new node to be used as the optional node for the NotSchema child.
-   * @apilevel low-level
-   */
-  public void setNotSchemaOpt(Opt<NotSchema> opt) {
-    setChild(opt, 4);
-  }
-  /**
-   * Replaces the (optional) NotSchema child.
-   * @param node The new node to be used as the NotSchema child.
-   * @apilevel high-level
-   */
-  public void setNotSchema(NotSchema node) {
-    getNotSchemaOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional NotSchema child exists.
-   * @return {@code true} if the optional NotSchema child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasNotSchema() {
-    return getNotSchemaOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) NotSchema child.
-   * @return The NotSchema child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public NotSchema getNotSchema() {
-    return (NotSchema) getNotSchemaOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the NotSchema child. This is the <code>Opt</code> node containing the child NotSchema, not the actual child!
-   * @return The optional node for child the NotSchema child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="NotSchema")
-  public Opt<NotSchema> getNotSchemaOpt() {
-    return (Opt<NotSchema>) getChild(4);
-  }
-  /**
-   * Retrieves the optional node for child NotSchema. This is the <code>Opt</code> node containing the child NotSchema, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child NotSchema.
-   * @apilevel low-level
-   */
-  public Opt<NotSchema> getNotSchemaOptNoTransform() {
-    return (Opt<NotSchema>) getChildNoTransform(4);
-  }
-  /**
-   * Replaces the lexeme Nullable.
-   * @param value The new value for the lexeme Nullable.
-   * @apilevel high-level
-   */
-  public void setNullable(Boolean value) {
-    tokenBoolean_Nullable = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Nullable;
-  /**
-   * Retrieves the value for the lexeme Nullable.
-   * @return The value for the lexeme Nullable.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Nullable")
-  public Boolean getNullable() {
-    return tokenBoolean_Nullable;
-  }
-  /**
-   * Replaces the lexeme Pattern.
-   * @param value The new value for the lexeme Pattern.
-   * @apilevel high-level
-   */
-  public void setPattern(String value) {
-    tokenString_Pattern = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Pattern;
-  /**
-   * Retrieves the value for the lexeme Pattern.
-   * @return The value for the lexeme Pattern.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Pattern")
-  public String getPattern() {
-    return tokenString_Pattern != null ? tokenString_Pattern : "";
-  }
-  /**
-   * Replaces the PropertyItem list.
-   * @param list The new list node to be used as the PropertyItem list.
-   * @apilevel high-level
-   */
-  public void setPropertyItemList(JastAddList<PropertyItem> list) {
-    setChild(list, 5);
-  }
-  /**
-   * Retrieves the number of children in the PropertyItem list.
-   * @return Number of children in the PropertyItem list.
-   * @apilevel high-level
-   */
-  public int getNumPropertyItem() {
-    return getPropertyItemList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the PropertyItem list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the PropertyItem list.
-   * @apilevel low-level
-   */
-  public int getNumPropertyItemNoTransform() {
-    return getPropertyItemListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the PropertyItem list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the PropertyItem list.
-   * @apilevel high-level
-   */
-  public PropertyItem getPropertyItem(int i) {
-    return (PropertyItem) getPropertyItemList().getChild(i);
-  }
-  /**
-   * Check whether the PropertyItem list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasPropertyItem() {
-    return getPropertyItemList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the PropertyItem list.
-   * @param node The element to append to the PropertyItem list.
-   * @apilevel high-level
-   */
-  public void addPropertyItem(PropertyItem node) {
-    JastAddList<PropertyItem> list = (parent == null) ? getPropertyItemListNoTransform() : getPropertyItemList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addPropertyItemNoTransform(PropertyItem node) {
-    JastAddList<PropertyItem> list = getPropertyItemListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the PropertyItem 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 setPropertyItem(PropertyItem node, int i) {
-    JastAddList<PropertyItem> list = getPropertyItemList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the PropertyItem list.
-   * @return The node representing the PropertyItem list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="PropertyItem")
-  public JastAddList<PropertyItem> getPropertyItemList() {
-    JastAddList<PropertyItem> list = (JastAddList<PropertyItem>) getChild(5);
-    return list;
-  }
-  /**
-   * Retrieves the PropertyItem list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the PropertyItem list.
-   * @apilevel low-level
-   */
-  public JastAddList<PropertyItem> getPropertyItemListNoTransform() {
-    return (JastAddList<PropertyItem>) getChildNoTransform(5);
-  }
-  /**
-   * @return the element at index {@code i} in the PropertyItem list without
-   * triggering rewrites.
-   */
-  public PropertyItem getPropertyItemNoTransform(int i) {
-    return (PropertyItem) getPropertyItemListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the PropertyItem list.
-   * @return The node representing the PropertyItem list.
-   * @apilevel high-level
-   */
-  public JastAddList<PropertyItem> getPropertyItems() {
-    return getPropertyItemList();
-  }
-  /**
-   * Retrieves the PropertyItem list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the PropertyItem list.
-   * @apilevel low-level
-   */
-  public JastAddList<PropertyItem> getPropertyItemsNoTransform() {
-    return getPropertyItemListNoTransform();
-  }
-  /**
-   * Replaces the RequiredField list.
-   * @param list The new list node to be used as the RequiredField list.
-   * @apilevel high-level
-   */
-  public void setRequiredFieldList(JastAddList<RequiredField> list) {
-    setChild(list, 6);
-  }
-  /**
-   * Retrieves the number of children in the RequiredField list.
-   * @return Number of children in the RequiredField list.
-   * @apilevel high-level
-   */
-  public int getNumRequiredField() {
-    return getRequiredFieldList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the RequiredField list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the RequiredField list.
-   * @apilevel low-level
-   */
-  public int getNumRequiredFieldNoTransform() {
-    return getRequiredFieldListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the RequiredField list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the RequiredField list.
-   * @apilevel high-level
-   */
-  public RequiredField getRequiredField(int i) {
-    return (RequiredField) getRequiredFieldList().getChild(i);
-  }
-  /**
-   * Check whether the RequiredField list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasRequiredField() {
-    return getRequiredFieldList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the RequiredField list.
-   * @param node The element to append to the RequiredField list.
-   * @apilevel high-level
-   */
-  public void addRequiredField(RequiredField node) {
-    JastAddList<RequiredField> list = (parent == null) ? getRequiredFieldListNoTransform() : getRequiredFieldList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addRequiredFieldNoTransform(RequiredField node) {
-    JastAddList<RequiredField> list = getRequiredFieldListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the RequiredField 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 setRequiredField(RequiredField node, int i) {
-    JastAddList<RequiredField> list = getRequiredFieldList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the RequiredField list.
-   * @return The node representing the RequiredField list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="RequiredField")
-  public JastAddList<RequiredField> getRequiredFieldList() {
-    JastAddList<RequiredField> list = (JastAddList<RequiredField>) getChild(6);
-    return list;
-  }
-  /**
-   * Retrieves the RequiredField list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the RequiredField list.
-   * @apilevel low-level
-   */
-  public JastAddList<RequiredField> getRequiredFieldListNoTransform() {
-    return (JastAddList<RequiredField>) getChildNoTransform(6);
-  }
-  /**
-   * @return the element at index {@code i} in the RequiredField list without
-   * triggering rewrites.
-   */
-  public RequiredField getRequiredFieldNoTransform(int i) {
-    return (RequiredField) getRequiredFieldListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the RequiredField list.
-   * @return The node representing the RequiredField list.
-   * @apilevel high-level
-   */
-  public JastAddList<RequiredField> getRequiredFields() {
-    return getRequiredFieldList();
-  }
-  /**
-   * Retrieves the RequiredField list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the RequiredField list.
-   * @apilevel low-level
-   */
-  public JastAddList<RequiredField> getRequiredFieldsNoTransform() {
-    return getRequiredFieldListNoTransform();
-  }
-  /**
-   * Replaces the AllOfSchema list.
-   * @param list The new list node to be used as the AllOfSchema list.
-   * @apilevel high-level
-   */
-  public void setAllOfSchemaList(JastAddList<AllOfSchema> list) {
-    setChild(list, 7);
-  }
-  /**
-   * Retrieves the number of children in the AllOfSchema list.
-   * @return Number of children in the AllOfSchema list.
-   * @apilevel high-level
-   */
-  public int getNumAllOfSchema() {
-    return getAllOfSchemaList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the AllOfSchema list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the AllOfSchema list.
-   * @apilevel low-level
-   */
-  public int getNumAllOfSchemaNoTransform() {
-    return getAllOfSchemaListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the AllOfSchema list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the AllOfSchema list.
-   * @apilevel high-level
-   */
-  public AllOfSchema getAllOfSchema(int i) {
-    return (AllOfSchema) getAllOfSchemaList().getChild(i);
-  }
-  /**
-   * Check whether the AllOfSchema list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasAllOfSchema() {
-    return getAllOfSchemaList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the AllOfSchema list.
-   * @param node The element to append to the AllOfSchema list.
-   * @apilevel high-level
-   */
-  public void addAllOfSchema(AllOfSchema node) {
-    JastAddList<AllOfSchema> list = (parent == null) ? getAllOfSchemaListNoTransform() : getAllOfSchemaList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addAllOfSchemaNoTransform(AllOfSchema node) {
-    JastAddList<AllOfSchema> list = getAllOfSchemaListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the AllOfSchema 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 setAllOfSchema(AllOfSchema node, int i) {
-    JastAddList<AllOfSchema> list = getAllOfSchemaList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the AllOfSchema list.
-   * @return The node representing the AllOfSchema list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="AllOfSchema")
-  public JastAddList<AllOfSchema> getAllOfSchemaList() {
-    JastAddList<AllOfSchema> list = (JastAddList<AllOfSchema>) getChild(7);
-    return list;
-  }
-  /**
-   * Retrieves the AllOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the AllOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<AllOfSchema> getAllOfSchemaListNoTransform() {
-    return (JastAddList<AllOfSchema>) getChildNoTransform(7);
-  }
-  /**
-   * @return the element at index {@code i} in the AllOfSchema list without
-   * triggering rewrites.
-   */
-  public AllOfSchema getAllOfSchemaNoTransform(int i) {
-    return (AllOfSchema) getAllOfSchemaListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the AllOfSchema list.
-   * @return The node representing the AllOfSchema list.
-   * @apilevel high-level
-   */
-  public JastAddList<AllOfSchema> getAllOfSchemas() {
-    return getAllOfSchemaList();
-  }
-  /**
-   * Retrieves the AllOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the AllOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<AllOfSchema> getAllOfSchemasNoTransform() {
-    return getAllOfSchemaListNoTransform();
-  }
-  /**
-   * Replaces the AnyOfSchema list.
-   * @param list The new list node to be used as the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  public void setAnyOfSchemaList(JastAddList<AnyOfSchema> list) {
-    setChild(list, 8);
-  }
-  /**
-   * Retrieves the number of children in the AnyOfSchema list.
-   * @return Number of children in the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  public int getNumAnyOfSchema() {
-    return getAnyOfSchemaList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the AnyOfSchema list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the AnyOfSchema list.
-   * @apilevel low-level
-   */
-  public int getNumAnyOfSchemaNoTransform() {
-    return getAnyOfSchemaListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the AnyOfSchema list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  public AnyOfSchema getAnyOfSchema(int i) {
-    return (AnyOfSchema) getAnyOfSchemaList().getChild(i);
-  }
-  /**
-   * Check whether the AnyOfSchema list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasAnyOfSchema() {
-    return getAnyOfSchemaList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the AnyOfSchema list.
-   * @param node The element to append to the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  public void addAnyOfSchema(AnyOfSchema node) {
-    JastAddList<AnyOfSchema> list = (parent == null) ? getAnyOfSchemaListNoTransform() : getAnyOfSchemaList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addAnyOfSchemaNoTransform(AnyOfSchema node) {
-    JastAddList<AnyOfSchema> list = getAnyOfSchemaListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the AnyOfSchema 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 setAnyOfSchema(AnyOfSchema node, int i) {
-    JastAddList<AnyOfSchema> list = getAnyOfSchemaList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the AnyOfSchema list.
-   * @return The node representing the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="AnyOfSchema")
-  public JastAddList<AnyOfSchema> getAnyOfSchemaList() {
-    JastAddList<AnyOfSchema> list = (JastAddList<AnyOfSchema>) getChild(8);
-    return list;
-  }
-  /**
-   * Retrieves the AnyOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the AnyOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<AnyOfSchema> getAnyOfSchemaListNoTransform() {
-    return (JastAddList<AnyOfSchema>) getChildNoTransform(8);
-  }
-  /**
-   * @return the element at index {@code i} in the AnyOfSchema list without
-   * triggering rewrites.
-   */
-  public AnyOfSchema getAnyOfSchemaNoTransform(int i) {
-    return (AnyOfSchema) getAnyOfSchemaListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the AnyOfSchema list.
-   * @return The node representing the AnyOfSchema list.
-   * @apilevel high-level
-   */
-  public JastAddList<AnyOfSchema> getAnyOfSchemas() {
-    return getAnyOfSchemaList();
-  }
-  /**
-   * Retrieves the AnyOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the AnyOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<AnyOfSchema> getAnyOfSchemasNoTransform() {
-    return getAnyOfSchemaListNoTransform();
-  }
-  /**
-   * Replaces the OneOfSchema list.
-   * @param list The new list node to be used as the OneOfSchema list.
-   * @apilevel high-level
-   */
-  public void setOneOfSchemaList(JastAddList<OneOfSchema> list) {
-    setChild(list, 9);
-  }
-  /**
-   * Retrieves the number of children in the OneOfSchema list.
-   * @return Number of children in the OneOfSchema list.
-   * @apilevel high-level
-   */
-  public int getNumOneOfSchema() {
-    return getOneOfSchemaList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the OneOfSchema list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the OneOfSchema list.
-   * @apilevel low-level
-   */
-  public int getNumOneOfSchemaNoTransform() {
-    return getOneOfSchemaListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the OneOfSchema list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the OneOfSchema list.
-   * @apilevel high-level
-   */
-  public OneOfSchema getOneOfSchema(int i) {
-    return (OneOfSchema) getOneOfSchemaList().getChild(i);
-  }
-  /**
-   * Check whether the OneOfSchema list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasOneOfSchema() {
-    return getOneOfSchemaList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the OneOfSchema list.
-   * @param node The element to append to the OneOfSchema list.
-   * @apilevel high-level
-   */
-  public void addOneOfSchema(OneOfSchema node) {
-    JastAddList<OneOfSchema> list = (parent == null) ? getOneOfSchemaListNoTransform() : getOneOfSchemaList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addOneOfSchemaNoTransform(OneOfSchema node) {
-    JastAddList<OneOfSchema> list = getOneOfSchemaListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the OneOfSchema 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 setOneOfSchema(OneOfSchema node, int i) {
-    JastAddList<OneOfSchema> list = getOneOfSchemaList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the OneOfSchema list.
-   * @return The node representing the OneOfSchema list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="OneOfSchema")
-  public JastAddList<OneOfSchema> getOneOfSchemaList() {
-    JastAddList<OneOfSchema> list = (JastAddList<OneOfSchema>) getChild(9);
-    return list;
-  }
-  /**
-   * Retrieves the OneOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the OneOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<OneOfSchema> getOneOfSchemaListNoTransform() {
-    return (JastAddList<OneOfSchema>) getChildNoTransform(9);
-  }
-  /**
-   * @return the element at index {@code i} in the OneOfSchema list without
-   * triggering rewrites.
-   */
-  public OneOfSchema getOneOfSchemaNoTransform(int i) {
-    return (OneOfSchema) getOneOfSchemaListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the OneOfSchema list.
-   * @return The node representing the OneOfSchema list.
-   * @apilevel high-level
-   */
-  public JastAddList<OneOfSchema> getOneOfSchemas() {
-    return getOneOfSchemaList();
-  }
-  /**
-   * Retrieves the OneOfSchema list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the OneOfSchema list.
-   * @apilevel low-level
-   */
-  public JastAddList<OneOfSchema> getOneOfSchemasNoTransform() {
-    return getOneOfSchemaListNoTransform();
-  }
-  /**
-   * Replaces the lexeme ReadOnly.
-   * @param value The new value for the lexeme ReadOnly.
-   * @apilevel high-level
-   */
-  public void setReadOnly(Boolean value) {
-    tokenBoolean_ReadOnly = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_ReadOnly;
-  /**
-   * Retrieves the value for the lexeme ReadOnly.
-   * @return The value for the lexeme ReadOnly.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ReadOnly")
-  public Boolean getReadOnly() {
-    return tokenBoolean_ReadOnly;
-  }
-  /**
-   * Replaces the lexeme WriteOnly.
-   * @param value The new value for the lexeme WriteOnly.
-   * @apilevel high-level
-   */
-  public void setWriteOnly(Boolean value) {
-    tokenBoolean_WriteOnly = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_WriteOnly;
-  /**
-   * Retrieves the value for the lexeme WriteOnly.
-   * @return The value for the lexeme WriteOnly.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="WriteOnly")
-  public Boolean getWriteOnly() {
-    return tokenBoolean_WriteOnly;
-  }
-  /**
-   * Replaces the lexeme Type.
-   * @param value The new value for the lexeme Type.
-   * @apilevel high-level
-   */
-  public void setType(String value) {
-    tokenString_Type = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Type;
-  /**
-   * Retrieves the value for the lexeme Type.
-   * @return The value for the lexeme Type.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Type")
-  public String getType() {
-    return tokenString_Type != null ? tokenString_Type : "";
-  }
-  /**
-   * Replaces the lexeme Title.
-   * @param value The new value for the lexeme Title.
-   * @apilevel high-level
-   */
-  public void setTitle(String value) {
-    tokenString_Title = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Title;
-  /**
-   * Retrieves the value for the lexeme Title.
-   * @return The value for the lexeme Title.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Title")
-  public String getTitle() {
-    return tokenString_Title != null ? tokenString_Title : "";
-  }
-  /**
-   * Replaces the lexeme UniqueItems.
-   * @param value The new value for the lexeme UniqueItems.
-   * @apilevel high-level
-   */
-  public void setUniqueItems(Boolean value) {
-    tokenBoolean_UniqueItems = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_UniqueItems;
-  /**
-   * Retrieves the value for the lexeme UniqueItems.
-   * @return The value for the lexeme UniqueItems.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="UniqueItems")
-  public Boolean getUniqueItems() {
-    return tokenBoolean_UniqueItems;
-  }
-  /**
-   * Replaces the optional node for the XmlObject child. This is the <code>Opt</code>
-   * node containing the child XmlObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the XmlObject child.
-   * @apilevel low-level
-   */
-  public void setXmlObjectOpt(Opt<XmlObject> opt) {
-    setChild(opt, 10);
-  }
-  /**
-   * Replaces the (optional) XmlObject child.
-   * @param node The new node to be used as the XmlObject child.
-   * @apilevel high-level
-   */
-  public void setXmlObject(XmlObject node) {
-    getXmlObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional XmlObject child exists.
-   * @return {@code true} if the optional XmlObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasXmlObject() {
-    return getXmlObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) XmlObject child.
-   * @return The XmlObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public XmlObject getXmlObject() {
-    return (XmlObject) getXmlObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the XmlObject child. This is the <code>Opt</code> node containing the child XmlObject, not the actual child!
-   * @return The optional node for child the XmlObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="XmlObject")
-  public Opt<XmlObject> getXmlObjectOpt() {
-    return (Opt<XmlObject>) getChild(10);
-  }
-  /**
-   * Retrieves the optional node for child XmlObject. This is the <code>Opt</code> node containing the child XmlObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child XmlObject.
-   * @apilevel low-level
-   */
-  public Opt<XmlObject> getXmlObjectOptNoTransform() {
-    return (Opt<XmlObject>) getChildNoTransform(10);
-  }
-  /**
-   * 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 Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 11);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(11);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(11);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/SchemaTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java
deleted file mode 100644
index 95c659eb..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SchemaTuple.java
+++ /dev/null
@@ -1,214 +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 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:23
- * @astdecl SchemaTuple : ASTNode ::= <Key:String> SchemaObject;
- * @production SchemaTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link SchemaObject}</span>;
-
- */
-public class SchemaTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SchemaTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "SchemaObject"},
-    type = {"String", "SchemaObject"},
-    kind = {"Token", "Child"}
-  )
-  public SchemaTuple(String p0, SchemaObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public SchemaTuple clone() throws CloneNotSupportedException {
-    SchemaTuple node = (SchemaTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public SchemaTuple copy() {
-    try {
-      SchemaTuple node = (SchemaTuple) 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:65
-   */
-  @Deprecated
-  public SchemaTuple 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:75
-   */
-  public SchemaTuple treeCopyNoTransform() {
-    SchemaTuple tree = (SchemaTuple) 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:95
-   */
-  public SchemaTuple treeCopy() {
-    SchemaTuple tree = (SchemaTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((SchemaTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the SchemaObject child.
-   * @param node The new node to replace the SchemaObject child.
-   * @apilevel high-level
-   */
-  public void setSchemaObject(SchemaObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * @return The current node used as the SchemaObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SchemaObject")
-  public SchemaObject getSchemaObject() {
-    return (SchemaObject) getChild(0);
-  }
-  /**
-   * Retrieves the SchemaObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SchemaObject child.
-   * @apilevel low-level
-   */
-  public SchemaObject getSchemaObjectNoTransform() {
-    return (SchemaObject) getChildNoTransform(0);
-  }
-  /** @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/ScopesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java
deleted file mode 100644
index d9612f3c..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ScopesTuple.java
+++ /dev/null
@@ -1,207 +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 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:121
- * @astdecl ScopesTuple : ASTNode ::= <ScopesKey:String> <ScopesValue:String>;
- * @production ScopesTuple : {@link ASTNode} ::= <span class="component">&lt;ScopesKey:String&gt;</span> <span class="component">&lt;ScopesValue:String&gt;</span>;
-
- */
-public class ScopesTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ScopesTuple() {
-    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 = {"ScopesKey", "ScopesValue"},
-    type = {"String", "String"},
-    kind = {"Token", "Token"}
-  )
-  public ScopesTuple(String p0, String p1) {
-    setScopesKey(p0);
-    setScopesValue(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 ScopesTuple clone() throws CloneNotSupportedException {
-    ScopesTuple node = (ScopesTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public ScopesTuple copy() {
-    try {
-      ScopesTuple node = (ScopesTuple) 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 ScopesTuple 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 ScopesTuple treeCopyNoTransform() {
-    ScopesTuple tree = (ScopesTuple) 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 ScopesTuple treeCopy() {
-    ScopesTuple tree = (ScopesTuple) 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_ScopesKey == ((ScopesTuple) node).tokenString_ScopesKey) && (tokenString_ScopesValue == ((ScopesTuple) node).tokenString_ScopesValue);    
-  }
-  /**
-   * Replaces the lexeme ScopesKey.
-   * @param value The new value for the lexeme ScopesKey.
-   * @apilevel high-level
-   */
-  public void setScopesKey(String value) {
-    tokenString_ScopesKey = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_ScopesKey;
-  /**
-   * Retrieves the value for the lexeme ScopesKey.
-   * @return The value for the lexeme ScopesKey.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ScopesKey")
-  public String getScopesKey() {
-    return tokenString_ScopesKey != null ? tokenString_ScopesKey : "";
-  }
-  /**
-   * Replaces the lexeme ScopesValue.
-   * @param value The new value for the lexeme ScopesValue.
-   * @apilevel high-level
-   */
-  public void setScopesValue(String value) {
-    tokenString_ScopesValue = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_ScopesValue;
-  /**
-   * Retrieves the value for the lexeme ScopesValue.
-   * @return The value for the lexeme ScopesValue.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="ScopesValue")
-  public String getScopesValue() {
-    return tokenString_ScopesValue != null ? tokenString_ScopesValue : "";
-  }
-  /** @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/SecurityRequirementObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java
deleted file mode 100644
index b1c614c4..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementObject.java
+++ /dev/null
@@ -1,316 +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 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:124
- * @astdecl SecurityRequirementObject : ASTNode ::= SecurityRequirementTuple*;
- * @production SecurityRequirementObject : {@link ASTNode} ::= <span class="component">{@link SecurityRequirementTuple}*</span>;
-
- */
-public class SecurityRequirementObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:847
-   */
-  public static SecurityRequirement composeSecurityRequirement (SecurityRequirementObject securityRequirementObject){
-        SecurityRequirement securityRequirement = new SecurityRequirement();
-
-        if( securityRequirementObject.getNumSecurityRequirementTuple() != 0 ){
-        Map<String, List<String>> requirements = new HashMap<>();
-        for( SecurityRequirementTuple t : securityRequirementObject.getSecurityRequirementTuples() ){
-        List<String> values = new ArrayList<>();
-        for( SecurityRequirementValue v : t.getSecurityRequirementValues() )
-        values.add(v.getValue());
-        requirements.put(t.getName(), values);
-        }
-        securityRequirement.setRequirements(requirements);
-        }
-
-        return securityRequirement;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:862
-   */
-  public static SecurityRequirementObject parseSecurityRequirement(SecurityRequirement securityRequirement){
-        SecurityRequirementObject securityRequirementObject = new SecurityRequirementObject();
-
-        if( securityRequirement.getRequirements() != null ){
-        for( String key : securityRequirement.getRequirements().keySet() ){
-        JastAddList<SecurityRequirementValue> values = new JastAddList<>();
-        for( String v : securityRequirement.getRequirement(key) )
-        values.add(new SecurityRequirementValue(v));
-        securityRequirementObject.addSecurityRequirementTuple(new SecurityRequirementTuple(key, values));
-        }
-        }
-
-        return securityRequirementObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SecurityRequirementObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"SecurityRequirementTuple"},
-    type = {"JastAddList<SecurityRequirementTuple>"},
-    kind = {"List"}
-  )
-  public SecurityRequirementObject(JastAddList<SecurityRequirementTuple> p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public SecurityRequirementObject clone() throws CloneNotSupportedException {
-    SecurityRequirementObject node = (SecurityRequirementObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public SecurityRequirementObject copy() {
-    try {
-      SecurityRequirementObject node = (SecurityRequirementObject) 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:65
-   */
-  @Deprecated
-  public SecurityRequirementObject 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:75
-   */
-  public SecurityRequirementObject treeCopyNoTransform() {
-    SecurityRequirementObject tree = (SecurityRequirementObject) 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:95
-   */
-  public SecurityRequirementObject treeCopy() {
-    SecurityRequirementObject tree = (SecurityRequirementObject) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node);    
-  }
-  /**
-   * Replaces the SecurityRequirementTuple list.
-   * @param list The new list node to be used as the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  public void setSecurityRequirementTupleList(JastAddList<SecurityRequirementTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementTuple list.
-   * @return Number of children in the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  public int getNumSecurityRequirementTuple() {
-    return getSecurityRequirementTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SecurityRequirementTuple list.
-   * @apilevel low-level
-   */
-  public int getNumSecurityRequirementTupleNoTransform() {
-    return getSecurityRequirementTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SecurityRequirementTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  public SecurityRequirementTuple getSecurityRequirementTuple(int i) {
-    return (SecurityRequirementTuple) getSecurityRequirementTupleList().getChild(i);
-  }
-  /**
-   * Check whether the SecurityRequirementTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSecurityRequirementTuple() {
-    return getSecurityRequirementTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SecurityRequirementTuple list.
-   * @param node The element to append to the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  public void addSecurityRequirementTuple(SecurityRequirementTuple node) {
-    JastAddList<SecurityRequirementTuple> list = (parent == null) ? getSecurityRequirementTupleListNoTransform() : getSecurityRequirementTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSecurityRequirementTupleNoTransform(SecurityRequirementTuple node) {
-    JastAddList<SecurityRequirementTuple> list = getSecurityRequirementTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SecurityRequirementTuple 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 setSecurityRequirementTuple(SecurityRequirementTuple node, int i) {
-    JastAddList<SecurityRequirementTuple> list = getSecurityRequirementTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SecurityRequirementTuple list.
-   * @return The node representing the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SecurityRequirementTuple")
-  public JastAddList<SecurityRequirementTuple> getSecurityRequirementTupleList() {
-    JastAddList<SecurityRequirementTuple> list = (JastAddList<SecurityRequirementTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the SecurityRequirementTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementTuple> getSecurityRequirementTupleListNoTransform() {
-    return (JastAddList<SecurityRequirementTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the SecurityRequirementTuple list without
-   * triggering rewrites.
-   */
-  public SecurityRequirementTuple getSecurityRequirementTupleNoTransform(int i) {
-    return (SecurityRequirementTuple) getSecurityRequirementTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SecurityRequirementTuple list.
-   * @return The node representing the SecurityRequirementTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<SecurityRequirementTuple> getSecurityRequirementTuples() {
-    return getSecurityRequirementTupleList();
-  }
-  /**
-   * Retrieves the SecurityRequirementTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementTuple> getSecurityRequirementTuplesNoTransform() {
-    return getSecurityRequirementTupleListNoTransform();
-  }
-  /** @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/SecurityRequirementTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java
deleted file mode 100644
index 357e1b8d..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementTuple.java
+++ /dev/null
@@ -1,299 +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 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:125
- * @astdecl SecurityRequirementTuple : ASTNode ::= <Name:String> SecurityRequirementValue*;
- * @production SecurityRequirementTuple : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">{@link SecurityRequirementValue}*</span>;
-
- */
-public class SecurityRequirementTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SecurityRequirementTuple() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "SecurityRequirementValue"},
-    type = {"String", "JastAddList<SecurityRequirementValue>"},
-    kind = {"Token", "List"}
-  )
-  public SecurityRequirementTuple(String p0, JastAddList<SecurityRequirementValue> p1) {
-    setName(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:24
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:30
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:34
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:38
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:42
-   */
-  public SecurityRequirementTuple clone() throws CloneNotSupportedException {
-    SecurityRequirementTuple node = (SecurityRequirementTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:47
-   */
-  public SecurityRequirementTuple copy() {
-    try {
-      SecurityRequirementTuple node = (SecurityRequirementTuple) 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:66
-   */
-  @Deprecated
-  public SecurityRequirementTuple 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:76
-   */
-  public SecurityRequirementTuple treeCopyNoTransform() {
-    SecurityRequirementTuple tree = (SecurityRequirementTuple) 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:96
-   */
-  public SecurityRequirementTuple treeCopy() {
-    SecurityRequirementTuple tree = (SecurityRequirementTuple) 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:110
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((SecurityRequirementTuple) node).tokenString_Name);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the SecurityRequirementValue list.
-   * @param list The new list node to be used as the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  public void setSecurityRequirementValueList(JastAddList<SecurityRequirementValue> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementValue list.
-   * @return Number of children in the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  public int getNumSecurityRequirementValue() {
-    return getSecurityRequirementValueList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the SecurityRequirementValue list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the SecurityRequirementValue list.
-   * @apilevel low-level
-   */
-  public int getNumSecurityRequirementValueNoTransform() {
-    return getSecurityRequirementValueListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the SecurityRequirementValue list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  public SecurityRequirementValue getSecurityRequirementValue(int i) {
-    return (SecurityRequirementValue) getSecurityRequirementValueList().getChild(i);
-  }
-  /**
-   * Check whether the SecurityRequirementValue list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasSecurityRequirementValue() {
-    return getSecurityRequirementValueList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the SecurityRequirementValue list.
-   * @param node The element to append to the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  public void addSecurityRequirementValue(SecurityRequirementValue node) {
-    JastAddList<SecurityRequirementValue> list = (parent == null) ? getSecurityRequirementValueListNoTransform() : getSecurityRequirementValueList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addSecurityRequirementValueNoTransform(SecurityRequirementValue node) {
-    JastAddList<SecurityRequirementValue> list = getSecurityRequirementValueListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the SecurityRequirementValue 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 setSecurityRequirementValue(SecurityRequirementValue node, int i) {
-    JastAddList<SecurityRequirementValue> list = getSecurityRequirementValueList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the SecurityRequirementValue list.
-   * @return The node representing the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="SecurityRequirementValue")
-  public JastAddList<SecurityRequirementValue> getSecurityRequirementValueList() {
-    JastAddList<SecurityRequirementValue> list = (JastAddList<SecurityRequirementValue>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the SecurityRequirementValue list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementValue list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementValue> getSecurityRequirementValueListNoTransform() {
-    return (JastAddList<SecurityRequirementValue>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the SecurityRequirementValue list without
-   * triggering rewrites.
-   */
-  public SecurityRequirementValue getSecurityRequirementValueNoTransform(int i) {
-    return (SecurityRequirementValue) getSecurityRequirementValueListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the SecurityRequirementValue list.
-   * @return The node representing the SecurityRequirementValue list.
-   * @apilevel high-level
-   */
-  public JastAddList<SecurityRequirementValue> getSecurityRequirementValues() {
-    return getSecurityRequirementValueList();
-  }
-  /**
-   * Retrieves the SecurityRequirementValue list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the SecurityRequirementValue list.
-   * @apilevel low-level
-   */
-  public JastAddList<SecurityRequirementValue> getSecurityRequirementValuesNoTransform() {
-    return getSecurityRequirementValueListNoTransform();
-  }
-  /** @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/SecurityRequirementValue.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java
deleted file mode 100644
index 53aaef12..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecurityRequirementValue.java
+++ /dev/null
@@ -1,186 +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 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:126
- * @astdecl SecurityRequirementValue : ASTNode ::= <Value:String>;
- * @production SecurityRequirementValue : {@link ASTNode} ::= <span class="component">&lt;Value:String&gt;</span>;
-
- */
-public class SecurityRequirementValue extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SecurityRequirementValue() {
-    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 = {"Value"},
-    type = {"String"},
-    kind = {"Token"}
-  )
-  public SecurityRequirementValue(String p0) {
-    setValue(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 SecurityRequirementValue clone() throws CloneNotSupportedException {
-    SecurityRequirementValue node = (SecurityRequirementValue) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public SecurityRequirementValue copy() {
-    try {
-      SecurityRequirementValue node = (SecurityRequirementValue) 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 SecurityRequirementValue 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 SecurityRequirementValue treeCopyNoTransform() {
-    SecurityRequirementValue tree = (SecurityRequirementValue) 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 SecurityRequirementValue treeCopy() {
-    SecurityRequirementValue tree = (SecurityRequirementValue) 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_Value == ((SecurityRequirementValue) node).tokenString_Value);    
-  }
-  /**
-   * Replaces the lexeme Value.
-   * @param value The new value for the lexeme Value.
-   * @apilevel high-level
-   */
-  public void setValue(String value) {
-    tokenString_Value = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Value;
-  /**
-   * Retrieves the value for the lexeme Value.
-   * @return The value for the lexeme Value.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Value")
-  public String getValue() {
-    return tokenString_Value != null ? tokenString_Value : "";
-  }
-  /** @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/SecuritySchemeObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java
deleted file mode 100644
index c8994f29..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeObject.java
+++ /dev/null
@@ -1,535 +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 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:110
- * @astdecl SecuritySchemeObject : ASTNode ::= <Type:String> <Description:String> <Name:String> <In:String> <Scheme:String> <BearerFormat:String> OAuthFlowsObject <OpenIdConnectUrl:String> <Ref:String> Extension*;
- * @production SecuritySchemeObject : {@link ASTNode} ::= <span class="component">&lt;Type:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;In:String&gt;</span> <span class="component">&lt;Scheme:String&gt;</span> <span class="component">&lt;BearerFormat:String&gt;</span> <span class="component">{@link OAuthFlowsObject}</span> <span class="component">&lt;OpenIdConnectUrl:String&gt;</span> <span class="component">&lt;Ref:String&gt;</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class SecuritySchemeObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:780
-   */
-  public static SecurityScheme composeSecurityScheme (SecuritySchemeObject securitySchemeObject){
-        SecurityScheme securityScheme = new SecurityScheme();
-
-        if( !securitySchemeObject.getType().isEmpty() )
-        securityScheme.setType(securitySchemeObject.getType());
-        if( !securitySchemeObject.getName().isEmpty() )
-        securityScheme.setName(securitySchemeObject.getName());
-        if( !securitySchemeObject.getIn().isEmpty() )
-        securityScheme.setIn(securitySchemeObject.getIn());
-        if( !securitySchemeObject.getScheme().isEmpty() )
-        securityScheme.setScheme(securitySchemeObject.getScheme());
-        if( !securitySchemeObject.getOpenIdConnectUrl().isEmpty() )
-        securityScheme.setOpenIdConnectUrl(securitySchemeObject.getOpenIdConnectUrl());
-        if( securitySchemeObject.getOAuthFlowsObject() != null )
-        securityScheme.setFlows(OAuthFlowsObject.composeOAuthFlows(securitySchemeObject.getOAuthFlowsObject()));
-        if( !securitySchemeObject.getDescription().isEmpty() )
-        securityScheme.setDescription( securitySchemeObject.getDescription() );
-        if( !securitySchemeObject.getBearerFormat().isEmpty() )
-        securityScheme.setBearerFormat( securitySchemeObject.getBearerFormat() );
-        if( securitySchemeObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : securitySchemeObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        securityScheme.setExtensions(extensionMap);
-        }
-
-        return securityScheme;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:792
-   */
-  public static SecuritySchemeObject parseSecurityScheme(SecurityScheme securityScheme){
-        SecuritySchemeObject securitySchemeObject = new SecuritySchemeObject();
-
-        if( securityScheme.getType() != null )
-        securitySchemeObject.setType(securityScheme.getType());
-        if( securityScheme.getName() != null )
-        securitySchemeObject.setName(securityScheme.getName());
-        if( securityScheme.getIn() != null )
-        securitySchemeObject.setIn(securityScheme.getIn());
-        if( securityScheme.getScheme() != null )
-        securitySchemeObject.setScheme(securityScheme.getScheme());
-        if( securityScheme.getOpenIdConnectUrl() != null )
-        securitySchemeObject.setOpenIdConnectUrl(securityScheme.getOpenIdConnectUrl());
-        if( securityScheme.getFlows() != null )
-        securitySchemeObject.setOAuthFlowsObject( OAuthFlowsObject.parseOAuthFlows(securityScheme.getFlows()) );
-        if( securityScheme.getDescription() != null )
-        securitySchemeObject.setDescription( securityScheme.getDescription() );
-        if( securityScheme.getBearerFormat() != null )
-        securitySchemeObject.setBearerFormat( securityScheme.getBearerFormat() );
-        if( securityScheme.getExtensions() != null ){
-        for( String key : securityScheme.getExtensions().keySet() )
-        securitySchemeObject.addExtension(new Extension(key, securityScheme.getExtensions().get(key)));
-        }
-
-        return securitySchemeObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SecuritySchemeObject() {
-    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() {
-    children = new ASTNode[2];
-    setChild(new JastAddList(), 1);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Type", "Description", "Name", "In", "Scheme", "BearerFormat", "OAuthFlowsObject", "OpenIdConnectUrl", "Ref", "Extension"},
-    type = {"String", "String", "String", "String", "String", "String", "OAuthFlowsObject", "String", "String", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Token", "Token", "Token", "Token", "Child", "Token", "Token", "List"}
-  )
-  public SecuritySchemeObject(String p0, String p1, String p2, String p3, String p4, String p5, OAuthFlowsObject p6, String p7, String p8, JastAddList<Extension> p9) {
-    setType(p0);
-    setDescription(p1);
-    setName(p2);
-    setIn(p3);
-    setScheme(p4);
-    setBearerFormat(p5);
-    setChild(p6, 0);
-    setOpenIdConnectUrl(p7);
-    setRef(p8);
-    setChild(p9, 1);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:32
-   */
-  protected int numChildren() {
-    return 2;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:38
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:42
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public SecuritySchemeObject clone() throws CloneNotSupportedException {
-    SecuritySchemeObject node = (SecuritySchemeObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:55
-   */
-  public SecuritySchemeObject copy() {
-    try {
-      SecuritySchemeObject node = (SecuritySchemeObject) 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:74
-   */
-  @Deprecated
-  public SecuritySchemeObject 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:84
-   */
-  public SecuritySchemeObject treeCopyNoTransform() {
-    SecuritySchemeObject tree = (SecuritySchemeObject) 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:104
-   */
-  public SecuritySchemeObject treeCopy() {
-    SecuritySchemeObject tree = (SecuritySchemeObject) 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: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) && (tokenString_Ref == ((SecuritySchemeObject) node).tokenString_Ref);    
-  }
-  /**
-   * Replaces the lexeme Type.
-   * @param value The new value for the lexeme Type.
-   * @apilevel high-level
-   */
-  public void setType(String value) {
-    tokenString_Type = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Type;
-  /**
-   * Retrieves the value for the lexeme Type.
-   * @return The value for the lexeme Type.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Type")
-  public String getType() {
-    return tokenString_Type != null ? tokenString_Type : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme In.
-   * @param value The new value for the lexeme In.
-   * @apilevel high-level
-   */
-  public void setIn(String value) {
-    tokenString_In = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_In;
-  /**
-   * Retrieves the value for the lexeme In.
-   * @return The value for the lexeme In.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="In")
-  public String getIn() {
-    return tokenString_In != null ? tokenString_In : "";
-  }
-  /**
-   * Replaces the lexeme Scheme.
-   * @param value The new value for the lexeme Scheme.
-   * @apilevel high-level
-   */
-  public void setScheme(String value) {
-    tokenString_Scheme = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Scheme;
-  /**
-   * Retrieves the value for the lexeme Scheme.
-   * @return The value for the lexeme Scheme.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Scheme")
-  public String getScheme() {
-    return tokenString_Scheme != null ? tokenString_Scheme : "";
-  }
-  /**
-   * Replaces the lexeme BearerFormat.
-   * @param value The new value for the lexeme BearerFormat.
-   * @apilevel high-level
-   */
-  public void setBearerFormat(String value) {
-    tokenString_BearerFormat = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_BearerFormat;
-  /**
-   * Retrieves the value for the lexeme BearerFormat.
-   * @return The value for the lexeme BearerFormat.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="BearerFormat")
-  public String getBearerFormat() {
-    return tokenString_BearerFormat != null ? tokenString_BearerFormat : "";
-  }
-  /**
-   * Replaces the OAuthFlowsObject child.
-   * @param node The new node to replace the OAuthFlowsObject child.
-   * @apilevel high-level
-   */
-  public void setOAuthFlowsObject(OAuthFlowsObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OAuthFlowsObject child.
-   * @return The current node used as the OAuthFlowsObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OAuthFlowsObject")
-  public OAuthFlowsObject getOAuthFlowsObject() {
-    return (OAuthFlowsObject) getChild(0);
-  }
-  /**
-   * Retrieves the OAuthFlowsObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OAuthFlowsObject child.
-   * @apilevel low-level
-   */
-  public OAuthFlowsObject getOAuthFlowsObjectNoTransform() {
-    return (OAuthFlowsObject) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the lexeme OpenIdConnectUrl.
-   * @param value The new value for the lexeme OpenIdConnectUrl.
-   * @apilevel high-level
-   */
-  public void setOpenIdConnectUrl(String value) {
-    tokenString_OpenIdConnectUrl = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_OpenIdConnectUrl;
-  /**
-   * Retrieves the value for the lexeme OpenIdConnectUrl.
-   * @return The value for the lexeme OpenIdConnectUrl.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="OpenIdConnectUrl")
-  public String getOpenIdConnectUrl() {
-    return tokenString_OpenIdConnectUrl != null ? tokenString_OpenIdConnectUrl : "";
-  }
-  /**
-   * 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 Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/SecuritySchemeTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java
deleted file mode 100644
index fb57a824..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/SecuritySchemeTuple.java
+++ /dev/null
@@ -1,214 +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 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:29
- * @astdecl SecuritySchemeTuple : ASTNode ::= <Key:String> SecuritySchemeObject;
- * @production SecuritySchemeTuple : {@link ASTNode} ::= <span class="component">&lt;Key:String&gt;</span> <span class="component">{@link SecuritySchemeObject}</span>;
-
- */
-public class SecuritySchemeTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public SecuritySchemeTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Key", "SecuritySchemeObject"},
-    type = {"String", "SecuritySchemeObject"},
-    kind = {"Token", "Child"}
-  )
-  public SecuritySchemeTuple(String p0, SecuritySchemeObject p1) {
-    setKey(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public SecuritySchemeTuple clone() throws CloneNotSupportedException {
-    SecuritySchemeTuple node = (SecuritySchemeTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public SecuritySchemeTuple copy() {
-    try {
-      SecuritySchemeTuple node = (SecuritySchemeTuple) 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:65
-   */
-  @Deprecated
-  public SecuritySchemeTuple 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:75
-   */
-  public SecuritySchemeTuple treeCopyNoTransform() {
-    SecuritySchemeTuple tree = (SecuritySchemeTuple) 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:95
-   */
-  public SecuritySchemeTuple treeCopy() {
-    SecuritySchemeTuple tree = (SecuritySchemeTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Key == ((SecuritySchemeTuple) node).tokenString_Key);    
-  }
-  /**
-   * Replaces the lexeme Key.
-   * @param value The new value for the lexeme Key.
-   * @apilevel high-level
-   */
-  public void setKey(String value) {
-    tokenString_Key = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Key;
-  /**
-   * Retrieves the value for the lexeme Key.
-   * @return The value for the lexeme Key.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Key")
-  public String getKey() {
-    return tokenString_Key != null ? tokenString_Key : "";
-  }
-  /**
-   * Replaces the SecuritySchemeObject child.
-   * @param node The new node to replace the SecuritySchemeObject child.
-   * @apilevel high-level
-   */
-  public void setSecuritySchemeObject(SecuritySchemeObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the SecuritySchemeObject child.
-   * @return The current node used as the SecuritySchemeObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="SecuritySchemeObject")
-  public SecuritySchemeObject getSecuritySchemeObject() {
-    return (SecuritySchemeObject) getChild(0);
-  }
-  /**
-   * Retrieves the SecuritySchemeObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the SecuritySchemeObject child.
-   * @apilevel low-level
-   */
-  public SecuritySchemeObject getSecuritySchemeObjectNoTransform() {
-    return (SecuritySchemeObject) getChildNoTransform(0);
-  }
-  /** @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/ServerObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java
deleted file mode 100644
index 42107633..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerObject.java
+++ /dev/null
@@ -1,358 +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 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:14
- * @astdecl ServerObject : ASTNode ::= <Url:String> <Description:String> ServerVariablesTuple*;
- * @production ServerObject : {@link ASTNode} ::= <span class="component">&lt;Url:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">{@link ServerVariablesTuple}*</span>;
-
- */
-public class ServerObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:115
-   */
-  public static Server composeServer (ServerObject serverObject){
-        Server server = new Server();
-
-        if( !serverObject.getUrl().isEmpty() )
-        server.setUrl(serverObject.getUrl());
-        if( !serverObject.getDescription().isEmpty() )
-        server.setDescription( serverObject.getDescription() );
-        if( serverObject.hasServerVariablesTuple() ){
-        Map<String, ServerVariable> serverVariables = new HashMap<>();
-        for( ServerVariablesTuple s : serverObject.getServerVariablesTuples() )
-        serverVariables.put( s.getName(), ServerVariableObject.composeServerVariable(s.getServerVariableObject()) );
-        server.setVariables(serverVariables);
-        }
-
-        return server;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:91
-   */
-  public static ServerObject parseServer(Server server){
-        ServerObject serverObject = new ServerObject();
-
-        if( server.getUrl() != null )
-        serverObject.setUrl(server.getUrl());
-        if( server.getDescription() != null )
-        serverObject.setDescription(server.getDescription());
-        if( server.getVariables() != null ){
-        for (String key : server.getVariables().keySet())
-        serverObject.addServerVariablesTuple(new ServerVariablesTuple(key, ServerVariableObject.parseServerVariable(server.getVariable(key))));
-        }
-
-        return serverObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ServerObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Url", "Description", "ServerVariablesTuple"},
-    type = {"String", "String", "JastAddList<ServerVariablesTuple>"},
-    kind = {"Token", "Token", "List"}
-  )
-  public ServerObject(String p0, String p1, JastAddList<ServerVariablesTuple> p2) {
-    setUrl(p0);
-    setDescription(p1);
-    setChild(p2, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:25
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:31
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:35
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public ServerObject clone() throws CloneNotSupportedException {
-    ServerObject node = (ServerObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:48
-   */
-  public ServerObject copy() {
-    try {
-      ServerObject node = (ServerObject) 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:67
-   */
-  @Deprecated
-  public ServerObject 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:77
-   */
-  public ServerObject treeCopyNoTransform() {
-    ServerObject tree = (ServerObject) 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:97
-   */
-  public ServerObject treeCopy() {
-    ServerObject tree = (ServerObject) 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:111
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Url == ((ServerObject) node).tokenString_Url) && (tokenString_Description == ((ServerObject) node).tokenString_Description);    
-  }
-  /**
-   * Replaces the lexeme Url.
-   * @param value The new value for the lexeme Url.
-   * @apilevel high-level
-   */
-  public void setUrl(String value) {
-    tokenString_Url = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Url;
-  /**
-   * Retrieves the value for the lexeme Url.
-   * @return The value for the lexeme Url.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Url")
-  public String getUrl() {
-    return tokenString_Url != null ? tokenString_Url : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the ServerVariablesTuple list.
-   * @param list The new list node to be used as the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  public void setServerVariablesTupleList(JastAddList<ServerVariablesTuple> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the ServerVariablesTuple list.
-   * @return Number of children in the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  public int getNumServerVariablesTuple() {
-    return getServerVariablesTupleList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the ServerVariablesTuple list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the ServerVariablesTuple list.
-   * @apilevel low-level
-   */
-  public int getNumServerVariablesTupleNoTransform() {
-    return getServerVariablesTupleListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the ServerVariablesTuple list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  public ServerVariablesTuple getServerVariablesTuple(int i) {
-    return (ServerVariablesTuple) getServerVariablesTupleList().getChild(i);
-  }
-  /**
-   * Check whether the ServerVariablesTuple list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasServerVariablesTuple() {
-    return getServerVariablesTupleList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the ServerVariablesTuple list.
-   * @param node The element to append to the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  public void addServerVariablesTuple(ServerVariablesTuple node) {
-    JastAddList<ServerVariablesTuple> list = (parent == null) ? getServerVariablesTupleListNoTransform() : getServerVariablesTupleList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addServerVariablesTupleNoTransform(ServerVariablesTuple node) {
-    JastAddList<ServerVariablesTuple> list = getServerVariablesTupleListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the ServerVariablesTuple 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 setServerVariablesTuple(ServerVariablesTuple node, int i) {
-    JastAddList<ServerVariablesTuple> list = getServerVariablesTupleList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the ServerVariablesTuple list.
-   * @return The node representing the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="ServerVariablesTuple")
-  public JastAddList<ServerVariablesTuple> getServerVariablesTupleList() {
-    JastAddList<ServerVariablesTuple> list = (JastAddList<ServerVariablesTuple>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the ServerVariablesTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerVariablesTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerVariablesTuple> getServerVariablesTupleListNoTransform() {
-    return (JastAddList<ServerVariablesTuple>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the ServerVariablesTuple list without
-   * triggering rewrites.
-   */
-  public ServerVariablesTuple getServerVariablesTupleNoTransform(int i) {
-    return (ServerVariablesTuple) getServerVariablesTupleListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the ServerVariablesTuple list.
-   * @return The node representing the ServerVariablesTuple list.
-   * @apilevel high-level
-   */
-  public JastAddList<ServerVariablesTuple> getServerVariablesTuples() {
-    return getServerVariablesTupleList();
-  }
-  /**
-   * Retrieves the ServerVariablesTuple list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the ServerVariablesTuple list.
-   * @apilevel low-level
-   */
-  public JastAddList<ServerVariablesTuple> getServerVariablesTuplesNoTransform() {
-    return getServerVariablesTupleListNoTransform();
-  }
-  /** @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/ServerVariableObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java
deleted file mode 100644
index d7e654fc..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariableObject.java
+++ /dev/null
@@ -1,358 +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 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:18
- * @astdecl ServerVariableObject : ASTNode ::= Enum* <Default:String> <Description:String>;
- * @production ServerVariableObject : {@link ASTNode} ::= <span class="component">{@link Enum}*</span> <span class="component">&lt;Default:String&gt;</span> <span class="component">&lt;Description:String&gt;</span>;
-
- */
-public class ServerVariableObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:132
-   */
-  public static ServerVariable composeServerVariable (ServerVariableObject serverVariableObject){
-        ServerVariable serverVariable = new ServerVariable();
-
-        if( !serverVariableObject.getDefault().isEmpty() )
-        serverVariable.setDefault(serverVariableObject.getDefault());
-        if( !serverVariableObject.getDescription().isEmpty() )
-        serverVariable.setDescription(serverVariableObject.getDescription());
-        if( serverVariableObject.getNumEnum() != 0 ){
-        List<String> enums = new ArrayList<>();
-        for( Enum e : serverVariableObject.getEnums() )
-        enums.add( e.getEnumValue() );
-        serverVariable.setEnums( enums );
-        }
-
-        return serverVariable;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:106
-   */
-  public static ServerVariableObject parseServerVariable(ServerVariable serverVariable){
-        ServerVariableObject serverVariableObject = new ServerVariableObject();
-
-        if( serverVariable.getDefault() != null )
-        serverVariableObject.setDefault(serverVariable.getDefault());
-        if( serverVariable.getDescription() != null )
-        serverVariableObject.setDescription(serverVariable.getDescription());
-        if( serverVariable.getEnums() != null ){
-        for( String e : serverVariable.getEnums() )
-        serverVariableObject.addEnum(new Enum(e));
-        }
-
-        return serverVariableObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ServerVariableObject() {
-    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() {
-    children = new ASTNode[1];
-    setChild(new JastAddList(), 0);
-  }
-  /**
-   * @declaredat ASTNode:14
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Enum", "Default", "Description"},
-    type = {"JastAddList<Enum>", "String", "String"},
-    kind = {"List", "Token", "Token"}
-  )
-  public ServerVariableObject(JastAddList<Enum> p0, String p1, String p2) {
-    setChild(p0, 0);
-    setDefault(p1);
-    setDescription(p2);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:25
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:31
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:35
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public ServerVariableObject clone() throws CloneNotSupportedException {
-    ServerVariableObject node = (ServerVariableObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:48
-   */
-  public ServerVariableObject copy() {
-    try {
-      ServerVariableObject node = (ServerVariableObject) 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:67
-   */
-  @Deprecated
-  public ServerVariableObject 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:77
-   */
-  public ServerVariableObject treeCopyNoTransform() {
-    ServerVariableObject tree = (ServerVariableObject) 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:97
-   */
-  public ServerVariableObject treeCopy() {
-    ServerVariableObject tree = (ServerVariableObject) 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:111
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Default == ((ServerVariableObject) node).tokenString_Default) && (tokenString_Description == ((ServerVariableObject) node).tokenString_Description);    
-  }
-  /**
-   * Replaces the Enum list.
-   * @param list The new list node to be used as the Enum list.
-   * @apilevel high-level
-   */
-  public void setEnumList(JastAddList<Enum> list) {
-    setChild(list, 0);
-  }
-  /**
-   * Retrieves the number of children in the Enum list.
-   * @return Number of children in the Enum list.
-   * @apilevel high-level
-   */
-  public int getNumEnum() {
-    return getEnumList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Enum list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Enum list.
-   * @apilevel low-level
-   */
-  public int getNumEnumNoTransform() {
-    return getEnumListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Enum list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Enum list.
-   * @apilevel high-level
-   */
-  public Enum getEnum(int i) {
-    return (Enum) getEnumList().getChild(i);
-  }
-  /**
-   * Check whether the Enum list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasEnum() {
-    return getEnumList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Enum list.
-   * @param node The element to append to the Enum list.
-   * @apilevel high-level
-   */
-  public void addEnum(Enum node) {
-    JastAddList<Enum> list = (parent == null) ? getEnumListNoTransform() : getEnumList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addEnumNoTransform(Enum node) {
-    JastAddList<Enum> list = getEnumListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Enum 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 setEnum(Enum node, int i) {
-    JastAddList<Enum> list = getEnumList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Enum list.
-   * @return The node representing the Enum list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Enum")
-  public JastAddList<Enum> getEnumList() {
-    JastAddList<Enum> list = (JastAddList<Enum>) getChild(0);
-    return list;
-  }
-  /**
-   * Retrieves the Enum list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Enum list.
-   * @apilevel low-level
-   */
-  public JastAddList<Enum> getEnumListNoTransform() {
-    return (JastAddList<Enum>) getChildNoTransform(0);
-  }
-  /**
-   * @return the element at index {@code i} in the Enum list without
-   * triggering rewrites.
-   */
-  public Enum getEnumNoTransform(int i) {
-    return (Enum) getEnumListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Enum list.
-   * @return The node representing the Enum list.
-   * @apilevel high-level
-   */
-  public JastAddList<Enum> getEnums() {
-    return getEnumList();
-  }
-  /**
-   * Retrieves the Enum list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Enum list.
-   * @apilevel low-level
-   */
-  public JastAddList<Enum> getEnumsNoTransform() {
-    return getEnumListNoTransform();
-  }
-  /**
-   * Replaces the lexeme Default.
-   * @param value The new value for the lexeme Default.
-   * @apilevel high-level
-   */
-  public void setDefault(String value) {
-    tokenString_Default = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Default;
-  /**
-   * Retrieves the value for the lexeme Default.
-   * @return The value for the lexeme Default.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Default")
-  public String getDefault() {
-    return tokenString_Default != null ? tokenString_Default : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /** @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/ServerVariablesTuple.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java
deleted file mode 100644
index b132f092..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ServerVariablesTuple.java
+++ /dev/null
@@ -1,214 +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 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:15
- * @astdecl ServerVariablesTuple : ASTNode ::= <Name:String> ServerVariableObject;
- * @production ServerVariablesTuple : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">{@link ServerVariableObject}</span>;
-
- */
-public class ServerVariablesTuple extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public ServerVariablesTuple() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "ServerVariableObject"},
-    type = {"String", "ServerVariableObject"},
-    kind = {"Token", "Child"}
-  )
-  public ServerVariablesTuple(String p0, ServerVariableObject p1) {
-    setName(p0);
-    setChild(p1, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:23
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:29
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:33
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public ServerVariablesTuple clone() throws CloneNotSupportedException {
-    ServerVariablesTuple node = (ServerVariablesTuple) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:46
-   */
-  public ServerVariablesTuple copy() {
-    try {
-      ServerVariablesTuple node = (ServerVariablesTuple) 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:65
-   */
-  @Deprecated
-  public ServerVariablesTuple 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:75
-   */
-  public ServerVariablesTuple treeCopyNoTransform() {
-    ServerVariablesTuple tree = (ServerVariablesTuple) 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:95
-   */
-  public ServerVariablesTuple treeCopy() {
-    ServerVariablesTuple tree = (ServerVariablesTuple) 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:109
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((ServerVariablesTuple) node).tokenString_Name);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the ServerVariableObject child.
-   * @param node The new node to replace the ServerVariableObject child.
-   * @apilevel high-level
-   */
-  public void setServerVariableObject(ServerVariableObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the ServerVariableObject child.
-   * @return The current node used as the ServerVariableObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="ServerVariableObject")
-  public ServerVariableObject getServerVariableObject() {
-    return (ServerVariableObject) getChild(0);
-  }
-  /**
-   * Retrieves the ServerVariableObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the ServerVariableObject child.
-   * @apilevel low-level
-   */
-  public ServerVariableObject getServerVariableObjectNoTransform() {
-    return (ServerVariableObject) getChildNoTransform(0);
-  }
-  /** @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/Tag.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java
deleted file mode 100644
index a030e911..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Tag.java
+++ /dev/null
@@ -1,186 +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 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:50
- * @astdecl Tag : ASTNode ::= <Tag:String>;
- * @production Tag : {@link ASTNode} ::= <span class="component">&lt;Tag:String&gt;</span>;
-
- */
-public class Tag extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Tag() {
-    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 = {"Tag"},
-    type = {"String"},
-    kind = {"Token"}
-  )
-  public Tag(String p0) {
-    setTag(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 Tag clone() throws CloneNotSupportedException {
-    Tag node = (Tag) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:44
-   */
-  public Tag copy() {
-    try {
-      Tag node = (Tag) 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 Tag 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 Tag treeCopyNoTransform() {
-    Tag tree = (Tag) 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 Tag treeCopy() {
-    Tag tree = (Tag) 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_Tag == ((Tag) node).tokenString_Tag);    
-  }
-  /**
-   * Replaces the lexeme Tag.
-   * @param value The new value for the lexeme Tag.
-   * @apilevel high-level
-   */
-  public void setTag(String value) {
-    tokenString_Tag = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Tag;
-  /**
-   * Retrieves the value for the lexeme Tag.
-   * @return The value for the lexeme Tag.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Tag")
-  public String getTag() {
-    return tokenString_Tag != null ? tokenString_Tag : "";
-  }
-  /** @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/TagObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java
deleted file mode 100644
index c62a9cdd..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/TagObject.java
+++ /dev/null
@@ -1,415 +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 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:88
- * @astdecl TagObject : ASTNode ::= <Name:String> <Description:String> [ExternalDocObject] Extension*;
- * @production TagObject : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;Description:String&gt;</span> <span class="component">[{@link ExternalDocObject}]</span> <span class="component">{@link Extension}*</span>;
-
- */
-public class TagObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:628
-   */
-  public static org.openapi4j.parser.model.v3.Tag composeTag (TagObject tagObject){
-        org.openapi4j.parser.model.v3.Tag tag = new org.openapi4j.parser.model.v3.Tag();
-
-        tag.setName( tagObject.getName() );
-
-        if( !tagObject.getDescription().isEmpty() )
-        tag.setDescription( tagObject.getDescription() );
-        if( tagObject.hasExternalDocObject() )
-        tag.setExternalDocs( ExternalDocObject.composeExternalDocs(tagObject.getExternalDocObject()) );
-        if( tagObject.getNumExtension() != 0 ){
-        Map<String, Object> extensionMap = new HashMap<>();
-        for( Extension e : tagObject.getExtensions() )
-        extensionMap.put(e.getKey(), e.getValue());
-        tag.setExtensions(extensionMap);
-        }
-
-        return tag;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:621
-   */
-  public static TagObject parseTag(org.openapi4j.parser.model.v3.Tag tag){
-        TagObject tagObject = new TagObject();
-
-        tagObject.setName( tag.getName() );
-
-        if( tag.getDescription() != null )
-        tagObject.setDescription( tag.getDescription() );
-        if( tag.getExternalDocs() != null )
-        tagObject.setExternalDocObject( ExternalDocObject.parseExternalDocs(tag.getExternalDocs()) );
-        if( tag.getExtensions() != null ){
-        for( String key : tag.getExtensions().keySet() )
-        tagObject.addExtension(new Extension(key, tag.getExtensions().get(key)));
-        }
-
-        return tagObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public TagObject() {
-    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() {
-    children = new ASTNode[2];
-    setChild(new Opt(), 0);
-    setChild(new JastAddList(), 1);
-  }
-  /**
-   * @declaredat ASTNode:15
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"Name", "Description", "ExternalDocObject", "Extension"},
-    type = {"String", "String", "Opt<ExternalDocObject>", "JastAddList<Extension>"},
-    kind = {"Token", "Token", "Opt", "List"}
-  )
-  public TagObject(String p0, String p1, Opt<ExternalDocObject> p2, JastAddList<Extension> p3) {
-    setName(p0);
-    setDescription(p1);
-    setChild(p2, 0);
-    setChild(p3, 1);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:27
-   */
-  protected int numChildren() {
-    return 2;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:33
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:37
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:41
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public TagObject clone() throws CloneNotSupportedException {
-    TagObject node = (TagObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:50
-   */
-  public TagObject copy() {
-    try {
-      TagObject node = (TagObject) 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:69
-   */
-  @Deprecated
-  public TagObject 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:79
-   */
-  public TagObject treeCopyNoTransform() {
-    TagObject tree = (TagObject) 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:99
-   */
-  public TagObject treeCopy() {
-    TagObject tree = (TagObject) 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:113
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((TagObject) node).tokenString_Name) && (tokenString_Description == ((TagObject) node).tokenString_Description);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme Description.
-   * @param value The new value for the lexeme Description.
-   * @apilevel high-level
-   */
-  public void setDescription(String value) {
-    tokenString_Description = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Description;
-  /**
-   * Retrieves the value for the lexeme Description.
-   * @return The value for the lexeme Description.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Description")
-  public String getDescription() {
-    return tokenString_Description != null ? tokenString_Description : "";
-  }
-  /**
-   * Replaces the optional node for the ExternalDocObject child. This is the <code>Opt</code>
-   * node containing the child ExternalDocObject, not the actual child!
-   * @param opt The new node to be used as the optional node for the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  public void setExternalDocObjectOpt(Opt<ExternalDocObject> opt) {
-    setChild(opt, 0);
-  }
-  /**
-   * Replaces the (optional) ExternalDocObject child.
-   * @param node The new node to be used as the ExternalDocObject child.
-   * @apilevel high-level
-   */
-  public void setExternalDocObject(ExternalDocObject node) {
-    getExternalDocObjectOpt().setChild(node, 0);
-  }
-  /**
-   * Check whether the optional ExternalDocObject child exists.
-   * @return {@code true} if the optional ExternalDocObject child exists, {@code false} if it does not.
-   * @apilevel high-level
-   */
-  public boolean hasExternalDocObject() {
-    return getExternalDocObjectOpt().getNumChild() != 0;
-  }
-  /**
-   * Retrieves the (optional) ExternalDocObject child.
-   * @return The ExternalDocObject child, if it exists. Returns {@code null} otherwise.
-   * @apilevel low-level
-   */
-  public ExternalDocObject getExternalDocObject() {
-    return (ExternalDocObject) getExternalDocObjectOpt().getChild(0);
-  }
-  /**
-   * Retrieves the optional node for the ExternalDocObject child. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * @return The optional node for child the ExternalDocObject child.
-   * @apilevel low-level
-   */
-  @ASTNodeAnnotation.OptChild(name="ExternalDocObject")
-  public Opt<ExternalDocObject> getExternalDocObjectOpt() {
-    return (Opt<ExternalDocObject>) getChild(0);
-  }
-  /**
-   * Retrieves the optional node for child ExternalDocObject. This is the <code>Opt</code> node containing the child ExternalDocObject, not the actual child!
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The optional node for child ExternalDocObject.
-   * @apilevel low-level
-   */
-  public Opt<ExternalDocObject> getExternalDocObjectOptNoTransform() {
-    return (Opt<ExternalDocObject>) getChildNoTransform(0);
-  }
-  /**
-   * Replaces the Extension list.
-   * @param list The new list node to be used as the Extension list.
-   * @apilevel high-level
-   */
-  public void setExtensionList(JastAddList<Extension> list) {
-    setChild(list, 1);
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * @return Number of children in the Extension list.
-   * @apilevel high-level
-   */
-  public int getNumExtension() {
-    return getExtensionList().getNumChild();
-  }
-  /**
-   * Retrieves the number of children in the Extension list.
-   * Calling this method will not trigger rewrites.
-   * @return Number of children in the Extension list.
-   * @apilevel low-level
-   */
-  public int getNumExtensionNoTransform() {
-    return getExtensionListNoTransform().getNumChildNoTransform();
-  }
-  /**
-   * Retrieves the element at index {@code i} in the Extension list.
-   * @param i Index of the element to return.
-   * @return The element at position {@code i} in the Extension list.
-   * @apilevel high-level
-   */
-  public Extension getExtension(int i) {
-    return (Extension) getExtensionList().getChild(i);
-  }
-  /**
-   * Check whether the Extension list has any children.
-   * @return {@code true} if it has at least one child, {@code false} otherwise.
-   * @apilevel high-level
-   */
-  public boolean hasExtension() {
-    return getExtensionList().getNumChild() != 0;
-  }
-  /**
-   * Append an element to the Extension list.
-   * @param node The element to append to the Extension list.
-   * @apilevel high-level
-   */
-  public void addExtension(Extension node) {
-    JastAddList<Extension> list = (parent == null) ? getExtensionListNoTransform() : getExtensionList();
-    list.addChild(node);
-  }
-  /** @apilevel low-level 
-   */
-  public void addExtensionNoTransform(Extension node) {
-    JastAddList<Extension> list = getExtensionListNoTransform();
-    list.addChild(node);
-  }
-  /**
-   * Replaces the Extension 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 setExtension(Extension node, int i) {
-    JastAddList<Extension> list = getExtensionList();
-    list.setChild(node, i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.ListChild(name="Extension")
-  public JastAddList<Extension> getExtensionList() {
-    JastAddList<Extension> list = (JastAddList<Extension>) getChild(1);
-    return list;
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionListNoTransform() {
-    return (JastAddList<Extension>) getChildNoTransform(1);
-  }
-  /**
-   * @return the element at index {@code i} in the Extension list without
-   * triggering rewrites.
-   */
-  public Extension getExtensionNoTransform(int i) {
-    return (Extension) getExtensionListNoTransform().getChildNoTransform(i);
-  }
-  /**
-   * Retrieves the Extension list.
-   * @return The node representing the Extension list.
-   * @apilevel high-level
-   */
-  public JastAddList<Extension> getExtensions() {
-    return getExtensionList();
-  }
-  /**
-   * Retrieves the Extension list.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The node representing the Extension list.
-   * @apilevel low-level
-   */
-  public JastAddList<Extension> getExtensionsNoTransform() {
-    return getExtensionListNoTransform();
-  }
-  /** @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/Trace.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java
deleted file mode 100644
index c860fbda..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Trace.java
+++ /dev/null
@@ -1,193 +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 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:46
- * @astdecl Trace : ASTNode ::= OperationObject;
- * @production Trace : {@link ASTNode} ::= <span class="component">{@link OperationObject}</span>;
-
- */
-public class Trace extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @declaredat ASTNode:1
-   */
-  public Trace() {
-    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() {
-    children = new ASTNode[1];
-  }
-  /**
-   * @declaredat ASTNode:13
-   */
-  @ASTNodeAnnotation.Constructor(
-    name = {"OperationObject"},
-    type = {"OperationObject"},
-    kind = {"Child"}
-  )
-  public Trace(OperationObject p0) {
-    setChild(p0, 0);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:22
-   */
-  protected int numChildren() {
-    return 1;
-  }
-  /**
-   * @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 Trace clone() throws CloneNotSupportedException {
-    Trace node = (Trace) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:45
-   */
-  public Trace copy() {
-    try {
-      Trace node = (Trace) 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 Trace 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 Trace treeCopyNoTransform() {
-    Trace tree = (Trace) 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 Trace treeCopy() {
-    Trace tree = (Trace) 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);    
-  }
-  /**
-   * Replaces the OperationObject child.
-   * @param node The new node to replace the OperationObject child.
-   * @apilevel high-level
-   */
-  public void setOperationObject(OperationObject node) {
-    setChild(node, 0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * @return The current node used as the OperationObject child.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Child(name="OperationObject")
-  public OperationObject getOperationObject() {
-    return (OperationObject) getChild(0);
-  }
-  /**
-   * Retrieves the OperationObject child.
-   * <p><em>This method does not invoke AST transformations.</em></p>
-   * @return The current node used as the OperationObject child.
-   * @apilevel low-level
-   */
-  public OperationObject getOperationObjectNoTransform() {
-    return (OperationObject) getChildNoTransform(0);
-  }
-  /** @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/XmlObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java
deleted file mode 100644
index a4a93d71..00000000
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/XmlObject.java
+++ /dev/null
@@ -1,310 +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 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:107
- * @astdecl XmlObject : ASTNode ::= <Name:String> <Namespace:String> <Prefix:String> <Attribute:Boolean> <Wrapped:Boolean>;
- * @production XmlObject : {@link ASTNode} ::= <span class="component">&lt;Name:String&gt;</span> <span class="component">&lt;Namespace:String&gt;</span> <span class="component">&lt;Prefix:String&gt;</span> <span class="component">&lt;Attribute:Boolean&gt;</span> <span class="component">&lt;Wrapped:Boolean&gt;</span>;
-
- */
-public class XmlObject extends ASTNode<ASTNode> implements Cloneable {
-  /**
-   * @aspect Composer
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Composer.jadd:763
-   */
-  public static Xml composeXml (XmlObject xmlObject) {
-        Xml xml = new Xml();
-
-        if( !xmlObject.getName().isEmpty() )
-        xml.setName(xmlObject.getName());
-        if( !xmlObject.getNamespace().isEmpty() )
-        xml.setNamespace(xmlObject.getNamespace());
-        if( !xmlObject.getPrefix().isEmpty() )
-        xml.setPrefix(xmlObject.getPrefix());
-        if( xmlObject.getAttribute() != null )
-        xml.setAttribute((boolean) xmlObject.getAttribute());
-        if( xmlObject.getWrapped() != null )
-        xml.setWrapped((boolean) xmlObject.getWrapped());
-
-        return xml;
-        }
-  /**
-   * @aspect Parser
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\Parser.jrag:775
-   */
-  public static XmlObject parseXml (Xml xml) {
-        XmlObject xmlObject = new XmlObject();
-
-        if( xml.getName() != null )
-        xmlObject.setName(xml.getName());
-        if( xml.getNamespace() != null )
-        xmlObject.setNamespace(xml.getNamespace());
-        if( xml.getPrefix() != null )
-        xmlObject.setPrefix(xml.getPrefix());
-        if( xml.getAttribute() != null )
-        xmlObject.setAttribute(xml.getAttribute());
-        if( xml.getWrapped() != null )
-        xmlObject.setWrapped(xml.getWrapped());
-
-        return xmlObject;
-        }
-  /**
-   * @declaredat ASTNode:1
-   */
-  public XmlObject() {
-    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 = {"Name", "Namespace", "Prefix", "Attribute", "Wrapped"},
-    type = {"String", "String", "String", "Boolean", "Boolean"},
-    kind = {"Token", "Token", "Token", "Token", "Token"}
-  )
-  public XmlObject(String p0, String p1, String p2, Boolean p3, Boolean p4) {
-    setName(p0);
-    setNamespace(p1);
-    setPrefix(p2);
-    setAttribute(p3);
-    setWrapped(p4);
-  }
-  /** @apilevel low-level 
-   * @declaredat ASTNode:25
-   */
-  protected int numChildren() {
-    return 0;
-  }
-  /**
-   * @apilevel internal
-   * @declaredat ASTNode:31
-   */
-  public boolean mayHaveRewrite() {
-    return false;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:35
-   */
-  public void flushAttrCache() {
-    super.flushAttrCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:39
-   */
-  public void flushCollectionCache() {
-    super.flushCollectionCache();
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:43
-   */
-  public XmlObject clone() throws CloneNotSupportedException {
-    XmlObject node = (XmlObject) super.clone();
-    return node;
-  }
-  /** @apilevel internal 
-   * @declaredat ASTNode:48
-   */
-  public XmlObject copy() {
-    try {
-      XmlObject node = (XmlObject) 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:67
-   */
-  @Deprecated
-  public XmlObject 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:77
-   */
-  public XmlObject treeCopyNoTransform() {
-    XmlObject tree = (XmlObject) 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:97
-   */
-  public XmlObject treeCopy() {
-    XmlObject tree = (XmlObject) 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:111
-   */
-  protected boolean is$Equal(ASTNode node) {
-    return super.is$Equal(node) && (tokenString_Name == ((XmlObject) node).tokenString_Name) && (tokenString_Namespace == ((XmlObject) node).tokenString_Namespace) && (tokenString_Prefix == ((XmlObject) node).tokenString_Prefix) && (tokenBoolean_Attribute == ((XmlObject) node).tokenBoolean_Attribute) && (tokenBoolean_Wrapped == ((XmlObject) node).tokenBoolean_Wrapped);    
-  }
-  /**
-   * Replaces the lexeme Name.
-   * @param value The new value for the lexeme Name.
-   * @apilevel high-level
-   */
-  public void setName(String value) {
-    tokenString_Name = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Name;
-  /**
-   * Retrieves the value for the lexeme Name.
-   * @return The value for the lexeme Name.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Name")
-  public String getName() {
-    return tokenString_Name != null ? tokenString_Name : "";
-  }
-  /**
-   * Replaces the lexeme Namespace.
-   * @param value The new value for the lexeme Namespace.
-   * @apilevel high-level
-   */
-  public void setNamespace(String value) {
-    tokenString_Namespace = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Namespace;
-  /**
-   * Retrieves the value for the lexeme Namespace.
-   * @return The value for the lexeme Namespace.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Namespace")
-  public String getNamespace() {
-    return tokenString_Namespace != null ? tokenString_Namespace : "";
-  }
-  /**
-   * Replaces the lexeme Prefix.
-   * @param value The new value for the lexeme Prefix.
-   * @apilevel high-level
-   */
-  public void setPrefix(String value) {
-    tokenString_Prefix = value;
-  }
-  /** @apilevel internal 
-   */
-  protected String tokenString_Prefix;
-  /**
-   * Retrieves the value for the lexeme Prefix.
-   * @return The value for the lexeme Prefix.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Prefix")
-  public String getPrefix() {
-    return tokenString_Prefix != null ? tokenString_Prefix : "";
-  }
-  /**
-   * Replaces the lexeme Attribute.
-   * @param value The new value for the lexeme Attribute.
-   * @apilevel high-level
-   */
-  public void setAttribute(Boolean value) {
-    tokenBoolean_Attribute = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Attribute;
-  /**
-   * Retrieves the value for the lexeme Attribute.
-   * @return The value for the lexeme Attribute.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Attribute")
-  public Boolean getAttribute() {
-    return tokenBoolean_Attribute;
-  }
-  /**
-   * Replaces the lexeme Wrapped.
-   * @param value The new value for the lexeme Wrapped.
-   * @apilevel high-level
-   */
-  public void setWrapped(Boolean value) {
-    tokenBoolean_Wrapped = value;
-  }
-  /** @apilevel internal 
-   */
-  protected Boolean tokenBoolean_Wrapped;
-  /**
-   * Retrieves the value for the lexeme Wrapped.
-   * @return The value for the lexeme Wrapped.
-   * @apilevel high-level
-   */
-  @ASTNodeAnnotation.Token(name="Wrapped")
-  public Boolean getWrapped() {
-    return tokenBoolean_Wrapped;
-  }
-  /** @apilevel internal */
-  public ASTNode rewriteTo() {
-    return super.rewriteTo();
-  }
-  /** @apilevel internal */
-  public boolean canRewrite() {
-    return false;
-  }
-}
diff --git a/src/main/jastadd/RandomRequestGenerator.jadd b/src/main/jastadd/RandomRequestGenerator.jadd
index 6bd09d42..424a83e8 100644
--- a/src/main/jastadd/RandomRequestGenerator.jadd
+++ b/src/main/jastadd/RandomRequestGenerator.jadd
@@ -9,6 +9,25 @@ import java.util.stream.IntStream;
 
 aspect RandomRequestGenerator {
 
+    /*
+    syn String PathObject.getRequestURI(Ramdom r);
+    coll Set OpenAPI.requestURIs(Random r);
+    uncache PathObject.getRequestURI();
+    syn Set OpenAPI.requestURIs();
+
+     */
+
+        /*
+    syn Map<String, String> OpenAPIObject.generateUrls();
+    eq OpenAPIObject.generateUrls() {
+        Map<String, String> Urls = new HashMap<>();
+        String baseUrl = this.getServerObject(0).getUrl();
+
+        return Urls;
+    }*/
+
+    coll Set<>
+
     public void OpenAPIObject.generateRequests() throws Exception {
         String baseUrl = this.getServerObject(0).getUrl();
 
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 3ecd506d..7d21dc70 100644
--- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java
+++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java
@@ -86,6 +86,7 @@ public class OpenAPIMain {
         //writer.close();
 
 
+        Map<String, String> s = new HashMap<>();
 
         if (args.length > 0) {
             fileName = args[0];
-- 
GitLab