diff --git a/build.txt b/build.txt index f6b4b4266db27d9f41a39754e8c428d2a5583d45..78cc597f0e63edb3fa93d42e136ffcb95d41ca0f 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -12708 \ No newline at end of file +12715 \ No newline at end of file diff --git a/modeling/AVATAR/testReq.xml b/modeling/AVATAR/testReq.xml index e69993f1eae34c1082f8500a2d0cb5fc8adf5dc6..49c6e4cdc6c702829cdae07bfc08dbf2f7b23e96 100644 --- a/modeling/AVATAR/testReq.xml +++ b/modeling/AVATAR/testReq.xml @@ -139,7 +139,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="77" /> -<P1 x="559" y="330" id="139" /> +<P1 x="559" y="330" id="114" /> <P2 x="560" y="377" id="172" /> <AutomaticDrawing data="true" /> <extraparam> @@ -169,7 +169,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="81" /> -<P1 x="789" y="326" id="114" /> +<P1 x="789" y="326" id="139" /> <P2 x="790" y="377" id="173" /> <AutomaticDrawing data="true" /> <extraparam> @@ -270,11 +270,11 @@ </COMPONENT> <SUBCOMPONENT type="5000" id="132" > <father id="182" num="0" /> -<cdparam x="695" y="224" /> -<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> -<infoparam name="Block1" value="TeaButton" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> <TGConnectingPoint num="0" id="108" /> <TGConnectingPoint num="1" id="109" /> <TGConnectingPoint num="2" id="110" /> @@ -308,11 +308,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5000" id="157" > <father id="182" num="1" /> -<cdparam x="464" y="228" /> -<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> -<infoparam name="Block1" value="CoffeeButton" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> <TGConnectingPoint num="0" id="133" /> <TGConnectingPoint num="1" id="134" /> <TGConnectingPoint num="2" id="135" /> @@ -740,7 +740,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="378" /> -<P1 x="442" y="527" id="729" /> +<P1 x="442" y="527" id="794" /> <P2 x="323" y="748" id="655" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="377" > @@ -770,8 +770,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="385" /> -<P1 x="326" y="457" id="756" /> -<P2 x="442" y="497" id="728" /> +<P1 x="326" y="457" id="743" /> +<P2 x="442" y="497" id="793" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="384" > <father id="386" num="0" /> @@ -799,7 +799,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="392" /> -<P1 x="298" y="554" id="794" /> +<P1 x="298" y="554" id="729" /> <P2 x="289" y="748" id="647" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="391" > @@ -830,8 +830,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="399" /> -<P1 x="293" y="477" id="767" /> -<P2 x="298" y="524" id="793" /> +<P1 x="293" y="477" id="754" /> +<P2 x="298" y="524" id="728" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="398" > <father id="400" num="0" /> @@ -859,7 +859,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="406" /> -<P1 x="126" y="554" id="740" /> +<P1 x="126" y="554" id="783" /> <P2 x="255" y="748" id="654" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="405" > @@ -890,8 +890,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="413" /> -<P1 x="227" y="477" id="766" /> -<P2 x="126" y="524" id="739" /> +<P1 x="227" y="477" id="753" /> +<P2 x="126" y="524" id="782" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="412" > <father id="414" num="0" /> @@ -919,8 +919,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="420" /> -<P1 x="261" y="421" id="750" /> -<P2 x="260" y="437" id="753" /> +<P1 x="261" y="421" id="780" /> +<P2 x="260" y="437" id="740" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="419" > <father id="421" num="0" /> @@ -1540,13 +1540,13 @@ <extraparam> </extraparam> </COMPONENT> -<SUBCOMPONENT type="5103" id="738" > +<SUBCOMPONENT type="5104" id="738" > <father id="844" num="0" /> -<cdparam x="377" y="502" /> -<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="242" y="529" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushTeaButton()" /> <TGConnectingPoint num="0" id="728" /> <TGConnectingPoint num="1" id="729" /> <TGConnectingPoint num="2" id="730" /> @@ -1559,13 +1559,13 @@ <TGConnectingPoint num="9" id="737" /> <accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="749" > +<SUBCOMPONENT type="5106" id="779" > <father id="844" num="1" /> -<cdparam x="63" y="529" /> -<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="194" y="437" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushCoffeeButton()" /> +<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> +<infoparam name="state0" value="WaitingForSelection" /> <TGConnectingPoint num="0" id="739" /> <TGConnectingPoint num="1" id="740" /> <TGConnectingPoint num="2" id="741" /> @@ -1576,75 +1576,75 @@ <TGConnectingPoint num="7" id="746" /> <TGConnectingPoint num="8" id="747" /> <TGConnectingPoint num="9" id="748" /> -<accessibility /> +<TGConnectingPoint num="10" id="749" /> +<TGConnectingPoint num="11" id="750" /> +<TGConnectingPoint num="12" id="751" /> +<TGConnectingPoint num="13" id="752" /> +<TGConnectingPoint num="14" id="753" /> +<TGConnectingPoint num="15" id="754" /> +<TGConnectingPoint num="16" id="755" /> +<TGConnectingPoint num="17" id="756" /> +<TGConnectingPoint num="18" id="757" /> +<TGConnectingPoint num="19" id="758" /> +<TGConnectingPoint num="20" id="759" /> +<TGConnectingPoint num="21" id="760" /> +<TGConnectingPoint num="22" id="761" /> +<TGConnectingPoint num="23" id="762" /> +<TGConnectingPoint num="24" id="763" /> +<TGConnectingPoint num="25" id="764" /> +<TGConnectingPoint num="26" id="765" /> +<TGConnectingPoint num="27" id="766" /> +<TGConnectingPoint num="28" id="767" /> +<TGConnectingPoint num="29" id="768" /> +<TGConnectingPoint num="30" id="769" /> +<TGConnectingPoint num="31" id="770" /> +<TGConnectingPoint num="32" id="771" /> +<TGConnectingPoint num="33" id="772" /> +<TGConnectingPoint num="34" id="773" /> +<TGConnectingPoint num="35" id="774" /> +<TGConnectingPoint num="36" id="775" /> +<TGConnectingPoint num="37" id="776" /> +<TGConnectingPoint num="38" id="777" /> +<TGConnectingPoint num="39" id="778" /> +<latencyCheck /> +<extraparam> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5100" id="751" > +<SUBCOMPONENT type="5100" id="781" > <father id="844" num="2" /> <cdparam x="254" y="401" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="750" /> +<TGConnectingPoint num="0" id="780" /> </SUBCOMPONENT> -<SUBCOMPONENT type="5106" id="792" > +<SUBCOMPONENT type="5104" id="792" > <father id="844" num="3" /> -<cdparam x="194" y="437" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="63" y="529" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> -<infoparam name="state0" value="WaitingForSelection" /> -<TGConnectingPoint num="0" id="752" /> -<TGConnectingPoint num="1" id="753" /> -<TGConnectingPoint num="2" id="754" /> -<TGConnectingPoint num="3" id="755" /> -<TGConnectingPoint num="4" id="756" /> -<TGConnectingPoint num="5" id="757" /> -<TGConnectingPoint num="6" id="758" /> -<TGConnectingPoint num="7" id="759" /> -<TGConnectingPoint num="8" id="760" /> -<TGConnectingPoint num="9" id="761" /> -<TGConnectingPoint num="10" id="762" /> -<TGConnectingPoint num="11" id="763" /> -<TGConnectingPoint num="12" id="764" /> -<TGConnectingPoint num="13" id="765" /> -<TGConnectingPoint num="14" id="766" /> -<TGConnectingPoint num="15" id="767" /> -<TGConnectingPoint num="16" id="768" /> -<TGConnectingPoint num="17" id="769" /> -<TGConnectingPoint num="18" id="770" /> -<TGConnectingPoint num="19" id="771" /> -<TGConnectingPoint num="20" id="772" /> -<TGConnectingPoint num="21" id="773" /> -<TGConnectingPoint num="22" id="774" /> -<TGConnectingPoint num="23" id="775" /> -<TGConnectingPoint num="24" id="776" /> -<TGConnectingPoint num="25" id="777" /> -<TGConnectingPoint num="26" id="778" /> -<TGConnectingPoint num="27" id="779" /> -<TGConnectingPoint num="28" id="780" /> -<TGConnectingPoint num="29" id="781" /> -<TGConnectingPoint num="30" id="782" /> -<TGConnectingPoint num="31" id="783" /> -<TGConnectingPoint num="32" id="784" /> -<TGConnectingPoint num="33" id="785" /> -<TGConnectingPoint num="34" id="786" /> -<TGConnectingPoint num="35" id="787" /> -<TGConnectingPoint num="36" id="788" /> -<TGConnectingPoint num="37" id="789" /> -<TGConnectingPoint num="38" id="790" /> -<TGConnectingPoint num="39" id="791" /> -<latencyCheck /> -<extraparam> -</extraparam> +<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> +<TGConnectingPoint num="0" id="782" /> +<TGConnectingPoint num="1" id="783" /> +<TGConnectingPoint num="2" id="784" /> +<TGConnectingPoint num="3" id="785" /> +<TGConnectingPoint num="4" id="786" /> +<TGConnectingPoint num="5" id="787" /> +<TGConnectingPoint num="6" id="788" /> +<TGConnectingPoint num="7" id="789" /> +<TGConnectingPoint num="8" id="790" /> +<TGConnectingPoint num="9" id="791" /> +<accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="803" > +<SUBCOMPONENT type="5103" id="803" > <father id="844" num="4" /> -<cdparam x="242" y="529" /> -<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="377" y="502" /> +<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushTeaButton()" /> +<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> <TGConnectingPoint num="0" id="793" /> <TGConnectingPoint num="1" id="794" /> <TGConnectingPoint num="2" id="795" /> @@ -1661,19 +1661,19 @@ </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > <CONNECTOR type="5102" id="851" > -<cdparam x="177" y="199" /> +<cdparam x="363" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to Send signal" value="null" /> +<infoparam name="connector from Send signal to state0" value="null" /> <TGConnectingPoint num="0" id="850" /> -<P1 x="340" y="233" id="957" /> -<P2 x="353" y="252" id="959" /> +<P1 x="363" y="204" id="867" /> +<P2 x="362" y="257" id="878" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="849" > <father id="851" num="0" /> -<cdparam x="177" y="239" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1683,7 +1683,7 @@ <TGConnectingPoint num="3" id="848" /> <extraparam> <guard value="[ ]" /> -<afterMin value="" /> +<afterMin value="mechanicalDelay" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> @@ -1692,16 +1692,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="858" > -<cdparam x="322" y="69" /> +<cdparam x="363" y="150" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> +<infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="857" /> -<P1 x="322" y="69" id="955" /> -<P2 x="323" y="88" id="915" /> +<P1 x="363" y="150" id="924" /> +<P2 x="363" y="174" id="866" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="856" > <father id="858" num="0" /> -<cdparam x="322" y="109" /> +<cdparam x="363" y="190" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -1721,16 +1721,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="865" > -<cdparam x="377" y="144" /> +<cdparam x="362" y="101" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> +<infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="864" /> -<P1 x="323" y="118" id="920" /> -<P2 x="356" y="174" id="971" /> +<P1 x="362" y="101" id="959" /> +<P2 x="363" y="120" id="919" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="863" > <father id="865" num="0" /> -<cdparam x="377" y="184" /> +<cdparam x="362" y="141" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -1749,247 +1749,159 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="872" > -<cdparam x="377" y="187" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="871" /> -<P1 x="353" y="282" id="960" /> -<P2 x="399" y="352" id="874" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="870" > -<father id="872" num="0" /> -<cdparam x="417" y="335" /> -<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5103" id="876" > +<cdparam x="338" y="179" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="866" /> <TGConnectingPoint num="1" id="867" /> <TGConnectingPoint num="2" id="868" /> <TGConnectingPoint num="3" id="869" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<probability value="" /> -</extraparam> -</SUBCOMPONENT> +<TGConnectingPoint num="4" id="870" /> +<TGConnectingPoint num="5" id="871" /> +<TGConnectingPoint num="6" id="872" /> +<TGConnectingPoint num="7" id="873" /> +<TGConnectingPoint num="8" id="874" /> +<TGConnectingPoint num="9" id="875" /> +</COMPONENT> -<COMPONENT type="5106" id="913" > -<cdparam x="374" y="352" /> +<COMPONENT type="5106" id="917" > +<cdparam x="337" y="257" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="873" /> -<TGConnectingPoint num="1" id="874" /> -<TGConnectingPoint num="2" id="875" /> -<TGConnectingPoint num="3" id="876" /> -<TGConnectingPoint num="4" id="877" /> -<TGConnectingPoint num="5" id="878" /> -<TGConnectingPoint num="6" id="879" /> -<TGConnectingPoint num="7" id="880" /> -<TGConnectingPoint num="8" id="881" /> -<TGConnectingPoint num="9" id="882" /> -<TGConnectingPoint num="10" id="883" /> -<TGConnectingPoint num="11" id="884" /> -<TGConnectingPoint num="12" id="885" /> -<TGConnectingPoint num="13" id="886" /> -<TGConnectingPoint num="14" id="887" /> -<TGConnectingPoint num="15" id="888" /> -<TGConnectingPoint num="16" id="889" /> -<TGConnectingPoint num="17" id="890" /> -<TGConnectingPoint num="18" id="891" /> -<TGConnectingPoint num="19" id="892" /> -<TGConnectingPoint num="20" id="893" /> -<TGConnectingPoint num="21" id="894" /> -<TGConnectingPoint num="22" id="895" /> -<TGConnectingPoint num="23" id="896" /> -<TGConnectingPoint num="24" id="897" /> -<TGConnectingPoint num="25" id="898" /> -<TGConnectingPoint num="26" id="899" /> -<TGConnectingPoint num="27" id="900" /> -<TGConnectingPoint num="28" id="901" /> -<TGConnectingPoint num="29" id="902" /> -<TGConnectingPoint num="30" id="903" /> -<TGConnectingPoint num="31" id="904" /> -<TGConnectingPoint num="32" id="905" /> -<TGConnectingPoint num="33" id="906" /> -<TGConnectingPoint num="34" id="907" /> -<TGConnectingPoint num="35" id="908" /> -<TGConnectingPoint num="36" id="909" /> -<TGConnectingPoint num="37" id="910" /> -<TGConnectingPoint num="38" id="911" /> -<TGConnectingPoint num="39" id="912" /> +<TGConnectingPoint num="0" id="877" /> +<TGConnectingPoint num="1" id="878" /> +<TGConnectingPoint num="2" id="879" /> +<TGConnectingPoint num="3" id="880" /> +<TGConnectingPoint num="4" id="881" /> +<TGConnectingPoint num="5" id="882" /> +<TGConnectingPoint num="6" id="883" /> +<TGConnectingPoint num="7" id="884" /> +<TGConnectingPoint num="8" id="885" /> +<TGConnectingPoint num="9" id="886" /> +<TGConnectingPoint num="10" id="887" /> +<TGConnectingPoint num="11" id="888" /> +<TGConnectingPoint num="12" id="889" /> +<TGConnectingPoint num="13" id="890" /> +<TGConnectingPoint num="14" id="891" /> +<TGConnectingPoint num="15" id="892" /> +<TGConnectingPoint num="16" id="893" /> +<TGConnectingPoint num="17" id="894" /> +<TGConnectingPoint num="18" id="895" /> +<TGConnectingPoint num="19" id="896" /> +<TGConnectingPoint num="20" id="897" /> +<TGConnectingPoint num="21" id="898" /> +<TGConnectingPoint num="22" id="899" /> +<TGConnectingPoint num="23" id="900" /> +<TGConnectingPoint num="24" id="901" /> +<TGConnectingPoint num="25" id="902" /> +<TGConnectingPoint num="26" id="903" /> +<TGConnectingPoint num="27" id="904" /> +<TGConnectingPoint num="28" id="905" /> +<TGConnectingPoint num="29" id="906" /> +<TGConnectingPoint num="30" id="907" /> +<TGConnectingPoint num="31" id="908" /> +<TGConnectingPoint num="32" id="909" /> +<TGConnectingPoint num="33" id="910" /> +<TGConnectingPoint num="34" id="911" /> +<TGConnectingPoint num="35" id="912" /> +<TGConnectingPoint num="36" id="913" /> +<TGConnectingPoint num="37" id="914" /> +<TGConnectingPoint num="38" id="915" /> +<TGConnectingPoint num="39" id="916" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="954" > -<cdparam x="298" y="88" /> +<COMPONENT type="5106" id="958" > +<cdparam x="338" y="120" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="914" /> -<TGConnectingPoint num="1" id="915" /> -<TGConnectingPoint num="2" id="916" /> -<TGConnectingPoint num="3" id="917" /> -<TGConnectingPoint num="4" id="918" /> -<TGConnectingPoint num="5" id="919" /> -<TGConnectingPoint num="6" id="920" /> -<TGConnectingPoint num="7" id="921" /> -<TGConnectingPoint num="8" id="922" /> -<TGConnectingPoint num="9" id="923" /> -<TGConnectingPoint num="10" id="924" /> -<TGConnectingPoint num="11" id="925" /> -<TGConnectingPoint num="12" id="926" /> -<TGConnectingPoint num="13" id="927" /> -<TGConnectingPoint num="14" id="928" /> -<TGConnectingPoint num="15" id="929" /> -<TGConnectingPoint num="16" id="930" /> -<TGConnectingPoint num="17" id="931" /> -<TGConnectingPoint num="18" id="932" /> -<TGConnectingPoint num="19" id="933" /> -<TGConnectingPoint num="20" id="934" /> -<TGConnectingPoint num="21" id="935" /> -<TGConnectingPoint num="22" id="936" /> -<TGConnectingPoint num="23" id="937" /> -<TGConnectingPoint num="24" id="938" /> -<TGConnectingPoint num="25" id="939" /> -<TGConnectingPoint num="26" id="940" /> -<TGConnectingPoint num="27" id="941" /> -<TGConnectingPoint num="28" id="942" /> -<TGConnectingPoint num="29" id="943" /> -<TGConnectingPoint num="30" id="944" /> -<TGConnectingPoint num="31" id="945" /> -<TGConnectingPoint num="32" id="946" /> -<TGConnectingPoint num="33" id="947" /> -<TGConnectingPoint num="34" id="948" /> -<TGConnectingPoint num="35" id="949" /> -<TGConnectingPoint num="36" id="950" /> -<TGConnectingPoint num="37" id="951" /> -<TGConnectingPoint num="38" id="952" /> -<TGConnectingPoint num="39" id="953" /> +<TGConnectingPoint num="0" id="918" /> +<TGConnectingPoint num="1" id="919" /> +<TGConnectingPoint num="2" id="920" /> +<TGConnectingPoint num="3" id="921" /> +<TGConnectingPoint num="4" id="922" /> +<TGConnectingPoint num="5" id="923" /> +<TGConnectingPoint num="6" id="924" /> +<TGConnectingPoint num="7" id="925" /> +<TGConnectingPoint num="8" id="926" /> +<TGConnectingPoint num="9" id="927" /> +<TGConnectingPoint num="10" id="928" /> +<TGConnectingPoint num="11" id="929" /> +<TGConnectingPoint num="12" id="930" /> +<TGConnectingPoint num="13" id="931" /> +<TGConnectingPoint num="14" id="932" /> +<TGConnectingPoint num="15" id="933" /> +<TGConnectingPoint num="16" id="934" /> +<TGConnectingPoint num="17" id="935" /> +<TGConnectingPoint num="18" id="936" /> +<TGConnectingPoint num="19" id="937" /> +<TGConnectingPoint num="20" id="938" /> +<TGConnectingPoint num="21" id="939" /> +<TGConnectingPoint num="22" id="940" /> +<TGConnectingPoint num="23" id="941" /> +<TGConnectingPoint num="24" id="942" /> +<TGConnectingPoint num="25" id="943" /> +<TGConnectingPoint num="26" id="944" /> +<TGConnectingPoint num="27" id="945" /> +<TGConnectingPoint num="28" id="946" /> +<TGConnectingPoint num="29" id="947" /> +<TGConnectingPoint num="30" id="948" /> +<TGConnectingPoint num="31" id="949" /> +<TGConnectingPoint num="32" id="950" /> +<TGConnectingPoint num="33" id="951" /> +<TGConnectingPoint num="34" id="952" /> +<TGConnectingPoint num="35" id="953" /> +<TGConnectingPoint num="36" id="954" /> +<TGConnectingPoint num="37" id="955" /> +<TGConnectingPoint num="38" id="956" /> +<TGConnectingPoint num="39" id="957" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="956" > -<cdparam x="315" y="49" /> +<COMPONENT type="5100" id="960" > +<cdparam x="355" y="81" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="955" /> -</COMPONENT> - -<COMPONENT type="5106" id="1010" > -<cdparam x="264" y="174" /> -<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="state0" /> -<TGConnectingPoint num="0" id="970" /> -<TGConnectingPoint num="1" id="971" /> -<TGConnectingPoint num="2" id="972" /> -<TGConnectingPoint num="3" id="973" /> -<TGConnectingPoint num="4" id="974" /> -<TGConnectingPoint num="5" id="975" /> -<TGConnectingPoint num="6" id="976" /> -<TGConnectingPoint num="7" id="977" /> -<TGConnectingPoint num="8" id="978" /> -<TGConnectingPoint num="9" id="979" /> -<TGConnectingPoint num="10" id="980" /> -<TGConnectingPoint num="11" id="981" /> -<TGConnectingPoint num="12" id="982" /> -<TGConnectingPoint num="13" id="983" /> -<TGConnectingPoint num="14" id="984" /> -<TGConnectingPoint num="15" id="985" /> -<TGConnectingPoint num="16" id="986" /> -<TGConnectingPoint num="17" id="987" /> -<TGConnectingPoint num="18" id="988" /> -<TGConnectingPoint num="19" id="989" /> -<TGConnectingPoint num="20" id="990" /> -<TGConnectingPoint num="21" id="991" /> -<TGConnectingPoint num="22" id="992" /> -<TGConnectingPoint num="23" id="993" /> -<TGConnectingPoint num="24" id="994" /> -<TGConnectingPoint num="25" id="995" /> -<TGConnectingPoint num="26" id="996" /> -<TGConnectingPoint num="27" id="997" /> -<TGConnectingPoint num="28" id="998" /> -<TGConnectingPoint num="29" id="999" /> -<TGConnectingPoint num="30" id="1000" /> -<TGConnectingPoint num="31" id="1001" /> -<TGConnectingPoint num="32" id="1002" /> -<TGConnectingPoint num="33" id="1003" /> -<TGConnectingPoint num="34" id="1004" /> -<TGConnectingPoint num="35" id="1005" /> -<TGConnectingPoint num="36" id="1006" /> -<TGConnectingPoint num="37" id="1007" /> -<TGConnectingPoint num="38" id="1008" /> -<TGConnectingPoint num="39" id="1009" /> -<extraparam> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5100" id="958" > -<father id="1010" num="0" /> -<cdparam x="333" y="213" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="957" /> -</SUBCOMPONENT> -<SUBCOMPONENT type="5103" id="969" > -<father id="1010" num="1" /> -<cdparam x="330" y="257" /> -<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> -<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="959" /> -<TGConnectingPoint num="1" id="960" /> -<TGConnectingPoint num="2" id="961" /> -<TGConnectingPoint num="3" id="962" /> -<TGConnectingPoint num="4" id="963" /> -<TGConnectingPoint num="5" id="964" /> -<TGConnectingPoint num="6" id="965" /> -<TGConnectingPoint num="7" id="966" /> -<TGConnectingPoint num="8" id="967" /> -<TGConnectingPoint num="9" id="968" /> -</SUBCOMPONENT> +</COMPONENT> </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="1017" > -<cdparam x="363" y="193" /> +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="967" > +<cdparam x="177" y="199" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1016" /> -<P1 x="363" y="204" id="1033" /> -<P2 x="362" y="257" id="1044" /> +<infoparam name="connector from start state to Send signal" value="null" /> +<TGConnectingPoint num="0" id="966" /> +<P1 x="340" y="233" id="1084" /> +<P2 x="353" y="252" id="1073" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1015" > -<father id="1017" num="0" /> -<cdparam x="380" y="228" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="965" > +<father id="967" num="0" /> +<cdparam x="177" y="239" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1011" /> -<TGConnectingPoint num="1" id="1012" /> -<TGConnectingPoint num="2" id="1013" /> -<TGConnectingPoint num="3" id="1014" /> +<TGConnectingPoint num="0" id="961" /> +<TGConnectingPoint num="1" id="962" /> +<TGConnectingPoint num="2" id="963" /> +<TGConnectingPoint num="3" id="964" /> <extraparam> <guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> +<afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> @@ -1997,25 +1909,25 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1024" > -<cdparam x="363" y="150" /> +<CONNECTOR type="5102" id="974" > +<cdparam x="322" y="69" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1023" /> -<P1 x="363" y="150" id="1090" /> -<P2 x="363" y="174" id="1032" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="973" /> +<P1 x="322" y="69" id="1071" /> +<P2 x="323" y="88" id="1031" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1022" > -<father id="1024" num="0" /> -<cdparam x="363" y="190" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="972" > +<father id="974" num="0" /> +<cdparam x="322" y="109" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1018" /> -<TGConnectingPoint num="1" id="1019" /> -<TGConnectingPoint num="2" id="1020" /> -<TGConnectingPoint num="3" id="1021" /> +<TGConnectingPoint num="0" id="968" /> +<TGConnectingPoint num="1" id="969" /> +<TGConnectingPoint num="2" id="970" /> +<TGConnectingPoint num="3" id="971" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2026,25 +1938,25 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1031" > -<cdparam x="362" y="101" /> +<CONNECTOR type="5102" id="981" > +<cdparam x="377" y="144" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="1030" /> -<P1 x="362" y="101" id="1125" /> -<P2 x="363" y="120" id="1085" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="980" /> +<P1 x="323" y="118" id="1036" /> +<P2 x="356" y="174" id="1087" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1029" > -<father id="1031" num="0" /> -<cdparam x="362" y="141" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="979" > +<father id="981" num="0" /> +<cdparam x="377" y="184" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1025" /> -<TGConnectingPoint num="1" id="1026" /> -<TGConnectingPoint num="2" id="1027" /> -<TGConnectingPoint num="3" id="1028" /> +<TGConnectingPoint num="0" id="975" /> +<TGConnectingPoint num="1" id="976" /> +<TGConnectingPoint num="2" id="977" /> +<TGConnectingPoint num="3" id="978" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2055,133 +1967,221 @@ </extraparam> </SUBCOMPONENT> -<COMPONENT type="5103" id="1042" > -<cdparam x="338" y="179" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<CONNECTOR type="5102" id="988" > +<cdparam x="377" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="987" /> +<P1 x="353" y="282" id="1074" /> +<P2 x="399" y="352" id="990" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="986" > +<father id="988" num="0" /> +<cdparam x="417" y="335" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="1032" /> -<TGConnectingPoint num="1" id="1033" /> -<TGConnectingPoint num="2" id="1034" /> -<TGConnectingPoint num="3" id="1035" /> -<TGConnectingPoint num="4" id="1036" /> -<TGConnectingPoint num="5" id="1037" /> -<TGConnectingPoint num="6" id="1038" /> -<TGConnectingPoint num="7" id="1039" /> -<TGConnectingPoint num="8" id="1040" /> -<TGConnectingPoint num="9" id="1041" /> -</COMPONENT> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="982" /> +<TGConnectingPoint num="1" id="983" /> +<TGConnectingPoint num="2" id="984" /> +<TGConnectingPoint num="3" id="985" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> -<COMPONENT type="5106" id="1083" > -<cdparam x="337" y="257" /> +<COMPONENT type="5106" id="1029" > +<cdparam x="374" y="352" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1043" /> -<TGConnectingPoint num="1" id="1044" /> -<TGConnectingPoint num="2" id="1045" /> -<TGConnectingPoint num="3" id="1046" /> -<TGConnectingPoint num="4" id="1047" /> -<TGConnectingPoint num="5" id="1048" /> -<TGConnectingPoint num="6" id="1049" /> -<TGConnectingPoint num="7" id="1050" /> -<TGConnectingPoint num="8" id="1051" /> -<TGConnectingPoint num="9" id="1052" /> -<TGConnectingPoint num="10" id="1053" /> -<TGConnectingPoint num="11" id="1054" /> -<TGConnectingPoint num="12" id="1055" /> -<TGConnectingPoint num="13" id="1056" /> -<TGConnectingPoint num="14" id="1057" /> -<TGConnectingPoint num="15" id="1058" /> -<TGConnectingPoint num="16" id="1059" /> -<TGConnectingPoint num="17" id="1060" /> -<TGConnectingPoint num="18" id="1061" /> -<TGConnectingPoint num="19" id="1062" /> -<TGConnectingPoint num="20" id="1063" /> -<TGConnectingPoint num="21" id="1064" /> -<TGConnectingPoint num="22" id="1065" /> -<TGConnectingPoint num="23" id="1066" /> -<TGConnectingPoint num="24" id="1067" /> -<TGConnectingPoint num="25" id="1068" /> -<TGConnectingPoint num="26" id="1069" /> -<TGConnectingPoint num="27" id="1070" /> -<TGConnectingPoint num="28" id="1071" /> -<TGConnectingPoint num="29" id="1072" /> -<TGConnectingPoint num="30" id="1073" /> -<TGConnectingPoint num="31" id="1074" /> -<TGConnectingPoint num="32" id="1075" /> -<TGConnectingPoint num="33" id="1076" /> -<TGConnectingPoint num="34" id="1077" /> -<TGConnectingPoint num="35" id="1078" /> -<TGConnectingPoint num="36" id="1079" /> -<TGConnectingPoint num="37" id="1080" /> -<TGConnectingPoint num="38" id="1081" /> -<TGConnectingPoint num="39" id="1082" /> +<TGConnectingPoint num="0" id="989" /> +<TGConnectingPoint num="1" id="990" /> +<TGConnectingPoint num="2" id="991" /> +<TGConnectingPoint num="3" id="992" /> +<TGConnectingPoint num="4" id="993" /> +<TGConnectingPoint num="5" id="994" /> +<TGConnectingPoint num="6" id="995" /> +<TGConnectingPoint num="7" id="996" /> +<TGConnectingPoint num="8" id="997" /> +<TGConnectingPoint num="9" id="998" /> +<TGConnectingPoint num="10" id="999" /> +<TGConnectingPoint num="11" id="1000" /> +<TGConnectingPoint num="12" id="1001" /> +<TGConnectingPoint num="13" id="1002" /> +<TGConnectingPoint num="14" id="1003" /> +<TGConnectingPoint num="15" id="1004" /> +<TGConnectingPoint num="16" id="1005" /> +<TGConnectingPoint num="17" id="1006" /> +<TGConnectingPoint num="18" id="1007" /> +<TGConnectingPoint num="19" id="1008" /> +<TGConnectingPoint num="20" id="1009" /> +<TGConnectingPoint num="21" id="1010" /> +<TGConnectingPoint num="22" id="1011" /> +<TGConnectingPoint num="23" id="1012" /> +<TGConnectingPoint num="24" id="1013" /> +<TGConnectingPoint num="25" id="1014" /> +<TGConnectingPoint num="26" id="1015" /> +<TGConnectingPoint num="27" id="1016" /> +<TGConnectingPoint num="28" id="1017" /> +<TGConnectingPoint num="29" id="1018" /> +<TGConnectingPoint num="30" id="1019" /> +<TGConnectingPoint num="31" id="1020" /> +<TGConnectingPoint num="32" id="1021" /> +<TGConnectingPoint num="33" id="1022" /> +<TGConnectingPoint num="34" id="1023" /> +<TGConnectingPoint num="35" id="1024" /> +<TGConnectingPoint num="36" id="1025" /> +<TGConnectingPoint num="37" id="1026" /> +<TGConnectingPoint num="38" id="1027" /> +<TGConnectingPoint num="39" id="1028" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="1124" > -<cdparam x="338" y="120" /> +<COMPONENT type="5106" id="1070" > +<cdparam x="298" y="88" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1084" /> -<TGConnectingPoint num="1" id="1085" /> -<TGConnectingPoint num="2" id="1086" /> -<TGConnectingPoint num="3" id="1087" /> -<TGConnectingPoint num="4" id="1088" /> -<TGConnectingPoint num="5" id="1089" /> -<TGConnectingPoint num="6" id="1090" /> -<TGConnectingPoint num="7" id="1091" /> -<TGConnectingPoint num="8" id="1092" /> -<TGConnectingPoint num="9" id="1093" /> -<TGConnectingPoint num="10" id="1094" /> -<TGConnectingPoint num="11" id="1095" /> -<TGConnectingPoint num="12" id="1096" /> -<TGConnectingPoint num="13" id="1097" /> -<TGConnectingPoint num="14" id="1098" /> -<TGConnectingPoint num="15" id="1099" /> -<TGConnectingPoint num="16" id="1100" /> -<TGConnectingPoint num="17" id="1101" /> -<TGConnectingPoint num="18" id="1102" /> -<TGConnectingPoint num="19" id="1103" /> -<TGConnectingPoint num="20" id="1104" /> -<TGConnectingPoint num="21" id="1105" /> -<TGConnectingPoint num="22" id="1106" /> -<TGConnectingPoint num="23" id="1107" /> -<TGConnectingPoint num="24" id="1108" /> -<TGConnectingPoint num="25" id="1109" /> -<TGConnectingPoint num="26" id="1110" /> -<TGConnectingPoint num="27" id="1111" /> -<TGConnectingPoint num="28" id="1112" /> -<TGConnectingPoint num="29" id="1113" /> -<TGConnectingPoint num="30" id="1114" /> -<TGConnectingPoint num="31" id="1115" /> -<TGConnectingPoint num="32" id="1116" /> -<TGConnectingPoint num="33" id="1117" /> -<TGConnectingPoint num="34" id="1118" /> -<TGConnectingPoint num="35" id="1119" /> -<TGConnectingPoint num="36" id="1120" /> -<TGConnectingPoint num="37" id="1121" /> -<TGConnectingPoint num="38" id="1122" /> -<TGConnectingPoint num="39" id="1123" /> +<TGConnectingPoint num="0" id="1030" /> +<TGConnectingPoint num="1" id="1031" /> +<TGConnectingPoint num="2" id="1032" /> +<TGConnectingPoint num="3" id="1033" /> +<TGConnectingPoint num="4" id="1034" /> +<TGConnectingPoint num="5" id="1035" /> +<TGConnectingPoint num="6" id="1036" /> +<TGConnectingPoint num="7" id="1037" /> +<TGConnectingPoint num="8" id="1038" /> +<TGConnectingPoint num="9" id="1039" /> +<TGConnectingPoint num="10" id="1040" /> +<TGConnectingPoint num="11" id="1041" /> +<TGConnectingPoint num="12" id="1042" /> +<TGConnectingPoint num="13" id="1043" /> +<TGConnectingPoint num="14" id="1044" /> +<TGConnectingPoint num="15" id="1045" /> +<TGConnectingPoint num="16" id="1046" /> +<TGConnectingPoint num="17" id="1047" /> +<TGConnectingPoint num="18" id="1048" /> +<TGConnectingPoint num="19" id="1049" /> +<TGConnectingPoint num="20" id="1050" /> +<TGConnectingPoint num="21" id="1051" /> +<TGConnectingPoint num="22" id="1052" /> +<TGConnectingPoint num="23" id="1053" /> +<TGConnectingPoint num="24" id="1054" /> +<TGConnectingPoint num="25" id="1055" /> +<TGConnectingPoint num="26" id="1056" /> +<TGConnectingPoint num="27" id="1057" /> +<TGConnectingPoint num="28" id="1058" /> +<TGConnectingPoint num="29" id="1059" /> +<TGConnectingPoint num="30" id="1060" /> +<TGConnectingPoint num="31" id="1061" /> +<TGConnectingPoint num="32" id="1062" /> +<TGConnectingPoint num="33" id="1063" /> +<TGConnectingPoint num="34" id="1064" /> +<TGConnectingPoint num="35" id="1065" /> +<TGConnectingPoint num="36" id="1066" /> +<TGConnectingPoint num="37" id="1067" /> +<TGConnectingPoint num="38" id="1068" /> +<TGConnectingPoint num="39" id="1069" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="1126" > -<cdparam x="355" y="81" /> +<COMPONENT type="5100" id="1072" > +<cdparam x="315" y="49" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1125" /> +<TGConnectingPoint num="0" id="1071" /> </COMPONENT> +<COMPONENT type="5106" id="1126" > +<cdparam x="264" y="174" /> +<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="state0" /> +<TGConnectingPoint num="0" id="1086" /> +<TGConnectingPoint num="1" id="1087" /> +<TGConnectingPoint num="2" id="1088" /> +<TGConnectingPoint num="3" id="1089" /> +<TGConnectingPoint num="4" id="1090" /> +<TGConnectingPoint num="5" id="1091" /> +<TGConnectingPoint num="6" id="1092" /> +<TGConnectingPoint num="7" id="1093" /> +<TGConnectingPoint num="8" id="1094" /> +<TGConnectingPoint num="9" id="1095" /> +<TGConnectingPoint num="10" id="1096" /> +<TGConnectingPoint num="11" id="1097" /> +<TGConnectingPoint num="12" id="1098" /> +<TGConnectingPoint num="13" id="1099" /> +<TGConnectingPoint num="14" id="1100" /> +<TGConnectingPoint num="15" id="1101" /> +<TGConnectingPoint num="16" id="1102" /> +<TGConnectingPoint num="17" id="1103" /> +<TGConnectingPoint num="18" id="1104" /> +<TGConnectingPoint num="19" id="1105" /> +<TGConnectingPoint num="20" id="1106" /> +<TGConnectingPoint num="21" id="1107" /> +<TGConnectingPoint num="22" id="1108" /> +<TGConnectingPoint num="23" id="1109" /> +<TGConnectingPoint num="24" id="1110" /> +<TGConnectingPoint num="25" id="1111" /> +<TGConnectingPoint num="26" id="1112" /> +<TGConnectingPoint num="27" id="1113" /> +<TGConnectingPoint num="28" id="1114" /> +<TGConnectingPoint num="29" id="1115" /> +<TGConnectingPoint num="30" id="1116" /> +<TGConnectingPoint num="31" id="1117" /> +<TGConnectingPoint num="32" id="1118" /> +<TGConnectingPoint num="33" id="1119" /> +<TGConnectingPoint num="34" id="1120" /> +<TGConnectingPoint num="35" id="1121" /> +<TGConnectingPoint num="36" id="1122" /> +<TGConnectingPoint num="37" id="1123" /> +<TGConnectingPoint num="38" id="1124" /> +<TGConnectingPoint num="39" id="1125" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5103" id="1083" > +<father id="1126" num="0" /> +<cdparam x="330" y="257" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1073" /> +<TGConnectingPoint num="1" id="1074" /> +<TGConnectingPoint num="2" id="1075" /> +<TGConnectingPoint num="3" id="1076" /> +<TGConnectingPoint num="4" id="1077" /> +<TGConnectingPoint num="5" id="1078" /> +<TGConnectingPoint num="6" id="1079" /> +<TGConnectingPoint num="7" id="1080" /> +<TGConnectingPoint num="8" id="1081" /> +<TGConnectingPoint num="9" id="1082" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5100" id="1085" > +<father id="1126" num="1" /> +<cdparam x="333" y="213" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1084" /> +</SUBCOMPONENT> + </AVATARStateMachineDiagramPanel> @@ -2599,7 +2599,7 @@ <textline data="must be ejected" /> <kind data="Functional" /> <criticality data="Low" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="0.1.1" /> <satisfied data="false" /> <verified data="false" /> @@ -2836,7 +2836,7 @@ <textline data="negative number of coins" /> <kind data="Functional" /> <criticality data="Low" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="0.2" /> <satisfied data="true" /> <verified data="true" /> @@ -3284,7 +3284,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1751" /> -<P1 x="318" y="261" id="1795" /> +<P1 x="318" y="261" id="1782" /> <P2 x="361" y="261" id="1770" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -3302,7 +3302,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1755" /> -<P1 x="318" y="211" id="1782" /> +<P1 x="318" y="211" id="1795" /> <P2 x="361" y="211" id="1769" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -3391,11 +3391,11 @@ </COMPONENT> <SUBCOMPONENT type="5304" id="1792" > <father id="1830" num="0" /> -<cdparam x="166" y="191" /> -<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="154" y="241" /> +<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> +<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> <TGConnectingPoint num="0" id="1780" /> <TGConnectingPoint num="1" id="1781" /> <TGConnectingPoint num="2" id="1782" /> @@ -3411,11 +3411,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5304" id="1805" > <father id="1830" num="1" /> -<cdparam x="154" y="241" /> -<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="166" y="191" /> +<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> +<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> <TGConnectingPoint num="0" id="1793" /> <TGConnectingPoint num="1" id="1794" /> <TGConnectingPoint num="2" id="1795" /> @@ -3545,7 +3545,7 @@ <TGConnectingPoint num="0" id="1889" /> <TGConnectingPoint num="1" id="1890" /> <TGConnectingPoint num="2" id="1891" /> -<P1 x="581" y="154" id="1965" /> +<P1 x="581" y="154" id="1978" /> <P2 x="546" y="305" id="2035" /> <Point x="518" y="154" /> <Point x="518" y="305" /> @@ -3573,7 +3573,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1894" /> <TGConnectingPoint num="1" id="1895" /> -<P1 x="631" y="164" id="1960" /> +<P1 x="631" y="164" id="1973" /> <P2 x="667" y="310" id="2022" /> <Point x="631" y="310" /> <AutomaticDrawing data="true" /> @@ -3601,7 +3601,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1900" /> <TGConnectingPoint num="1" id="1901" /> -<P1 x="721" y="158" id="1971" /> +<P1 x="721" y="158" id="1958" /> <P2 x="700" y="204" id="2012" /> <Point x="700" y="158" /> <AutomaticDrawing data="true" /> @@ -3756,13 +3756,13 @@ <TGConnectingPoint num="22" id="2005" /> <TGConnectingPoint num="23" id="2006" /> </COMPONENT> -<SUBCOMPONENT type="5304" id="1969" > +<SUBCOMPONENT type="5303" id="1969" > <father id="2007" num="0" /> -<cdparam x="581" y="125" /> -<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="721" y="133" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> -<infoparam name="TGComponent" value="Start" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> +<infoparam name="TGComponent" value="nbOfCoins" /> <TGConnectingPoint num="0" id="1957" /> <TGConnectingPoint num="1" id="1958" /> <TGConnectingPoint num="2" id="1959" /> @@ -3775,14 +3775,17 @@ <TGConnectingPoint num="9" id="1966" /> <TGConnectingPoint num="10" id="1967" /> <TGConnectingPoint num="11" id="1968" /> +<extraparam> +<Toggle value="" /> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5303" id="1982" > +<SUBCOMPONENT type="5304" id="1982" > <father id="2007" num="1" /> -<cdparam x="721" y="133" /> -<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="581" y="125" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> -<infoparam name="TGComponent" value="nbOfCoins" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> +<infoparam name="TGComponent" value="Start" /> <TGConnectingPoint num="0" id="1970" /> <TGConnectingPoint num="1" id="1971" /> <TGConnectingPoint num="2" id="1972" /> @@ -3795,9 +3798,6 @@ <TGConnectingPoint num="9" id="1979" /> <TGConnectingPoint num="10" id="1980" /> <TGConnectingPoint num="11" id="1981" /> -<extraparam> -<Toggle value="" /> -</extraparam> </SUBCOMPONENT> <COMPONENT type="5306" id="2019" > @@ -4085,7 +4085,7 @@ <textline data="Double-click to edit" /> <kind data="" /> <criticality data="" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="1" /> <satisfied data="false" /> <verified data="false" /> diff --git a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml index 238cd6094990c05ca6373c94c38a9215d2ab6242..7e4f3eb6399b3b43b1c8544e71f598371c710005 100644 --- a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml +++ b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml @@ -347,16 +347,16 @@ <cdparam x="535" y="347" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="556" y="347" id="355" /> -<P2 x="547" y="382" id="402" /> +<P1 x="556" y="321" id="355" /> +<P2 x="534" y="395" id="402" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="189" > <cdparam x="820" y="398" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="1025" y="497" id="249" /> -<P2 x="761" y="574" id="370" /> +<P1 x="1025" y="471" id="249" /> +<P2 x="761" y="548" id="370" /> <Point x="887" y="577" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="188" > @@ -373,15 +373,15 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> <P1 x="710" y="403" id="372" /> -<P2 x="693" y="347" id="333" /> +<P2 x="693" y="321" id="333" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="191" > <cdparam x="522" y="390" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="521" y="382" id="397" /> -<P2 x="466" y="335" id="236" /> +<P1 x="534" y="369" id="397" /> +<P2 x="453" y="322" id="236" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="192" > @@ -396,16 +396,16 @@ <cdparam x="656" y="426" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="816" y="552" id="376" /> -<P2 x="969" y="495" id="263" /> +<P1 x="805" y="542" id="376" /> +<P2 x="969" y="474" id="263" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="194" > <cdparam x="656" y="400" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="816" y="519" id="378" /> -<P2 x="921" y="476" id="261" /> +<P1 x="805" y="509" id="378" /> +<P2 x="931" y="466" id="261" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="195" > @@ -413,126 +413,126 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> <P1 x="750" y="406" id="386" /> -<P2 x="828" y="375" id="291" /> +<P2 x="841" y="362" id="291" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="196" > <cdparam x="689" y="292" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="854" y="375" id="295" /> -<P2 x="921" y="362" id="271" /> +<P1 x="841" y="388" id="295" /> +<P2 x="931" y="352" id="271" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="197" > <cdparam x="656" y="377" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="816" y="491" id="382" /> -<P2 x="921" y="453" id="269" /> +<P1 x="805" y="481" id="382" /> +<P2 x="931" y="443" id="269" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="198" > <cdparam x="656" y="351" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="816" y="458" id="380" /> -<P2 x="921" y="426" id="267" /> +<P1 x="805" y="448" id="380" /> +<P2 x="931" y="416" id="267" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="199" > <cdparam x="741" y="296" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="921" y="397" id="265" /> -<P2 x="816" y="429" id="384" /> +<P1 x="931" y="387" id="265" /> +<P2 x="805" y="419" id="384" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="200" > <cdparam x="735" y="260" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="918" y="330" id="273" /> -<P2 x="747" y="282" id="345" /> +<P1 x="931" y="317" id="273" /> +<P2 x="734" y="269" id="345" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="201" > <cdparam x="641" y="230" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="747" y="248" id="343" /> -<P2 x="918" y="291" id="275" /> +<P1 x="734" y="235" id="343" /> +<P2 x="931" y="278" id="275" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="202" > <cdparam x="641" y="195" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="747" y="203" id="341" /> -<P2 x="918" y="248" id="277" /> +<P1 x="734" y="190" id="341" /> +<P2 x="931" y="235" id="277" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="203" > <cdparam x="740" y="353" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="828" y="375" id="290" /> -<P2 x="747" y="314" id="339" /> +<P1 x="841" y="362" id="290" /> +<P2 x="734" y="301" id="339" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="204" > <cdparam x="460" y="270" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="521" y="303" id="349" /> -<P2 x="466" y="303" id="230" /> +<P1 x="534" y="290" id="349" /> +<P2 x="453" y="290" id="230" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="205" > <cdparam x="387" y="129" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="464" y="126" id="226" /> -<P2 x="524" y="126" id="337" /> +<P1 x="453" y="116" id="226" /> +<P2 x="534" y="116" id="337" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="206" > <cdparam x="389" y="200" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="466" y="215" id="232" /> -<P2 x="521" y="215" id="351" /> +<P1 x="453" y="202" id="232" /> +<P2 x="534" y="202" id="351" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="207" > <cdparam x="460" y="236" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="521" y="260" id="353" /> -<P2 x="466" y="260" id="234" /> +<P1 x="534" y="247" id="353" /> +<P2 x="453" y="247" id="234" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="208" > <cdparam x="389" y="163" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="Connector between ports" /> -<P1 x="466" y="169" id="228" /> -<P2 x="521" y="169" id="347" /> +<P1 x="453" y="156" id="228" /> +<P2 x="534" y="156" id="347" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="209" > <cdparam x="967" y="190" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="918" y="198" id="279" /> -<P2 x="747" y="124" id="359" /> +<P1 x="931" y="185" id="279" /> +<P2 x="734" y="111" id="359" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="210" > <cdparam x="1028" y="535" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="630" y="345" id="335" /> +<P1 x="630" y="324" id="335" /> <P2 x="669" y="406" id="374" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -540,24 +540,24 @@ <cdparam x="1308" y="303" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1222" y="378" id="313" /> -<P2 x="1178" y="380" id="259" /> +<P1 x="1232" y="368" id="313" /> +<P2 x="1167" y="370" id="259" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="212" > <cdparam x="1172" y="437" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="415" id="257" /> -<P2 x="1222" y="413" id="311" /> +<P1 x="1167" y="405" id="257" /> +<P2 x="1232" y="403" id="311" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="215" > <cdparam x="1041" y="162" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="208" id="255" /> -<P2 x="1178" y="276" id="253" /> +<P1 x="1167" y="198" id="255" /> +<P2 x="1167" y="266" id="253" /> <Point x="1227" y="207" /> <Point x="1227" y="247" /> <AutomaticDrawing data="true" /> @@ -582,8 +582,8 @@ <cdparam x="877" y="343" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="454" id="251" /> -<P2 x="1222" y="441" id="309" /> +<P1 x="1167" y="444" id="251" /> +<P2 x="1232" y="431" id="309" /> <AutomaticDrawing data="true" /> </CONNECTOR> <COMPONENT type="1205" id="225" > @@ -690,7 +690,7 @@ <infoparam name="TGComponent" value="Channel fromDtoSC" /> <TGConnectingPoint num="0" id="232" /> <extraparam> -<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> +<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -1392,7 +1392,7 @@ <infoparam name="TGComponent" value="Channel fromSCtoD" /> <TGConnectingPoint num="0" id="353" /> <extraparam> -<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> +<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -8913,7 +8913,7 @@ On prend b=1 comme exemple <COMPONENT type="302" id="2711" > <cdparam x="517" y="154" /> -<sizeparam width="520" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="565" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK diff --git a/src/.classpath b/src/.classpath index 42454fe50719774f5a6a8794720018e4cf0640eb..5f8345db70e5eabf790de1dcd959855873e4f1fc 100644 --- a/src/.classpath +++ b/src/.classpath @@ -14,5 +14,8 @@ <classpathentry kind="lib" path="/libs/commons-math3-3.6.1.jar"/> <classpathentry kind="lib" path="/libs/batik-dom.jar"/> <classpathentry kind="lib" path="/libs/batik-svggen.jar"/> + <classpathentry kind="lib" path="/libs/batik-awt-util.jar"/> + <classpathentry kind="lib" path="/libs/batik-xml.jar"/> + <classpathentry kind="lib" path="/libs/batik-util.jar"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/src/main/java/avatartranslator/AvatarAction.java b/src/main/java/avatartranslator/AvatarAction.java index 1ecfd5e3b42f7a99db2f9262661260eed95d4aa2..b0c957a25fd134201ce4ef2d4fe9314af0e92575 100644 --- a/src/main/java/avatartranslator/AvatarAction.java +++ b/src/main/java/avatartranslator/AvatarAction.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarAction @@ -75,5 +72,5 @@ public interface AvatarAction { * @param attributesMapping * The mapping used to replace the attributes of the action. All the attributes of the block should be present as keys. */ - void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + void replaceAttributes(Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarActionAssignment.java b/src/main/java/avatartranslator/AvatarActionAssignment.java index 0fb0455ef78bb0edec33fe2695947b3cb5c85652..d758d35991a90fe54ccc55e8e696edddc7254921 100644 --- a/src/main/java/avatartranslator/AvatarActionAssignment.java +++ b/src/main/java/avatartranslator/AvatarActionAssignment.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarActionAssignment @@ -99,7 +95,7 @@ public class AvatarActionAssignment implements AvatarAction { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.leftHand instanceof AvatarAttribute) this.leftHand = attributesMapping.get (this.leftHand); else diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java index 0f4ccc50002cb4aba158e683ff82e28351fdf86f..431bbff681a7eda8963d4157ebeff2fbceaca5f2 100644 --- a/src/main/java/avatartranslator/AvatarActionOnSignal.java +++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java @@ -42,6 +42,7 @@ package avatartranslator; import myutil.TraceManager; import java.util.LinkedList; +import java.util.List; /** @@ -52,20 +53,23 @@ import java.util.LinkedList; */ public class AvatarActionOnSignal extends AvatarStateMachineElement { private AvatarSignal signal; - private LinkedList<String> values; + private List<String> values; private boolean checkLatency; - public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject) { - super(_name, _referenceObject); - signal = _signal; - values = new LinkedList<String>(); - } - public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject, _isCheckable, _isChecked); - signal = _signal; - values = new LinkedList<String>(); - } + public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject ) { + this( _name, _signal, _referenceObject, false ); + } + + public AvatarActionOnSignal( String _name, + AvatarSignal _signal, + Object _referenceObject, + boolean _isCheckable ) { + super( _name, _referenceObject, _isCheckable, false ); + + signal = _signal; + values = new LinkedList<String>(); + } public AvatarSignal getSignal() { return signal; @@ -75,7 +79,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement { values.add(_val); } - public LinkedList<String> getValues() { + public List<String> getValues() { return values; } @@ -104,32 +108,32 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement { } public AvatarActionOnSignal basicCloneMe(AvatarStateMachineOwner _block) { - //TraceManager.addDev("I HAVE BEEN CLONED: " + this); - AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName()); - if (sig != null) { - AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable(), isChecked()); - for(int i=0; i<getNbOfValues(); i++) { - aaos.addValue(getValue(i)); - } - return aaos; - } else { - TraceManager.addDev("NULL signal in new spec: " + getSignal().getName()); - } - - return null; + //TraceManager.addDev("I HAVE BEEN CLONED: " + this); + AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName()); + if (sig != null) { + AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable()/*, isChecked()*/); + for(int i=0; i<getNbOfValues(); i++) { + aaos.addValue(getValue(i)); + } + return aaos; + } else { + TraceManager.addDev("NULL signal in new spec: " + getSignal().getName()); + } + + return null; } public String getExtendedName() { - if (getSignal() == null) { - String s = getName() + " refobjt=" + referenceObject.toString(); - TraceManager.addDev("Null signal" + " res=" + s); - return s; - } - if (getName() == null) { - TraceManager.addDev("Null name"); - } - - return getName() + ":" + getSignal().getName(); + if (getSignal() == null) { + String s = getName() + " refobjt=" + referenceObject.toString(); + TraceManager.addDev("Null signal" + " res=" + s); + return s; + } + if (getName() == null) { + TraceManager.addDev("Null name"); + } + + return getName() + ":" + getSignal().getName(); } public String getNiceName() { diff --git a/src/main/java/avatartranslator/AvatarArithmeticOp.java b/src/main/java/avatartranslator/AvatarArithmeticOp.java index 029d0856cebb5b648b1838221d6f6df6bf8da825..c439b3ceda8b6cb601c4344f6d5b36a66480db1b 100644 --- a/src/main/java/avatartranslator/AvatarArithmeticOp.java +++ b/src/main/java/avatartranslator/AvatarArithmeticOp.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarArithmeticOp @@ -114,7 +111,7 @@ public class AvatarArithmeticOp extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.term1 instanceof AvatarAttribute) this.term1 = attributesMapping.get (this.term1); else diff --git a/src/main/java/avatartranslator/AvatarAttribute.java b/src/main/java/avatartranslator/AvatarAttribute.java index 1701e29ad4eee2d71ce697f516a7f1d416ac152a..775a1f8e68958f117e78519f69220a60498b0ef5 100644 --- a/src/main/java/avatartranslator/AvatarAttribute.java +++ b/src/main/java/avatartranslator/AvatarAttribute.java @@ -39,9 +39,9 @@ package avatartranslator; -import myutil.TraceManager; +import java.util.Map; -import java.util.HashMap; +import myutil.TraceManager; /** * Class AvatarAttribute @@ -189,7 +189,7 @@ public class AvatarAttribute extends AvatarLeftHand { } @Override - public void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { TraceManager.addDev("!!! ERROR !!! (replaceAttributes in AvatarAttribute)"); /* !!! We should never arrive here !!! */ } diff --git a/src/main/java/avatartranslator/AvatarAttributeState.java b/src/main/java/avatartranslator/AvatarAttributeState.java index becf79f442aacfa4094055716c091de373989f7f..fb260813c87a96bfda084d35271908a5407cde3f 100644 --- a/src/main/java/avatartranslator/AvatarAttributeState.java +++ b/src/main/java/avatartranslator/AvatarAttributeState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -52,14 +49,16 @@ public class AvatarAttributeState extends AvatarElement { private AvatarState state; public AvatarAttributeState(String _name, Object _referenceObject, AvatarAttribute attr, AvatarState st) { super(_name, _referenceObject); - attribute = attr; - state = st; + attribute = attr; + state = st; } + public AvatarAttribute getAttribute(){ - return attribute; + return attribute; } + public AvatarState getState(){ - return state; + return state; } public AvatarAttributeState advancedClone (AvatarSpecification avspec) { @@ -72,8 +71,8 @@ public class AvatarAttributeState extends AvatarElement { return result; } - public String toString() - { + @Override + public String toString() { return this.attribute.getBlock().getName().replaceAll("__", ".") + "." + this.state.getName() + "." + this.attribute.getName(); } } diff --git a/src/main/java/avatartranslator/AvatarBinaryGuard.java b/src/main/java/avatartranslator/AvatarBinaryGuard.java index 0c473aaafd6a07fc8d97882b40119766dab8e0b3..070ef547e6d468ee21a29086df8692bc6c45fdd1 100644 --- a/src/main/java/avatartranslator/AvatarBinaryGuard.java +++ b/src/main/java/avatartranslator/AvatarBinaryGuard.java @@ -36,10 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarBinaryGuard @@ -81,7 +80,7 @@ public class AvatarBinaryGuard extends AvatarComposedGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.guardA.replaceAttributes (attributesMapping); this.guardB.replaceAttributes (attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java index 0053bc1dd849167e8926ecb0735bc1ac5d59e212..58c022392b7f233bad0b25d68b7c8219068692a1 100644 --- a/src/main/java/avatartranslator/AvatarBlock.java +++ b/src/main/java/avatartranslator/AvatarBlock.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; /** @@ -54,9 +52,9 @@ import java.util.LinkedList; public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwner { private AvatarBlock father; - private LinkedList<AvatarAttribute> attributes; - private LinkedList<AvatarMethod> methods; - private LinkedList<AvatarSignal> signals; + private List<AvatarAttribute> attributes; + private List<AvatarMethod> methods; + private List<AvatarSignal> signals; private AvatarStateMachine asm; private AvatarSpecification avspec; @@ -119,16 +117,16 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne signals.add(_signal); } - public LinkedList<AvatarAttribute> getAttributes() { + public List<AvatarAttribute> getAttributes() { return attributes; } - public LinkedList<AvatarMethod> getMethods() { + public List<AvatarMethod> getMethods() { return methods; } - public LinkedList<AvatarSignal> getSignals() { + public List<AvatarSignal> getSignals() { return signals ; } @@ -435,8 +433,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne return (asme != null); } - - public void removeTimers(AvatarSpecification _spec, LinkedList<AvatarBlock> _addedBlocks) { + public void removeTimers(AvatarSpecification _spec, List<AvatarBlock> _addedBlocks) { AvatarSignal as; AvatarAttribute value; @@ -479,25 +476,24 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne // Remove Timer attribute //boolean hasTimerAttribute = false; - LinkedList<AvatarAttribute> tmps = attributes; + List<AvatarAttribute> tmps = attributes; attributes = new LinkedList<AvatarAttribute>(); for (AvatarAttribute aa: tmps) { if (aa.getType() != AvatarType.TIMER) { attributes.add(aa); - } else { + } else { //hasTimerAttribute = true; - } + } } - } public boolean hasTimerAttribute() { - for(AvatarAttribute attr: attributes) { - if (attr.isTimer()) { - return true; - } - } - return false; + for(AvatarAttribute attr: attributes) { + if (attr.isTimer()) { + return true; + } + } + return false; } public AvatarAttribute addTimerAttribute(String _name) { diff --git a/src/main/java/avatartranslator/AvatarComposedGuard.java b/src/main/java/avatartranslator/AvatarComposedGuard.java index 7115e79a910af48a070ef41553a2523e1dcd2df1..e414be224d870cdfbeba99eca46ec5ef1fd97c36 100644 --- a/src/main/java/avatartranslator/AvatarComposedGuard.java +++ b/src/main/java/avatartranslator/AvatarComposedGuard.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** @@ -49,7 +45,8 @@ package avatartranslator; * @author Florian LUGOU */ public abstract class AvatarComposedGuard extends AvatarGuard { - public AvatarComposedGuard getOpposite () { + + public AvatarComposedGuard getOpposite () { return new AvatarUnaryGuard ("not", "(", ")", this); } diff --git a/src/main/java/avatartranslator/AvatarConstant.java b/src/main/java/avatartranslator/AvatarConstant.java index f9cf2f5069af9eefab5a1ef855ca0995b66ddcee..03a1710cccf0ad5399c90b7ad2f5ae1ec46ec3ff 100644 --- a/src/main/java/avatartranslator/AvatarConstant.java +++ b/src/main/java/avatartranslator/AvatarConstant.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTerm @@ -74,19 +70,20 @@ public class AvatarConstant extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } @Override public String toString() { - return getName(); + return getName(); } public AvatarConstant advancedClone() { if (this == AvatarConstant.TRUE || this == AvatarConstant.FALSE) return this; - AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject()); - cloneLinkToReferenceObjects(ac); - return ac; + AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject()); + cloneLinkToReferenceObjects(ac); + + return ac; } } diff --git a/src/main/java/avatartranslator/AvatarConstantGuard.java b/src/main/java/avatartranslator/AvatarConstantGuard.java index d6a3591d65d98925ac9516ac3f1e80646718d3fc..d19b4d8640a8c027e8c6612223a8ff18966f09ed 100644 --- a/src/main/java/avatartranslator/AvatarConstantGuard.java +++ b/src/main/java/avatartranslator/AvatarConstantGuard.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarConstantGuard is an {@link AvatarSimpleGuard} that is of the form: @@ -73,5 +68,5 @@ public class AvatarConstantGuard extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarDummyState.java b/src/main/java/avatartranslator/AvatarDummyState.java new file mode 100644 index 0000000000000000000000000000000000000000..3bd0f6623725fa38b72984437b1672c22fac7fe3 --- /dev/null +++ b/src/main/java/avatartranslator/AvatarDummyState.java @@ -0,0 +1,18 @@ +package avatartranslator; + +/** + * Issue #69: Created for component disabling. When a state machine element is located between transitions + * that have guards and actions, we need to keep a node to ensure that these are evaluated / executed in + * the same sequence leading to the same semantics. We create replace the disabled node with this dummy state + * that will have no impact on the generation of other specifications (UPPAAL, C Code, Proverif, etc..). + * + * @author dblouin + * + */ +public class AvatarDummyState extends AvatarState { + + public AvatarDummyState( final String name, + final Object _referenceObject ) { + super( name + "_converted_to_dummy_state", _referenceObject ); + } +} diff --git a/src/main/java/avatartranslator/AvatarElement.java b/src/main/java/avatartranslator/AvatarElement.java index 5d40d2f802eb7637a475a611a01f9cdd3f45fdcd..40f3944bf2b1624630438e186462df0ceb0fa16b 100644 --- a/src/main/java/avatartranslator/AvatarElement.java +++ b/src/main/java/avatartranslator/AvatarElement.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import myutil.TraceManager; @@ -53,7 +50,7 @@ import java.util.Vector; */ public class AvatarElement { - protected static int ID=0; + private static int ID=0; protected String name; protected Object referenceObject; @@ -67,14 +64,14 @@ public class AvatarElement { } public void addReferenceObjectFrom(AvatarElement _elt) { - addReferenceObject(_elt.getReferenceObject()); - Vector<Object> others = _elt.getReferenceObjects(); - if (others != null) { - for(Object o: others) { - addReferenceObject(o); - } - } - + addReferenceObject(_elt.getReferenceObject()); + Vector<Object> others = _elt.getReferenceObjects(); + if (others != null) { + for(Object o: others) { + addReferenceObject(o); + } + } + } public void addReferenceObject(Object _ref) { @@ -113,7 +110,7 @@ public class AvatarElement { } public Vector<Object> getReferenceObjects() { - return otherReferenceObjects; + return otherReferenceObjects; } public int getID(){ @@ -125,16 +122,17 @@ public class AvatarElement { ID = 0; } + @Override public String toString() { - return getName(); + return getName(); } public void cloneLinkToReferenceObjects(AvatarElement ae) { - if (otherReferenceObjects == null) { - return; - } - for(Object o: otherReferenceObjects) { - ae.addReferenceObject(o); - } + if (otherReferenceObjects == null) { + return; + } + for(Object o: otherReferenceObjects) { + ae.addReferenceObject(o); + } } } diff --git a/src/main/java/avatartranslator/AvatarGuard.java b/src/main/java/avatartranslator/AvatarGuard.java index e02812cb685d04ecc3d2b0aab1cd2aebfd718949..f75aedd22226c555cab87f00a05344c0774b9424 100644 --- a/src/main/java/avatartranslator/AvatarGuard.java +++ b/src/main/java/avatartranslator/AvatarGuard.java @@ -36,17 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; +import java.util.Map; + import myutil.Conversion; import myutil.TraceManager; -import java.util.HashMap; - /** * Class AvatarGuard * Creation: 16/09/2015 @@ -233,6 +229,7 @@ public abstract class AvatarGuard { public abstract String getAsString (AvatarSyntaxTranslator translator); + @Override public String toString () { return this.getAsString (new AvatarSyntaxTranslator ()); } @@ -250,5 +247,5 @@ public abstract class AvatarGuard { * @param attributesMapping * The mapping used to replace the attributes of the guard. All the attributes of the block should be present as keys. */ - public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarGuardElse.java b/src/main/java/avatartranslator/AvatarGuardElse.java index 61020187adf847de61777dda0892b0622dba420b..3afe3e0fe5ce808bfbf80d17dc65d86f0f2e8d99 100644 --- a/src/main/java/avatartranslator/AvatarGuardElse.java +++ b/src/main/java/avatartranslator/AvatarGuardElse.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarGuardElse is an {@link AvatarGuard} that is of the form: @@ -90,6 +85,7 @@ public class AvatarGuardElse extends AvatarGuard { return "else"; } + @Override public boolean isElseGuard () { return true; } @@ -100,5 +96,5 @@ public class AvatarGuardElse extends AvatarGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarGuardEmpty.java b/src/main/java/avatartranslator/AvatarGuardEmpty.java index 15adf7e6103e4858db7686b2bfc76bea6e8efa96..6e5cdd08edf654cdb97b6f4bf2b82a8fcd7236dc 100644 --- a/src/main/java/avatartranslator/AvatarGuardEmpty.java +++ b/src/main/java/avatartranslator/AvatarGuardEmpty.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** @@ -52,7 +48,8 @@ import java.util.HashMap; * @author Florian LUGOU */ public class AvatarGuardEmpty extends AvatarGuard { - public AvatarGuardEmpty () { + + public AvatarGuardEmpty () { } public boolean isGuarded () { @@ -69,5 +66,5 @@ public class AvatarGuardEmpty extends AvatarGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarLibraryFunction.java b/src/main/java/avatartranslator/AvatarLibraryFunction.java index cba451ea26ec11f1faee1b33cadb9da500b7c06e..c80b6155e231443331effd03ee23ece3b52c8bdb 100644 --- a/src/main/java/avatartranslator/AvatarLibraryFunction.java +++ b/src/main/java/avatartranslator/AvatarLibraryFunction.java @@ -36,15 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; - +import java.util.List; +import java.util.Map; /** * AvatarLibraryFunction is used to represent a library function that can be further used in state machine diagrams. @@ -70,34 +68,34 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> parameters; + private List<AvatarAttribute> parameters; /** * The list of variables local to the function. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> attributes; + private List<AvatarAttribute> attributes; /** * The list of signals used by the function. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarSignal> signals; + private List<AvatarSignal> signals; /** * The list of attribute that will hold the return values of the function. These shouldn't be elements of {@link AvatarLibraryFunction#attributes} or {@link AvatarLibraryFunction#parameters}. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> returnAttributes; + private List<AvatarAttribute> returnAttributes; /** * The list of methods that can be used by the function. * */ - private LinkedList<AvatarMethod> methods; + private List<AvatarMethod> methods; /** * The state machine describing the behaviour of the function. @@ -166,7 +164,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of parameters. */ - public LinkedList<AvatarAttribute> getParameters () { + public List<AvatarAttribute> getParameters () { return this.parameters; } @@ -185,7 +183,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of signals. */ - public LinkedList<AvatarSignal> getSignals () { + public List<AvatarSignal> getSignals () { return this.signals; } @@ -213,7 +211,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of return values. */ - public LinkedList<AvatarAttribute> getReturnAttributes () { + public List<AvatarAttribute> getReturnAttributes () { return this.returnAttributes; } @@ -232,13 +230,13 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of local attributes. */ - public LinkedList<AvatarAttribute> getLocalAttributes () { + public List<AvatarAttribute> getLocalAttributes () { return this.attributes; } @Override - public LinkedList<AvatarAttribute> getAttributes () { - LinkedList<AvatarAttribute> result = new LinkedList<AvatarAttribute> (); + public List<AvatarAttribute> getAttributes () { + List<AvatarAttribute> result = new LinkedList<AvatarAttribute> (); for (AvatarAttribute attr: this.attributes) result.add (attr); @@ -260,7 +258,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of methods used by this function. */ - public LinkedList<AvatarMethod> getMethods () { + public List<AvatarMethod> getMethods () { return this.methods; } @@ -310,7 +308,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param mapping * A mapping from placeholders to attributes of the block. */ - public void addAttributesToBlock (AvatarBlock block, HashMap<AvatarAttribute, AvatarAttribute> mapping) { + public void addAttributesToBlock (AvatarBlock block, Map<AvatarAttribute, AvatarAttribute> mapping) { for (AvatarAttribute attribute: this.attributes) { // TODO: We should use different attributes for different library function call String name = this.name + "__" + attribute.getName (); @@ -334,7 +332,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param returnAttributes * A list of the attributes that should receive return values. */ - public void addAttributesToMapping (HashMap<AvatarAttribute, AvatarAttribute> mapping, LinkedList<AvatarAttribute> parameters, LinkedList<AvatarAttribute> returnAttributes) { + public void addAttributesToMapping( Map<AvatarAttribute, AvatarAttribute> mapping, List<AvatarAttribute> parameters, List<AvatarAttribute> returnAttributes) { Iterator<AvatarAttribute> placeholders = this.parameters.iterator (); for (AvatarAttribute attr: parameters) mapping.put (placeholders.next (), attr); @@ -352,7 +350,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param signals * A list of the attributes that were passed as parameters. */ - public void addSignalsToMapping (HashMap<AvatarSignal, AvatarSignal> mapping, LinkedList<AvatarSignal> signals) { + public void addSignalsToMapping( Map<AvatarSignal, AvatarSignal> mapping, List<AvatarSignal> signals) { Iterator<AvatarSignal> placeholders = this.signals.iterator (); for (AvatarSignal signal: signals) mapping.put (placeholders.next (), signal); @@ -366,12 +364,12 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl /** * A mapping from placeholders to attributes of the block. */ - public HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping; + public Map<AvatarAttribute, AvatarAttribute> placeholdersMapping; /** * A mapping from placeholders to signals of the block. */ - public HashMap<AvatarSignal, AvatarSignal> signalsMapping; + public Map<AvatarSignal, AvatarSignal> signalsMapping; /** * The previous element of the state machine being created. @@ -386,7 +384,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl /** * A mapping from placeholder state machine elements to "real" elements. */ - public HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping; + public Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping; /** * The block the function call belongs to. @@ -423,7 +421,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param counter * The counter for the library function call. */ - public TranslatorArgument (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) { + public TranslatorArgument( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) { this.placeholdersMapping = placeholdersMapping; this.signalsMapping = signalsMapping; this.previousElement = previousElement; @@ -451,7 +449,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The last element of the state machine created. */ - public AvatarState translateASMWithMapping (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) { + public AvatarState translateASMWithMapping( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) { /* Create the last state */ AvatarState lastState = new AvatarState ("exit_" + this.name + "_" + counter, referenceObject); diff --git a/src/main/java/avatartranslator/AvatarMethod.java b/src/main/java/avatartranslator/AvatarMethod.java index d8769e81c0231880689d6334fea90b11f3cc337a..a8d5c41d10c0e90aa0d12cd4371f31b40141fa9c 100644 --- a/src/main/java/avatartranslator/AvatarMethod.java +++ b/src/main/java/avatartranslator/AvatarMethod.java @@ -36,13 +36,10 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; import java.util.LinkedList; +import java.util.List; /** * Class AvatarMethod @@ -55,8 +52,8 @@ public class AvatarMethod extends AvatarElement { protected boolean implementationProvided; - protected LinkedList<AvatarAttribute> parameters; - protected LinkedList<AvatarAttribute> returnParameters; + protected List<AvatarAttribute> parameters; + protected List<AvatarAttribute> returnParameters; public AvatarMethod(String _name, Object _referenceObject) { @@ -81,11 +78,11 @@ public class AvatarMethod extends AvatarElement { returnParameters.add(_attribute); } - public LinkedList<AvatarAttribute> getListOfAttributes() { + public List<AvatarAttribute> getListOfAttributes() { return parameters; } - public LinkedList<AvatarAttribute> getListOfReturnAttributes() { + public List<AvatarAttribute> getListOfReturnAttributes() { return returnParameters; } @@ -93,6 +90,7 @@ public class AvatarMethod extends AvatarElement { return AvatarTerm.isValidName (_method); } + @Override public String toString() { int cpt = 0; String ret = ""; @@ -196,20 +194,18 @@ public class AvatarMethod extends AvatarElement { } protected void setAdvancedClone(AvatarMethod am, AvatarStateMachineOwner _block) { - am.setImplementationProvided(isImplementationProvided()); - for(AvatarAttribute param: parameters) { - am.addParameter(param.advancedClone(_block)); - } - for(AvatarAttribute ret: returnParameters) { - am.addReturnParameter(ret.advancedClone(_block)); - } + am.setImplementationProvided(isImplementationProvided()); + for(AvatarAttribute param: parameters) { + am.addParameter(param.advancedClone(_block)); + } + for(AvatarAttribute ret: returnParameters) { + am.addReturnParameter(ret.advancedClone(_block)); + } } public AvatarMethod advancedClone(AvatarStateMachineOwner _block) { - AvatarMethod am = new AvatarMethod(getName(), getReferenceObject()); - setAdvancedClone(am, _block); - return am; + AvatarMethod am = new AvatarMethod(getName(), getReferenceObject()); + setAdvancedClone(am, _block); + return am; } - - } diff --git a/src/main/java/avatartranslator/AvatarSignal.java b/src/main/java/avatartranslator/AvatarSignal.java index cafc2478f817181a7e5df420a6f99a4e9db82154..1567d085d5e92a575558763b5e92a9acdc87ef41 100644 --- a/src/main/java/avatartranslator/AvatarSignal.java +++ b/src/main/java/avatartranslator/AvatarSignal.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** @@ -51,7 +47,7 @@ package avatartranslator; */ public class AvatarSignal extends AvatarMethod { - // Signa type + // Signal type public final static int IN = 0; public final static int OUT = 1; @@ -59,8 +55,9 @@ public class AvatarSignal extends AvatarMethod { public AvatarSignal(String _name, int _inout, Object _referenceObject) { super(_name, _referenceObject); + inout = _inout; - name = _name; + name = _name; } public int getInOut() { @@ -87,6 +84,7 @@ public class AvatarSignal extends AvatarMethod { return AvatarTerm.isValidName (_signal); } + @Override public String toString() { String ret = super.toString(); if (isOut()) { @@ -95,7 +93,7 @@ public class AvatarSignal extends AvatarMethod { return "in " + ret; } - + @Override public String toBasicString() { String ret = super.toBasicString(); if (isOut()) { @@ -139,18 +137,18 @@ public class AvatarSignal extends AvatarMethod { return cumul; }*/ //fin DG - public AvatarSignal advancedClone(AvatarStateMachineOwner _block) { - AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject()); - setAdvancedClone(as, _block); - return as; - } + public AvatarSignal advancedClone(AvatarStateMachineOwner _block) { + AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject()); + setAdvancedClone(as, _block); + return as; + } - public boolean isCompatibleWith(AvatarSignal _as) { - if (getInOut() == _as.getInOut()) { - return false; - } + public boolean isCompatibleWith(AvatarSignal _as) { + if (getInOut() == _as.getInOut()) { + return false; + } - return super.isCompatibleWith(_as); - } + return super.isCompatibleWith(_as); + } } diff --git a/src/main/java/avatartranslator/AvatarSimpleGuard.java b/src/main/java/avatartranslator/AvatarSimpleGuard.java index c45a25e9efc6e98bef828af42729f0112a91b431..7b2ea465a8386035a66cf4df70642f977e57fd99 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuard.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuard.java @@ -36,13 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; - /** * An AvatarSimpleGuard is an {@link AvatarGuard} that is of the form: * {@link AvatarTerm} binaryOp {@link AvatarTerm} or simply {@link AvatarTerm}, or else diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java index 2054de47883a288f756295951abef95d8b160b3f..d6aa10cb0a4c0669e59db53270b843d7a6f2a4e4 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarSimpleGuardDuo is an {@link AvatarSimpleGuard} that is of the form: @@ -85,7 +80,7 @@ public class AvatarSimpleGuardDuo extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.termA instanceof AvatarAttribute) { this.termA = attributesMapping.get(this.termA); diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java index f7ab27ac03485284847468cddebfd364321901ec..58aeefdd90e87cf1c8dfa12158c546ffab28903d 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java @@ -41,10 +41,9 @@ * Class AvatarSimpleGuardMono */ - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** @@ -75,10 +74,11 @@ public class AvatarSimpleGuardMono extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { - for (AvatarAttribute attr: attributesMapping.keySet()) - { - } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { +// for (AvatarAttribute attr: attributesMapping.keySet()) +// { +// } + if (this.term instanceof AvatarAttribute) { this.term = attributesMapping.get(this.term); diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java index 00a4340256127afcfe8c87e9f754c7192fc7d4b0..9d2bcf10a0bc03cea16cfe8df34291d32daecc77 100644 --- a/src/main/java/avatartranslator/AvatarSpecification.java +++ b/src/main/java/avatartranslator/AvatarSpecification.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; import myutil.Conversion; @@ -58,7 +54,8 @@ import java.util.ArrayList; * @author Ludovic APVRILLE */ public class AvatarSpecification extends AvatarElement { - public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"}; + + public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"}; private List<AvatarBlock> blocks; private List<AvatarRelation> relations; @@ -72,10 +69,10 @@ public class AvatarSpecification extends AvatarElement { //private AvatarBroadcast broadcast; - private LinkedList<AvatarPragma> pragmas; - private LinkedList<String> safety_pragmas; - private LinkedList<AvatarPragmaLatency> latency_pragmas; - private LinkedList<AvatarConstant> constants; + private List<AvatarPragma> pragmas; + private List<String> safety_pragmas; + private List<AvatarPragmaLatency> latency_pragmas; + private List<AvatarConstant> constants; public List<String> checkedIDs; private boolean robustnessMade = false; @@ -88,8 +85,8 @@ public class AvatarSpecification extends AvatarElement { relations = new LinkedList<AvatarRelation>(); //broadcast = new AvatarBroadcast("Broadcast", _referenceObject); pragmas = new LinkedList<AvatarPragma>(); - constants = new LinkedList<AvatarConstant>(); - safety_pragmas = new LinkedList<String>(); + constants = new LinkedList<AvatarConstant>(); + safety_pragmas = new LinkedList<String>(); latency_pragmas = new LinkedList<AvatarPragmaLatency>(); this.constants.add (AvatarConstant.FALSE); this.constants.add (AvatarConstant.TRUE); @@ -165,11 +162,11 @@ public class AvatarSpecification extends AvatarElement { } public int getNbOfASMGraphicalElements() { - int cpt = 0; - for(AvatarBlock block: blocks) { - cpt += block.getNbOfASMGraphicalElements(); - } - return cpt; + int cpt = 0; + for(AvatarBlock block: blocks) { + cpt += block.getNbOfASMGraphicalElements(); + } + return cpt; } public boolean isASynchronousSignal(AvatarSignal _as) { @@ -180,7 +177,6 @@ public class AvatarSpecification extends AvatarElement { } return false; - } //DG @@ -226,12 +222,13 @@ public class AvatarSpecification extends AvatarElement { } public void addConstant(AvatarConstant _constant) { - //Only add unique constants - if (this.getAvatarConstantWithName(_constant.getName())==null){ - constants.add(_constant); - } + //Only add unique constants + if (this.getAvatarConstantWithName(_constant.getName())==null){ + constants.add(_constant); + } } + @Override public String toString() { //Thread.currentThread().dumpStack(); StringBuffer sb = new StringBuffer("Blocks:\n"); @@ -246,11 +243,11 @@ public class AvatarSpecification extends AvatarElement { for(AvatarPragma pragma: pragmas) { sb.append("Pragma:" + pragma.toString() + "\n"); } - for (AvatarConstant constant: constants){ - sb.append("Constant:" + constant.toString() + "\n"); - } - return sb.toString(); + for (AvatarConstant constant: constants){ + sb.append("Constant:" + constant.toString() + "\n"); + } + return sb.toString(); } public AvatarBlock getBlockWithName(String _name) { @@ -263,9 +260,6 @@ public class AvatarSpecification extends AvatarElement { return null; } - - - public AvatarConstant getAvatarConstantWithName(String _name) { for(AvatarConstant constant: constants) { if (constant.getName().compareTo(_name)== 0) { @@ -275,6 +269,7 @@ public class AvatarSpecification extends AvatarElement { return null; } + public static String putAttributeValueInString(String _source, AvatarAttribute _at) { return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getDefaultInitialValue()); } @@ -283,7 +278,6 @@ public class AvatarSpecification extends AvatarElement { return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getInitialValue()); } - public void removeCompositeStates() { for(AvatarBlock block: blocks) { //TraceManager.addDev("- - - - - - - - Removing composite states of " + block); @@ -291,17 +285,14 @@ public class AvatarSpecification extends AvatarElement { } } - public void makeFullStates() { - for(AvatarBlock block: blocks) { - //TraceManager.addDev("- - - - - - - - Making full states of " + block); + for(AvatarBlock block: blocks) { block.getStateMachine().makeFullStates(block); } } public void removeRandoms() { - for(AvatarBlock block: blocks) { - //TraceManager.addDev("- - - - - - - - Removing randoms of " + block); + for(AvatarBlock block: blocks) { block.getStateMachine().removeRandoms(block); } } @@ -309,11 +300,11 @@ public class AvatarSpecification extends AvatarElement { public void removeTimers() { //renameTimers(); - LinkedList<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>(); + List<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>(); for(AvatarBlock block: blocks) { - if (block.hasTimerAttribute()) { - block.removeTimers(this, addedBlocks); - } + if (block.hasTimerAttribute()) { + block.removeTimers(this, addedBlocks); + } } for(int i=0; i<addedBlocks.size(); i++) { @@ -348,81 +339,75 @@ public class AvatarSpecification extends AvatarElement { * The size of the infinite fifo is max 1024 * and min 1 */ - - public void removeFIFOs(int _maxSizeOfInfiniteFifo) { - - LinkedList<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>(); - LinkedList<AvatarRelation> newOnes = new LinkedList<AvatarRelation>(); - - int FIFO_ID = 0; - for(AvatarRelation ar: relations) { - if (ar.isAsynchronous()) { - // Must be removed - int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO()); - TraceManager.addDev("***************************** Size of FIFO:" + size); - size = Math.max(1, size); - FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID); - } - } - - for(AvatarRelation ar: oldOnes) { - relations.remove(ar); - } - - for(AvatarRelation ar: newOnes) { - relations.add(ar); - } - } - - private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID ) { - for(int i=0; i<_ar.nbOfSignals(); i++) { - if (_ar.getSignal1(i).isIn()) { - FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); - } else { - FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); - } - } - _oldOnes.add(_ar); - return FIFO_ID; + List<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>(); + List<AvatarRelation> newOnes = new LinkedList<AvatarRelation>(); + + int FIFO_ID = 0; + for(AvatarRelation ar: relations) { + if (ar.isAsynchronous()) { + // Must be removed + int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO()); + TraceManager.addDev("***************************** Size of FIFO:" + size); + size = Math.max(1, size); + FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID); + } + } + + for(AvatarRelation ar: oldOnes) { + relations.remove(ar); + } + + for(AvatarRelation ar: newOnes) { + relations.add(ar); + } + } + + private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID ) { + for(int i=0; i<_ar.nbOfSignals(); i++) { + if (_ar.getSignal1(i).isIn()) { + FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); + } else { + FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); + } + } + _oldOnes.add(_ar); + return FIFO_ID; } - - private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID) { - // We create the new block, and the new relation towards the new block - String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID; - AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID); - blocks.add(fifoBlock); - - // We now need to create the new relation - AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject()); - newAR1.setAsynchronous(false); - newAR1.setPrivate(_ar.isPrivate()); - newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write")); - _newOnes.add(newAR1); - - AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject()); - newAR2.setAsynchronous(false); - newAR2.setPrivate(_ar.isPrivate()); - newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2); - _newOnes.add(newAR2); - - FIFO_ID ++; - return FIFO_ID; + private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID) { + // We create the new block, and the new relation towards the new block + String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID; + AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID); + blocks.add(fifoBlock); + + // We now need to create the new relation + AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject()); + newAR1.setAsynchronous(false); + newAR1.setPrivate(_ar.isPrivate()); + newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write")); + _newOnes.add(newAR1); + + AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject()); + newAR2.setAsynchronous(false); + newAR2.setPrivate(_ar.isPrivate()); + newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2); + _newOnes.add(newAR2); + + FIFO_ID ++; + return FIFO_ID; } - - public boolean areSynchronized(AvatarSignal as1, AvatarSignal as2) { - AvatarRelation ar = getAvatarRelationWithSignal(as1); - if (ar == null) { - return false; - } + AvatarRelation ar = getAvatarRelationWithSignal(as1); + if (ar == null) { + return false; + } - int index1 = ar.getIndexOfSignal(as1); - int index2 = ar.getIndexOfSignal(as2); + int index1 = ar.getIndexOfSignal(as1); + int index2 = ar.getIndexOfSignal(as2); - return (index1 == index2); + return (index1 == index2); } public AvatarRelation getAvatarRelationWithSignal(AvatarSignal _as) { diff --git a/src/main/java/avatartranslator/AvatarState.java b/src/main/java/avatartranslator/AvatarState.java index 99503b3a2abc0caeb2d923e72065765a98b47eaf..3dc8238c19c2d8dc7fa70564dbf8f0ae84d412c2 100644 --- a/src/main/java/avatartranslator/AvatarState.java +++ b/src/main/java/avatartranslator/AvatarState.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; /** diff --git a/src/main/java/avatartranslator/AvatarStateElement.java b/src/main/java/avatartranslator/AvatarStateElement.java index 65c2258a57d550df0deaf0adbd0861e067b504d7..87584cbd42e3ff09d9856322e5fc6d967bded777 100644 --- a/src/main/java/avatartranslator/AvatarStateElement.java +++ b/src/main/java/avatartranslator/AvatarStateElement.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -49,13 +46,11 @@ package avatartranslator; */ public abstract class AvatarStateElement extends AvatarStateMachineElement { - public AvatarStateElement(String _name, Object _referenceObject) { super(_name, _referenceObject); } - public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject, _isCheckable, _isChecked); + public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked ) { + super(_name, _referenceObject, _isCheckable, _isChecked ); } - } diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java index 5f837d6f1b33f2ca8a5919c1122d3581babc91ec..2170c62dfd269da1f8f4007015d39c54d0d807e8 100644 --- a/src/main/java/avatartranslator/AvatarStateMachine.java +++ b/src/main/java/avatartranslator/AvatarStateMachine.java @@ -36,14 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; import myutil.TraceManager; import java.util.*; - /** * Class AvatarStateMachine * State machine, with composite states @@ -57,15 +55,14 @@ public class AvatarStateMachine extends AvatarElement { public AvatarStateElement[] allStates; - protected LinkedList<AvatarStateMachineElement> elements; + protected List<AvatarStateMachineElement> elements; protected AvatarStartState startState; private static int ID_ELT = 0; - protected LinkedList<AvatarStateMachineElement> states; + protected List<AvatarStateMachineElement> states; protected AvatarStateMachineOwner block; - public AvatarStateMachine(AvatarStateMachineOwner _block, String _name, Object _referenceObject) { super(_name, _referenceObject); block = _block; @@ -105,7 +102,7 @@ public class AvatarStateMachine extends AvatarElement { states = null; } - public LinkedList<AvatarStateMachineElement> getListOfElements() { + public List<AvatarStateMachineElement> getListOfElements() { return elements; } @@ -159,7 +156,7 @@ public class AvatarStateMachine extends AvatarElement { return null; } - private int getSimplifiedElementsAux(HashMap<AvatarStateMachineElement, Integer> simplifiedElements, HashSet<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) { + private int getSimplifiedElementsAux( Map<AvatarStateMachineElement, Integer> simplifiedElements, Set<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) { if (visited.contains(root)) { Integer name = simplifiedElements.get(root); if (name == null) { @@ -179,12 +176,13 @@ public class AvatarStateMachine extends AvatarElement { return counter; } - public HashMap<AvatarStateMachineElement, Integer> getSimplifiedElements() { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>(); + public Map<AvatarStateMachineElement, Integer> getSimplifiedElements() { + Map<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>(); this.getSimplifiedElementsAux(simplifiedElements, new HashSet<AvatarStateMachineElement>(), startState, 0); return simplifiedElements; } + @Override public String toString() { StringBuffer sb = new StringBuffer("State machine Id=" + getID() + "\n"); @@ -204,9 +202,8 @@ public class AvatarStateMachine extends AvatarElement { addStatesToNonEmptyTransitionsBetweenNonStateToState(_block); } - private void addStatesToEmptyNonTerminalEmptyNext(AvatarBlock _b) { - ArrayList<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { if (!(elt instanceof AvatarStopState)) { if (elt.getNext(0) == null) { @@ -231,7 +228,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToNonEmptyTransitionsBetweenNonStateToState(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { @@ -273,7 +270,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToTransitionsBetweenTwoNonStates(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { @@ -319,7 +316,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToActionTransitions(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarTransition) { @@ -384,11 +381,10 @@ public class AvatarStateMachine extends AvatarElement { } - public void removeRandoms(AvatarBlock _block) { int id = 0; - ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); AvatarStateMachineElement next; AvatarStateMachineElement previous; @@ -444,7 +440,7 @@ public class AvatarStateMachine extends AvatarElement { public void removeCompositeStates(AvatarBlock _block) { //TraceManager.addDev("\n-------------- Remove composite states ---------------\n"); - LinkedList<AvatarState> lists = removeAllInternalStartStates(); + /*LinkedList<AvatarState> lists =*/ removeAllInternalStartStates(); AvatarTransition at = getAvatarCompositeTransition(); @@ -497,10 +493,10 @@ public class AvatarStateMachine extends AvatarElement { // Contains in odd index: composite state // even index: new state replacing the start state - LinkedList<AvatarState> lists = removeAllInternalStartStates(); - ArrayList<AvatarTransition> ats; - ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); - ArrayList<AvatarState> states = new ArrayList<AvatarState>(); + /*List<AvatarState> lists =*/ removeAllInternalStartStates(); + //List<AvatarTransition> ats; + List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); + List<AvatarState> states = new ArrayList<AvatarState>(); AvatarTransition at; @@ -536,7 +532,6 @@ public class AvatarStateMachine extends AvatarElement { } //removeCompositeTransition2(at, _block); - } for (AvatarStateMachineElement asme : toRemove) { @@ -678,19 +673,19 @@ public class AvatarStateMachine extends AvatarElement { } } - - private ArrayList<AvatarTransition> getAllAvatarCompositeTransitions() { - ArrayList<AvatarTransition> ats = new ArrayList<AvatarTransition>(); - for (AvatarStateMachineElement element : elements) { - if (element instanceof AvatarTransition) { - if ((isACompositeTransition((AvatarTransition) element))) { - ats.add((AvatarTransition) element); - } - } - } - - return ats; - } +// +// private List<AvatarTransition> getAllAvatarCompositeTransitions() { +// List<AvatarTransition> ats = new ArrayList<AvatarTransition>(); +// for (AvatarStateMachineElement element : elements) { +// if (element instanceof AvatarTransition) { +// if ((isACompositeTransition((AvatarTransition) element))) { +// ats.add((AvatarTransition) element); +// } +// } +// } +// +// return ats; +// } private void addFullInternalStates(AvatarState state, AvatarTransition _at) { @@ -878,160 +873,160 @@ public class AvatarStateMachine extends AvatarElement { }*/ - private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) { - /*if (_at.hasCompute()) { - AvatarState as0 = new AvatarState("splitstate0", null); - AvatarState as1 = new AvatarState("splitstate1", null); - - - - AvatarTransition at = _at.basicCloneMe(); - _at.removeAllActions(); - _at.removeAllNexts(); - _at.addNext(as); - as.addNext(at); - addElement(as); - addElement(at); - splitAvatarTransition(at); - }*/ - - TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction()); - if (_at.getNbOfAction() > 1) { - TraceManager.addDev("New split state"); - AvatarState as = new AvatarState("splitstate", null); - as.setHidden(true); - as.setState(_currentState); - AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block)); - _at.removeAllActionsButTheFirstOne(); - at.removeFirstAction(); - at.addNext(_at.getNext(0)); - _at.removeAllNexts(); - _at.addNext(as); - as.addNext(at); - addElement(as); - addElement(at); - - splitAvatarTransition(_at, _currentState); - } - - if (_at.hasDelay()) { - AvatarStateMachineElement element = getPreviousElementOf(_at); - if (element.hasInUpperState(_currentState) == true) { - if (!(element instanceof AvatarState)) { - // Must add an intermediate state - String tmp = findUniqueStateName("internalstate__"); - AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject()); - addElement(as); - as.setHidden(true); - as.setState(_currentState); - AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(atn); - element.removeNext(_at); - element.addNext(atn); - atn.addNext(as); - as.addNext(_at); - splitAvatarTransition(_at, _currentState); - } - } - } - } - - private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) { - AvatarState as; - AvatarTransition at; - LinkedList<AvatarStateMachineElement> ll; - String tmp; - - // It cannot be a start / stop state since they have been previously removed .. - if (_element instanceof AvatarActionOnSignal) { - AvatarStateMachineElement element = _element.getNext(0); - if (element instanceof AvatarTransition) { - if (!(((AvatarTransition) element).isEmpty())) { - //We need to create a new state - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - addElement(as); - as.setHidden(true); - at = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(at); - //_element -> at -> as -> element - - _element.removeNext(element); - _element.addNext(at); - - at.addNext(as); - as.addNext(element); - - at = cloneCompositeTransition(_at); - //addElement(at); - as.addNext(at); - } else { - // We see if a state follows it. Otherwise, we create one - if (!(element.getNext(0) instanceof AvatarState)) { - //We need to create a new state - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - addElement(as); - as.setHidden(true); - at = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(at); - //_element -> at -> as -> element - - _element.removeNext(element); - _element.addNext(at); - - at.addNext(as); - as.addNext(element); - - at = cloneCompositeTransition(_at); - //addElement(at); - as.addNext(at); - - } else { - //We link to this state-> will be done later - } - } - } - /*ll = getPreviousElementsOf(_element); - for(AvatarStateMachineElement element: ll) { - if (element instanceof AvatarTransition) { - // if empty transition: we do just nothing - if (!(((AvatarTransition)element).isEmpty())) { - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - as.setHidden(true); - element.removeNext(_element); - element.addNext(as); - at = new AvatarTransition("internaltransition", null); - addElement(at); - at.addNext(_element); - as.addNext(at); - addElement(as); - - at = cloneCompositeTransition(_at); - addElement(at); - as.addNext(at); - } - - } else { - // Badly formed machine! - TraceManager.addError("Badly formed sm (removing composite transition)"); - } - }*/ - - } else if (_element instanceof AvatarState) { - at = cloneCompositeTransition(_at); - //addElement(at); - _element.addNext(at); - } else if (_element instanceof AvatarTransition) { - // Nothing to do since they shall have been split before - } else { - // Nothing to do either - } - } +// private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) { +// /*if (_at.hasCompute()) { +// AvatarState as0 = new AvatarState("splitstate0", null); +// AvatarState as1 = new AvatarState("splitstate1", null); +// +// +// +// AvatarTransition at = _at.basicCloneMe(); +// _at.removeAllActions(); +// _at.removeAllNexts(); +// _at.addNext(as); +// as.addNext(at); +// addElement(as); +// addElement(at); +// splitAvatarTransition(at); +// }*/ +// +// TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction()); +// if (_at.getNbOfAction() > 1) { +// TraceManager.addDev("New split state"); +// AvatarState as = new AvatarState("splitstate", null); +// as.setHidden(true); +// as.setState(_currentState); +// AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block)); +// _at.removeAllActionsButTheFirstOne(); +// at.removeFirstAction(); +// at.addNext(_at.getNext(0)); +// _at.removeAllNexts(); +// _at.addNext(as); +// as.addNext(at); +// addElement(as); +// addElement(at); +// +// splitAvatarTransition(_at, _currentState); +// } +// +// if (_at.hasDelay()) { +// AvatarStateMachineElement element = getPreviousElementOf(_at); +// if (element.hasInUpperState(_currentState) == true) { +// if (!(element instanceof AvatarState)) { +// // Must add an intermediate state +// String tmp = findUniqueStateName("internalstate__"); +// AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject()); +// addElement(as); +// as.setHidden(true); +// as.setState(_currentState); +// AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(atn); +// element.removeNext(_at); +// element.addNext(atn); +// atn.addNext(as); +// as.addNext(_at); +// splitAvatarTransition(_at, _currentState); +// } +// } +// } +// } + +// private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) { +// AvatarState as; +// AvatarTransition at; +// LinkedList<AvatarStateMachineElement> ll; +// String tmp; +// +// // It cannot be a start / stop state since they have been previously removed .. +// if (_element instanceof AvatarActionOnSignal) { +// AvatarStateMachineElement element = _element.getNext(0); +// if (element instanceof AvatarTransition) { +// if (!(((AvatarTransition) element).isEmpty())) { +// //We need to create a new state +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// addElement(as); +// as.setHidden(true); +// at = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(at); +// //_element -> at -> as -> element +// +// _element.removeNext(element); +// _element.addNext(at); +// +// at.addNext(as); +// as.addNext(element); +// +// at = cloneCompositeTransition(_at); +// //addElement(at); +// as.addNext(at); +// } else { +// // We see if a state follows it. Otherwise, we create one +// if (!(element.getNext(0) instanceof AvatarState)) { +// //We need to create a new state +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// addElement(as); +// as.setHidden(true); +// at = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(at); +// //_element -> at -> as -> element +// +// _element.removeNext(element); +// _element.addNext(at); +// +// at.addNext(as); +// as.addNext(element); +// +// at = cloneCompositeTransition(_at); +// //addElement(at); +// as.addNext(at); +// +// } else { +// //We link to this state-> will be done later +// } +// } +// } +// /*ll = getPreviousElementsOf(_element); +// for(AvatarStateMachineElement element: ll) { +// if (element instanceof AvatarTransition) { +// // if empty transition: we do just nothing +// if (!(((AvatarTransition)element).isEmpty())) { +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// as.setHidden(true); +// element.removeNext(_element); +// element.addNext(as); +// at = new AvatarTransition("internaltransition", null); +// addElement(at); +// at.addNext(_element); +// as.addNext(at); +// addElement(as); +// +// at = cloneCompositeTransition(_at); +// addElement(at); +// as.addNext(at); +// } +// +// } else { +// // Badly formed machine! +// TraceManager.addError("Badly formed sm (removing composite transition)"); +// } +// }*/ +// +// } else if (_element instanceof AvatarState) { +// at = cloneCompositeTransition(_at); +// //addElement(at); +// _element.addNext(at); +// } else if (_element instanceof AvatarTransition) { +// // Nothing to do since they shall have been split before +// } else { +// // Nothing to do either +// } +// } // Return the first previous element met. Shall be used preferably only for transitions @@ -1045,8 +1040,8 @@ public class AvatarStateMachine extends AvatarElement { return null; } - private LinkedList<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) { - LinkedList<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>(); + private List<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) { + List<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement element : elements) { if (element.hasNext(_elt)) { ll.add(element); @@ -1083,11 +1078,11 @@ public class AvatarStateMachine extends AvatarElement { // All transitions reaching a state that has an internal start state // shall in fact go directly to the nexts of the start state - public LinkedList<AvatarState> removeAllInternalStartStates() { + public List<AvatarState> removeAllInternalStartStates() { // identify allstart state - LinkedList<AvatarStartState> ll = new LinkedList<AvatarStartState>(); + List<AvatarStartState> ll = new LinkedList<AvatarStartState>(); - LinkedList<AvatarState> removedinfos = new LinkedList<AvatarState>(); + List<AvatarState> removedinfos = new LinkedList<AvatarState>(); for (AvatarStateMachineElement element : elements) { if ((element instanceof AvatarStartState) && (element.getState() != null)) { @@ -1097,7 +1092,7 @@ public class AvatarStateMachine extends AvatarElement { } AvatarState as0; - LinkedList<AvatarStateMachineElement> le; + List<AvatarStateMachineElement> le; for (AvatarStartState as : ll) { AvatarState astate = as.getState(); if (as != null) { @@ -1163,8 +1158,8 @@ public class AvatarStateMachine extends AvatarElement { AvatarSetTimer ast; AvatarTimerOperator ato; - LinkedList<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>(); - LinkedList<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { @@ -1177,7 +1172,7 @@ public class AvatarStateMachine extends AvatarElement { news.add(aaos); // Modifying the transition just before - LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(ast); + List<AvatarStateMachineElement> previous = getPreviousElementsOf(ast); if (previous.size() == 1) { if (previous.get(0) instanceof AvatarTransition) { AvatarTransition at = (AvatarTransition) (previous.get(0)); @@ -1225,7 +1220,7 @@ public class AvatarStateMachine extends AvatarElement { removeElement(oldone); // Previous elements - LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone); + List<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone); for (AvatarStateMachineElement elt : previous) { elt.replaceAllNext(oldone, newone); } @@ -1251,7 +1246,7 @@ public class AvatarStateMachine extends AvatarElement { //TraceManager.addDev("ADDING TIMER: " + aa.getName()); // Timer is set at the entrance in the composite state - LinkedList<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at))); + List<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at))); AvatarTransition newat0, newat1; AvatarSetTimer ast; @@ -1300,7 +1295,7 @@ public class AvatarStateMachine extends AvatarElement { newat1.addNext(as); _at.setDelays("", ""); - LinkedList<AvatarStateMachineElement> elts = getElementsLeadingTo(_at); + List<AvatarStateMachineElement> elts = getElementsLeadingTo(_at); for (AvatarStateMachineElement elt : elts) { elt.removeNext(_at); @@ -1312,9 +1307,9 @@ public class AvatarStateMachine extends AvatarElement { return newat0; } - public LinkedList<AvatarTransition> findEntranceTransitionElements(AvatarState _state) { + public List<AvatarTransition> findEntranceTransitionElements(AvatarState _state) { //TraceManager.addDev("Searching for transitions entering:" + _state.getName()); - LinkedList<AvatarTransition> ll = new LinkedList<AvatarTransition>(); + List<AvatarTransition> ll = new LinkedList<AvatarTransition>(); for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarTransition) { @@ -1330,8 +1325,8 @@ public class AvatarStateMachine extends AvatarElement { return ll; } - public LinkedList<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) { - LinkedList<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>(); + public List<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) { + List<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { if (elt.hasNext(_elt)) { @@ -1340,10 +1335,8 @@ public class AvatarStateMachine extends AvatarElement { } return elts; - } - public void modifyAvatarTransition(AvatarTransition _at) { /*if ((_at.getNbOfAction() > 0) || (_at.hasCompute())) { return; @@ -1468,7 +1461,7 @@ public class AvatarStateMachine extends AvatarElement { } public void removeStopStatesOf(AvatarState _as) { - LinkedList<AvatarStopState> ll = new LinkedList<AvatarStopState>(); + List<AvatarStopState> ll = new LinkedList<AvatarStopState>(); for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarStopState) { @@ -1486,7 +1479,6 @@ public class AvatarStateMachine extends AvatarElement { } } - public String findUniqueStateName(String name) { int id = 0; boolean found; @@ -1529,8 +1521,8 @@ public class AvatarStateMachine extends AvatarElement { /* Perform BFS for AvatarLibraryFunctionCall elements. When one is found, replace it by the state machine and fix the links */ LinkedList<AvatarStateMachineElement> toVisit = new LinkedList<AvatarStateMachineElement>(); toVisit.add(this.startState); - HashSet<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>(); - HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>(); + Set<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>(); + Map<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>(); while (!toVisit.isEmpty()) { /* Get the first element of the queue */ @@ -1706,4 +1698,21 @@ public class AvatarStateMachine extends AvatarElement { } } } + + public AvatarTransition findEmptyTransition( final AvatarStateMachineElement elementSource, + final AvatarStateMachineElement elementTarget ) { + for ( final AvatarStateMachineElement element : elements ) { + if ( element instanceof AvatarTransition ) { + final AvatarTransition transition = (AvatarTransition) element; + + if ( transition.isEmpty() && !transition.getNexts().isEmpty() ) { + if ( getPreviousElementOf( transition ) == elementSource && transition.getNexts().get( 0 ) == elementTarget ) { + return transition; + } + } + } + } + + return null; + } } diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java index e93dc6a3009e831c5671be4208b69a22facd3294..90e69d16b2a05b13d94e840c7b2254d6aae9bdef 100644 --- a/src/main/java/avatartranslator/AvatarStateMachineElement.java +++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java @@ -43,6 +43,7 @@ import ui.TGComponent; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; /** @@ -54,7 +55,7 @@ import java.util.LinkedList; */ public abstract class AvatarStateMachineElement extends AvatarElement { - protected LinkedList<AvatarStateMachineElement> nexts; + protected List<AvatarStateMachineElement> nexts; private AvatarState myState; private boolean isCheckable; @@ -63,18 +64,21 @@ public abstract class AvatarStateMachineElement extends AvatarElement { private boolean isHidden = false; - public AvatarStateMachineElement(String _name, Object _referenceObject) { - super(_name, _referenceObject); - nexts = new LinkedList<AvatarStateMachineElement>(); - canBeVerified = false; + public AvatarStateMachineElement( final String _name, + final Object _referenceObject ) { + this( _name, _referenceObject, false, false ); } - public AvatarStateMachineElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject); + public AvatarStateMachineElement( String _name, + Object _referenceObject, + boolean _isCheckable, + final boolean _isChecked ) { + super( _name, _referenceObject ); + nexts = new LinkedList<AvatarStateMachineElement>(); isCheckable = _isCheckable; - isChecked = _isChecked; canBeVerified = false; + isChecked = _isChecked; } public void setAsVerifiable(boolean _canBeVerified) { @@ -107,7 +111,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement { } } - public LinkedList<AvatarStateMachineElement> getNexts() { + public List<AvatarStateMachineElement> getNexts() { return this.nexts; } @@ -203,11 +207,12 @@ public abstract class AvatarStateMachineElement extends AvatarElement { } + @Override public String toString() { return toString(null); } - public String toString(String val) { + protected String toString(String val) { String ret = getExtendedName() + " ID=" + getID(); if (myState == null) { ret += " / top level operator\n"; @@ -255,7 +260,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement { public void replaceAllNext(AvatarStateMachineElement oldone, AvatarStateMachineElement newone) { if (nexts.contains(oldone)) { - LinkedList<AvatarStateMachineElement> oldnexts = nexts; + List<AvatarStateMachineElement> oldnexts = nexts; nexts = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : oldnexts) { if (elt == oldone) { @@ -391,6 +396,4 @@ public abstract class AvatarStateMachineElement extends AvatarElement { public abstract String getNiceName(); public abstract void translate(AvatarTranslator translator, Object arg); - - } diff --git a/src/main/java/avatartranslator/AvatarStateMachineOwner.java b/src/main/java/avatartranslator/AvatarStateMachineOwner.java index c5dba3d280cbd5efd95769edd11dfb4bf38a958e..0957a6226769f3bb57da7d2022dd9ae59634bf34 100644 --- a/src/main/java/avatartranslator/AvatarStateMachineOwner.java +++ b/src/main/java/avatartranslator/AvatarStateMachineOwner.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.LinkedList; - +import java.util.List; /** * @@ -50,10 +46,14 @@ import java.util.LinkedList; * @author Florian LUGOU */ public interface AvatarStateMachineOwner { - String getName(); - AvatarStateMachine getStateMachine(); - AvatarSignal getAvatarSignalWithName(String signalName); - AvatarMethod getAvatarMethodWithName(String methodName); + + String getName(); + + AvatarStateMachine getStateMachine(); + + AvatarSignal getAvatarSignalWithName(String signalName); + + AvatarMethod getAvatarMethodWithName(String methodName); /** * Look for an attribute in the list of local attributes, parameters and return values. @@ -66,7 +66,10 @@ public interface AvatarStateMachineOwner { AvatarAttribute getAvatarAttributeWithName(String attributeName); AvatarSpecification getAvatarSpecification(); - LinkedList<AvatarAttribute> getAttributes(); + + List<AvatarAttribute> getAttributes(); + void addAttribute(AvatarAttribute attribute); + AvatarStateMachineOwner advancedClone(AvatarSpecification avspec); } diff --git a/src/main/java/avatartranslator/AvatarStopState.java b/src/main/java/avatartranslator/AvatarStopState.java index acea1bbec529acb17181700be126ee090b4de1d2..99fa3c7fb620ec15543732132649ae42719b29ac 100644 --- a/src/main/java/avatartranslator/AvatarStopState.java +++ b/src/main/java/avatartranslator/AvatarStopState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -55,8 +52,9 @@ public class AvatarStopState extends AvatarStateElement { public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) { AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject()); - astop.setAsVerifiable(canBeVerified()); - return astop; + astop.setAsVerifiable(canBeVerified()); + + return astop; //return null; } @@ -64,7 +62,7 @@ public class AvatarStopState extends AvatarStateElement { return "Stop state"; } - public void translate (AvatarTranslator translator, Object arg) { + public void translate(AvatarTranslator translator, Object arg) { translator.translateStopState (this, arg); } } diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java index 253302658ff05aecd99f9dcfab384ee7ed974f2a..96360b83b7db41ad844cd324bd2bbd1446d350ea 100644 --- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java +++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java @@ -36,11 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; +import java.io.StringReader; +import java.util.List; + import compiler.tmlparser.ParseException; import compiler.tmlparser.SimpleNode; import compiler.tmlparser.TMLExprParser; @@ -50,9 +50,6 @@ import myutil.Conversion; import myutil.IntExpressionEvaluator; import myutil.TraceManager; -import java.io.StringReader; -import java.util.ArrayList; - /** * Class AvatarSyntaxChecker @@ -62,7 +59,6 @@ import java.util.ArrayList; */ public class AvatarSyntaxChecker { - public AvatarSyntaxChecker() { } @@ -87,7 +83,7 @@ public class AvatarSyntaxChecker { BoolExpressionEvaluator bee = new BoolExpressionEvaluator(); //TraceManager.addDev("Evaluating (modified) guard:" + act); - boolean result = bee.getResultOf(act); + //boolean result = bee.getResultOf(act); if (bee.getError() != null) { //TraceManager.addDev("Error: " + bee.getError()); return -1; @@ -114,7 +110,7 @@ public class AvatarSyntaxChecker { IntExpressionEvaluator iee = new IntExpressionEvaluator(); //TraceManager.addDev("Evaluating int:" + act); - double result = iee.getResultOf(act); + //double result = iee.getResultOf(act); if (iee.getError() != null) { //TraceManager.addDev("Error: " + iee.getError()); return -1; @@ -163,7 +159,7 @@ public class AvatarSyntaxChecker { BoolExpressionEvaluator bee = new BoolExpressionEvaluator(); //TraceManager.addDev("IsValidBoolExpr Evaluating bool:" + act); - boolean result = bee.getResultOf(act); + //boolean result = bee.getResultOf(act); if (bee.getError() != null) { //TraceManager.addDev("Error: " + bee.getError()); return -1; @@ -264,7 +260,7 @@ public class AvatarSyntaxChecker { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for(String s: vars) { // is that string a variable? if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) { diff --git a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java index 15e403fe145730444caf76b39e3bf9b95e80c97b..65cf724cdb308f4416f9c244e2691711dce95982 100644 --- a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java +++ b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** diff --git a/src/main/java/avatartranslator/AvatarTerm.java b/src/main/java/avatartranslator/AvatarTerm.java index a1a3b96671587561fabd5a1b12b4036353260d68..45d9b5dfaae6b52e59a3893fca590d87388bd68b 100644 --- a/src/main/java/avatartranslator/AvatarTerm.java +++ b/src/main/java/avatartranslator/AvatarTerm.java @@ -36,17 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; +import java.util.Map; + import myutil.TraceManager; -import translator.RTLOTOSKeyword; import translator.JKeyword; - -import java.util.HashMap; +import translator.RTLOTOSKeyword; /** * Class AvatarTerm @@ -94,7 +90,7 @@ public abstract class AvatarTerm extends AvatarElement { try { // TODO: replace that by a true AvatarNumeric - int i = Integer.parseInt (toParse); + //int i = Integer.parseInt (toParse); result = new AvatarConstant (toParse, block); block.getAvatarSpecification ().addConstant ((AvatarConstant) result); return result; @@ -176,5 +172,5 @@ public abstract class AvatarTerm extends AvatarElement { * @param attributesMapping * The mapping used to replace the attributes of the term. All the attributes of the block should be present as keys. */ - public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarTermFunction.java b/src/main/java/avatartranslator/AvatarTermFunction.java index 67da1aeb40e0f4b306c4c3a33f1fc9723a1db34b..ee3b154c59c1b7d8a2977c53a57392b728a4c2aa 100644 --- a/src/main/java/avatartranslator/AvatarTermFunction.java +++ b/src/main/java/avatartranslator/AvatarTermFunction.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTermFunction @@ -111,6 +108,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction { return false; } + @Override public String toString () { return this.method.getName () + " " + this.args.toString (); } @@ -126,7 +124,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.args.replaceAttributes (attributesMapping); } } diff --git a/src/main/java/avatartranslator/AvatarTermRaw.java b/src/main/java/avatartranslator/AvatarTermRaw.java index 5ac5006c7459e4bd731302f572bf2a03a39ae592..2eb9fb21f03deaa5e1fb730eb308380278402685 100644 --- a/src/main/java/avatartranslator/AvatarTermRaw.java +++ b/src/main/java/avatartranslator/AvatarTermRaw.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTermRaw @@ -61,6 +58,7 @@ public class AvatarTermRaw extends AvatarTerm { return false; } + @Override public String toString () { return this.raw; } @@ -76,5 +74,5 @@ public class AvatarTermRaw extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java index 5413bfb2e1e02c43dd847f1fdf54fd17767b6042..257b17e8f9a9fc55d5000221fcefa80648eb3a5e 100644 --- a/src/main/java/avatartranslator/AvatarTransition.java +++ b/src/main/java/avatartranslator/AvatarTransition.java @@ -36,12 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; import java.util.Iterator; import java.util.LinkedList; - +import java.util.List; /** * Class AvatarTransition @@ -73,7 +72,7 @@ public class AvatarTransition extends AvatarStateMachineElement { private String minCompute = "", maxCompute = ""; private AvatarStateMachineOwner block; - private LinkedList<AvatarAction> actions; // actions on variable, or method call + private List<AvatarAction> actions; // actions on variable, or method call public AvatarTransition(AvatarStateMachineOwner _block, String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -135,7 +134,7 @@ public class AvatarTransition extends AvatarStateMachineElement { return false; } - public LinkedList<AvatarAction> getActions() { + public List<AvatarAction> getActions() { return this.actions; } diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java index 973c9059020bc38373c2aee81a2e9c0a60aa6bf3..4386fe06f5aa479f3d67bd7b677d09608beb90b3 100644 --- a/src/main/java/avatartranslator/AvatarTuple.java +++ b/src/main/java/avatartranslator/AvatarTuple.java @@ -36,14 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * Class AvatarTuple @@ -52,7 +49,7 @@ import java.util.LinkedList; * @author Florian LUGOU */ public class AvatarTuple extends AvatarLeftHand { - LinkedList<AvatarTerm> components; + List<AvatarTerm> components; public AvatarTuple (Object _referenceObject) { super (null, _referenceObject); @@ -96,7 +93,7 @@ public class AvatarTuple extends AvatarLeftHand { this.components.add (term); } - public LinkedList<AvatarTerm> getComponents () { + public List<AvatarTerm> getComponents () { return this.components; } @@ -104,6 +101,7 @@ public class AvatarTuple extends AvatarLeftHand { return this.toString (); } + @Override public String toString () { String result = "("; boolean first = true; @@ -142,8 +140,8 @@ public class AvatarTuple extends AvatarLeftHand { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { - LinkedList<AvatarTerm> components = new LinkedList<AvatarTerm> (); + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { + List<AvatarTerm> components = new LinkedList<AvatarTerm> (); for (AvatarTerm term: this.components) if (term instanceof AvatarAttribute) components.add (attributesMapping.get (term)); diff --git a/src/main/java/avatartranslator/AvatarUnaryGuard.java b/src/main/java/avatartranslator/AvatarUnaryGuard.java index 21c188478311f191a40529d9c0ba5d695ff3d85f..ed463e1d253e776a92bfb6eeded0ee038867ad28 100644 --- a/src/main/java/avatartranslator/AvatarUnaryGuard.java +++ b/src/main/java/avatartranslator/AvatarUnaryGuard.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarUnaryGuard @@ -98,7 +94,7 @@ public class AvatarUnaryGuard extends AvatarComposedGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.guard.replaceAttributes (attributesMapping); } } diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java index e0768d667d19fda7306dc536c89194b5b6e2d5b2..c5c5564faf23285ed974b40e7a0868ba1db67752 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java @@ -547,7 +547,7 @@ public class AvatarSimulationBlock { public void makeAction(String _action, Vector<String> _attributeValues, Vector<String> _actions) { String nameOfVar; String act; - String nameOfMethod; + //String nameOfMethod; int ind; AvatarAction action = AvatarTerm.createActionFromString(block, _action); @@ -568,12 +568,12 @@ public class AvatarSimulationBlock { } act = act.substring(0, ind); - ind = nameOfVar.indexOf("="); - if (ind != -1) { - nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length()); - } else { - nameOfMethod = nameOfVar; - } + //ind = nameOfVar.indexOf("="); +// if (ind != -1) { +// nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length()); +// } else { +// nameOfMethod = nameOfVar; +// } String[] params = act.split(","); String parameters = ""; diff --git a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java index ef6ed4cd49395b4f15f0648977e0304db7ca4be2..517040496fd1d7b60ea3d17c01c1b5245ea7373c 100644 --- a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java +++ b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java @@ -36,18 +36,14 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator.modelchecker; +import java.util.Arrays; +import java.util.List; + import avatartranslator.AvatarAttribute; import avatartranslator.AvatarBlock; -import java.util.Arrays; -import java.util.LinkedList; - /** * Class SpecificationBlock * Coding of a block @@ -74,53 +70,53 @@ public class SpecificationBlock { } public int getHash() { - return Arrays.hashCode(values); + return Arrays.hashCode(values); } public void init(AvatarBlock _block, boolean _ignoreEmptyTransitions) { - - LinkedList<AvatarAttribute> attrs = _block.getAttributes(); - //TraceManager.addDev("Nb of attributes:" + attrs.size()); - //TraceManager.addDev("in block=" + _block.toString()); - values = new int[HEADER_VALUES+attrs.size()]; - - // Initial state - if (_ignoreEmptyTransitions) { - values[STATE_INDEX] = _block.getIndexOfRealStartState(); - } else { - values[STATE_INDEX] = _block.getIndexOfStartState(); - } - - // Clock - values[CLOCKMIN_INDEX] = 0; - values[CLOCKMAX_INDEX] = 0; - - // Attributes - int cpt = HEADER_VALUES; - String initial; - for(AvatarAttribute attr: attrs) { - values[cpt++] = attr.getInitialValueInInt(); - } + List<AvatarAttribute> attrs = _block.getAttributes(); + //TraceManager.addDev("Nb of attributes:" + attrs.size()); + //TraceManager.addDev("in block=" + _block.toString()); + values = new int[HEADER_VALUES+attrs.size()]; + + // Initial state + if (_ignoreEmptyTransitions) { + values[STATE_INDEX] = _block.getIndexOfRealStartState(); + } else { + values[STATE_INDEX] = _block.getIndexOfStartState(); + } + + // Clock + values[CLOCKMIN_INDEX] = 0; + values[CLOCKMAX_INDEX] = 0; + + // Attributes + int cpt = HEADER_VALUES; + //String initial; + for(AvatarAttribute attr: attrs) { + values[cpt++] = attr.getInitialValueInInt(); + } } + @Override public String toString() { - StringBuffer sb = new StringBuffer("Hash="); - //sb.append(getHash()); - for (int i=0; i<values.length; i++) { - sb.append(" "); - sb.append(values[i]); - } - return sb.toString(); + StringBuffer sb = new StringBuffer("Hash="); + //sb.append(getHash()); + for (int i=0; i<values.length; i++) { + sb.append(" "); + sb.append(values[i]); + } + return sb.toString(); } public SpecificationBlock advancedClone() { - SpecificationBlock sb = new SpecificationBlock(); - sb.values = values.clone(); - sb.maxClock = maxClock; - return sb; + SpecificationBlock sb = new SpecificationBlock(); + sb.values = values.clone(); + sb.maxClock = maxClock; + return sb; } public boolean hasTimedTransition() { - return true; + return true; } } diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java index 45765f96438e21dc9b033676aad3018685a27d49..2b66923be93a465a562185a01b8985f798edcb32 100755 --- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java +++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java @@ -39,14 +39,41 @@ package avatartranslator.toexecutable; -import avatartranslator.*; -import common.SpecConfigTTool; -import myutil.*; - import java.io.File; -import java.util.LinkedList; +import java.util.List; import java.util.Vector; +import avatartranslator.AvatarAction; +import avatartranslator.AvatarActionAssignment; +import avatartranslator.AvatarActionOnSignal; +import avatartranslator.AvatarArithmeticOp; +import avatartranslator.AvatarAttribute; +import avatartranslator.AvatarBlock; +import avatartranslator.AvatarConstant; +import avatartranslator.AvatarLeftHand; +import avatartranslator.AvatarMethod; +import avatartranslator.AvatarRandom; +import avatartranslator.AvatarRelation; +import avatartranslator.AvatarSignal; +import avatartranslator.AvatarSpecification; +import avatartranslator.AvatarStartState; +import avatartranslator.AvatarState; +import avatartranslator.AvatarStateMachine; +import avatartranslator.AvatarStateMachineElement; +import avatartranslator.AvatarStopState; +import avatartranslator.AvatarTerm; +import avatartranslator.AvatarTermFunction; +import avatartranslator.AvatarTermRaw; +import avatartranslator.AvatarTransition; +import avatartranslator.AvatarTuple; +import avatartranslator.AvatarType; +import common.SpecConfigTTool; +import myutil.Conversion; +import myutil.FileException; +import myutil.FileUtils; +import myutil.Plugin; +import myutil.TraceManager; + /** * Class AVATAR2CPOSIX * Creation: 29/03/2011 @@ -63,7 +90,7 @@ public class AVATAR2CPOSIX { private final static String UNUSED_ATTR = "__attribute__((unused))"; private final static String GENERATED_PATH = "generated_src" + File.separator; - private final static String UNKNOWN = "UNKNOWN"; + //private final static String UNKNOWN = "UNKNOWN"; private final static String CR = "\n"; private AvatarSpecification avspec; @@ -305,8 +332,8 @@ public class AVATAR2CPOSIX { private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFile _taskFile) { String ret = ""; - LinkedList<AvatarAttribute> list; - LinkedList<AvatarAttribute> listA; + List<AvatarAttribute> list; + List<AvatarAttribute> listA; String nameMethod = _block.getName() + "__" + _am.getName(); @@ -503,8 +530,7 @@ public class AVATAR2CPOSIX { } public String makeBehaviourFromElement(AvatarBlock _block, AvatarStateMachineElement _asme, boolean firstCall) { - AvatarStateMachineElement asme0; - + //AvatarStateMachineElement asme0; if (_asme == null) { return ""; @@ -536,7 +562,7 @@ public class AVATAR2CPOSIX { ret += "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR; } - String act; + //String act; ret += makeActionsOfTransaction(_block, at); /*for(i=0; i<at.getNbOfAction(); i++) { // Must know whether this is an action or a method call @@ -649,7 +675,7 @@ public class AVATAR2CPOSIX { AvatarActionOnSignal aaos = (AvatarActionOnSignal) _asme; ret += makeSignalAction(aaos, 0, false, "", ""); AvatarSignal as = aaos.getSignal(); - AvatarRelation ar = avspec.getAvatarRelationWithSignal(as); + //AvatarRelation ar = avspec.getAvatarRelationWithSignal(as); ret += executeOneRequest("__req0"); ret += traceRequest(); } diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java index 932a74073f476b904837c299c1bcb87c231b266c..a6f3ba1905b04256836ae85d99aa63fbb09074bb 100755 --- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java +++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.toproverif; import avatartranslator.*; @@ -62,6 +59,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Map; /** * Class AVATAR2ProVerif @@ -228,7 +226,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { return result; } - protected static String translateTerm (AvatarTerm term, HashMap<AvatarAttribute, Integer> attributeCmp) { + protected static String translateTerm (AvatarTerm term, Map<AvatarAttribute, Integer> attributeCmp) { if (term instanceof AvatarAttribute) { AvatarAttribute attr = (AvatarAttribute) term; if (attributeCmp != null) { @@ -341,7 +339,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { // Supported guards: a == b, not(a == b), g1 and g2, g1 or g2 // -> transformed into a = b, a <> b, g1 && g2, g1 || g2 // Returns nulls otherwise - private static String translateGuard (AvatarGuard _guard, HashMap<AvatarAttribute, Integer> attributeCmp) { + private static String translateGuard (AvatarGuard _guard, Map<AvatarAttribute, Integer> attributeCmp) { TraceManager.addDev(_guard.toString()); if (_guard == null || _guard instanceof AvatarGuardEmpty) return null; @@ -501,7 +499,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { List<AvatarBlock> blocks = this.avspec.getListOfBlocks(); // String action = "("; for(AvatarBlock block: blocks) { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null) simplifiedElements.put (block.getStateMachine ().getStartState (), new Integer (0)); @@ -734,7 +732,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { lastInstr = lastInstr.setNextInstr (paral); for(AvatarBlock block: blocks) { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null) paral.addInstr (new ProVerifProcCall (block.getName () + ATTR_DELIM + "0", new ProVerifVar[] {new ProVerifVar ("sessionID", "bitstring")})); @@ -944,7 +942,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { lastInstr = lastInstr.setNextInstr (new ProVerifProcRaw (tmp + ")))")); // Generate a new process for every simplified element of the block's state machine - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (ab.getStateMachine ().getStartState ()) == null) simplifiedElements.put (ab.getStateMachine ().getStartState (), new Integer (0)); @@ -993,8 +991,8 @@ public class AVATAR2ProVerif implements AvatarTranslator { class ProVerifTranslatorParameter { AvatarBlock block; ProVerifProcInstr lastInstr; - HashMap<AvatarStateMachineElement, Integer> simplifiedElements; - HashMap<AvatarAttribute, Integer> attributeCmp; + Map<AvatarStateMachineElement, Integer> simplifiedElements; + Map<AvatarAttribute, Integer> attributeCmp; AvatarStateMachineElement lastASME; } @@ -1200,7 +1198,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { if (rightHand instanceof AvatarTermFunction) { // If it's a function call String name = ((AvatarTermFunction) rightHand).getMethod ().getName (); - LinkedList<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents (); + List<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents (); if (name.equals ("concat2") || name.equals ("concat3") || name.equals ("concat4")) { // If it's a concat function, just use tuples @@ -1279,7 +1277,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { if (name.equals ("get2") || name.equals ("get3") || name.equals ("get4")) { // If the function called is get[234] - LinkedList<AvatarTerm> args = action.getArgs ().getComponents (); + List<AvatarTerm> args = action.getArgs ().getComponents (); int index = (int) name.charAt (3) - 48; boolean ok = true; @@ -1393,7 +1391,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { } _lastInstr = _lastInstr.setNextInstr (new ProVerifProcIn (CH_MAINCH, new ProVerifVar[] {new ProVerifVar ("choice" + ATTR_DELIM + _asme.getName (), "bitstring")})); - HashMap<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp; + Map<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp; for (int i=0; i<nbOfNexts-1; i++) { String choice = "choice" + ATTR_DELIM + _asme.getName () + ATTR_DELIM + i; ProVerifProcITE ite = new ProVerifProcITE ("choice" + ATTR_DELIM + _asme.getName () + " = " + choice); diff --git a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java index c7da1aa5f675c38a8990891252105be5add4b7b2..2f30039703dcc8b81e3913a9f04a0b001229a26b 100755 --- a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java +++ b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.touppaal; import avatartranslator.*; @@ -53,10 +50,12 @@ import uppaaldesc.UPPAALSpec; import uppaaldesc.UPPAALTemplate; import uppaaldesc.UPPAALTransition; -import java.awt.*; +import java.awt.Point; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * Class AVATAR2UPPAAL @@ -74,20 +73,20 @@ public class AVATAR2UPPAAL { private UPPAALSpec spec; private AvatarSpecification avspec; - private LinkedList<CheckingError> warnings; + private List<CheckingError> warnings; private int currentX, currentY; - private java.util.List<String> gatesNotSynchronized; // String - private java.util.List<String> gatesSynchronized; - private java.util.List<AvatarRelation> gatesSynchronizedRelations; - private java.util.List<String> gatesAsynchronized; - private java.util.List<String> unoptStates; + private List<String> gatesNotSynchronized; // String + private List<String> gatesSynchronized; + private List<AvatarRelation> gatesSynchronizedRelations; + private List<String> gatesAsynchronized; + private List<String> unoptStates; private int nbOfIntParameters, nbOfBooleanParameters; - private Hashtable <AvatarStateMachineElement, UPPAALLocation> hash; - private Hashtable <AvatarStateMachineElement, UPPAALLocation> hashChecking; - private Hashtable <String, String> translateString; + private Map<AvatarStateMachineElement, UPPAALLocation> hash; + private Map<AvatarStateMachineElement, UPPAALLocation> hashChecking; + private Map<String, String> translateString; public final static int STEP_X = 5; public final static int STEP_Y = 70; public final static int STEP_LOOP_X = 150; @@ -150,22 +149,22 @@ public class AVATAR2UPPAAL { // } - - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } /*public RelationTIFUPPAAL getRelationTIFUPPAAL () { return table; }*/ - public Hashtable <String, String> getHash(){ - return translateString; + public Map<String, String> getHash(){ + return translateString; } + public UPPAALSpec generateUPPAAL(boolean _debug, boolean _optimize) { warnings = new LinkedList<CheckingError>(); hash = new Hashtable<AvatarStateMachineElement, UPPAALLocation>(); hashChecking = new Hashtable<AvatarStateMachineElement, UPPAALLocation>(); - translateString = new Hashtable<String, String>(); + translateString = new Hashtable<String, String>(); spec = new UPPAALSpec(); avspec.removeCompositeStates(); @@ -173,16 +172,17 @@ public class AVATAR2UPPAAL { avspec.removeTimers(); //avspec.removeFIFOs(2); avspec.makeRobustness(); - java.util.List<String> uppaalPragmas = avspec.getSafetyPragmas(); - unoptStates= new LinkedList<String>(); - for (String s: uppaalPragmas){ - String[] split = s.split("[^a-zA-Z0-9\\.]"); - for (String t:split){ - if (t.contains(".")){ - unoptStates.add(t); - } - } - } + List<String> uppaalPragmas = avspec.getSafetyPragmas(); + unoptStates= new LinkedList<String>(); + + for (String s: uppaalPragmas){ + String[] split = s.split("[^a-zA-Z0-9\\.]"); + for (String t:split){ + if (t.contains(".")){ + unoptStates.add(t); + } + } + } //TraceManager.addDev("-> Spec:" + avspec.toString()); @@ -582,7 +582,7 @@ public class AVATAR2UPPAAL { TraceManager.addDev("************************* NULL PREVIOUS !!!!!!!*****************"); } //TraceManager.addDev("Linking myself = " + _elt + " to " + loc); - UPPAALLocation locc = hashChecking.get(_elt); + //UPPAALLocation locc = hashChecking.get(_elt); if (_elt != null) { //TraceManager.addDev("In hash:" + _elt + " in location:" + locc); } @@ -1059,7 +1059,7 @@ public class AVATAR2UPPAAL { //TraceManager.addDev("Method name:" + mc); setSynchronization(_tr, mc); - LinkedList<AvatarTerm> arguments = action.getArgs ().getComponents (); + List<AvatarTerm> arguments = action.getArgs ().getComponents (); for(AvatarTerm arg: arguments) { if (!(arg instanceof AvatarAttribute)) continue; diff --git a/src/main/java/compiler/tmlparser/SimpleNode.java b/src/main/java/compiler/tmlparser/SimpleNode.java index dbe16a462639bc6ae950a2ca2525fd6fc29b9ffa..13759d2b13e2dcfc1e4e7621b395202ae4215dfa 100755 --- a/src/main/java/compiler/tmlparser/SimpleNode.java +++ b/src/main/java/compiler/tmlparser/SimpleNode.java @@ -36,21 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package compiler.tmlparser; - - - - - /* Has been partially generated by: JJTree */ /* Generated By:JJTree: Do not edit this line. SimpleNode.java */ import java.util.ArrayList; +import java.util.List; /** @@ -88,6 +80,7 @@ public class SimpleNode implements Node { } public void jjtSetParent(Node n) { parent = n; } + public Node jjtGetParent() { return parent; } public void jjtAddChild(Node n, int i) { @@ -116,6 +109,7 @@ public class SimpleNode implements Node { you need to do. */ //public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id]; } + @Override public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id] + "/" + kind + "/" + value; } @@ -136,13 +130,13 @@ public class SimpleNode implements Node { } } - public ArrayList<String> getVariables() { - ArrayList<String> list = new ArrayList<String>(); + public List<String> getVariables() { + List<String> list = new ArrayList<String>(); getVariables(list); return list; } - public void getVariables(ArrayList<String> list) { + public void getVariables( List<String> list) { String s; s = TMLExprParserTreeConstants.jjtNodeName[id]; diff --git a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java index 3ef5b9b2ea6885d86bd90121714adef4bad1b78e..d1a5a5c5ee0e18f9ac6664d4bd3f29facffd7a24 100755 --- a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java +++ b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java @@ -36,14 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ddtranslatorSoclib.toSoclib; -import avatartranslator.*; -import ddtranslatorSoclib.AvatarRAM; +import java.io.File; +import java.util.List; +import java.util.Vector; + +import avatartranslator.AvatarAction; +import avatartranslator.AvatarActionAssignment; +import avatartranslator.AvatarActionOnSignal; +import avatartranslator.AvatarAttribute; +import avatartranslator.AvatarBlock; +import avatartranslator.AvatarMethod; +import avatartranslator.AvatarRandom; +import avatartranslator.AvatarRelation; +import avatartranslator.AvatarSignal; +import avatartranslator.AvatarSpecification; +import avatartranslator.AvatarStartState; +import avatartranslator.AvatarState; +import avatartranslator.AvatarStateMachine; +import avatartranslator.AvatarStateMachineElement; +import avatartranslator.AvatarStopState; +import avatartranslator.AvatarTransition; +import avatartranslator.AvatarType; import ddtranslatorSoclib.AvatarCoproMWMR; +import ddtranslatorSoclib.AvatarRAM; import ddtranslatorSoclib.AvatarTask; import ddtranslatorSoclib.AvatarddSpecification; import ddtranslatorSoclib.toTopCell.TopCellGenerator; @@ -52,11 +69,6 @@ import myutil.FileException; import myutil.FileUtils; import myutil.TraceManager; -import java.io.File; -import java.util.LinkedList; -import java.util.List; -import java.util.Vector; - /** * Class AVATAR2CSOCLIB * Creation: 01/07/2014 @@ -114,8 +126,7 @@ public class TasksAndMainGenerator { } public void saveInFiles(String path) throws FileException { - - System.err.println("ok"); + System.err.println("ok"); TraceManager.addDev("Generating files"); if (mainFile != null) { @@ -125,8 +136,8 @@ public class TasksAndMainGenerator { } for(TaskFileSoclib taskFile: taskFiles) { - FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2)); - FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2)); + FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2)); + FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2)); } // Standard Makefile @@ -164,11 +175,11 @@ public class TasksAndMainGenerator { makeMainMutex(); - makeSynchronousChannels(); + makeSynchronousChannels(); makeAsynchronousChannels(); - makeThreadsInMain(debug); + makeThreadsInMain(debug); } public void makeMainMutex() { @@ -185,17 +196,17 @@ public class TasksAndMainGenerator { //for(AvatarRelation ar: avspec.getRelations()) { for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { - - for(AvatarRelation ar: avspec.getRelations()) { - - for(int i=0; i<ar.nbOfSignals() ; i++) { - - mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); - mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel - d++; - } - } - } + + for(AvatarRelation ar: avspec.getRelations()) { + + for(int i=0; i<ar.nbOfSignals() ; i++) { + + mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); + mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel + d++; + } + } + } mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 ); mainFile.appendToBeforeMainCode("typedef struct mwmr_s mwmr_t;" + CR2); @@ -204,143 +215,142 @@ public class TasksAndMainGenerator { mainFile.appendToMainCode("pthread_attr_t *attr_t = malloc(sizeof(pthread_attr_t));" +CR); mainFile.appendToMainCode("pthread_attr_init(attr_t);" + CR ); mainFile.appendToMainCode("pthread_mutex_init(&__mainMutex, NULL);" +CR2); - mainFile.appendToMainCode("int sizeParams;" +CR2); //DG 13.06. + mainFile.appendToMainCode("int sizeParams;" +CR2); //DG 13.06. } public void makeSynchronousChannels() { - int i=0; int j=0; + int i=0; //int j=0; // Create synchronous channel signals mainFile.appendToHCode("/* Synchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR); mainFile.appendToMainCode("/* Synchronous channels */" + CR); - k=0; + k=0; for(AvatarRelation ar: avspec.getRelations()) { - - if (!ar.isAsynchronous()) { - - - for(i=0; i<ar.nbOfSignals() ; i++) { - ar.setId(i); - mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); + if (!ar.isAsynchronous()) { - mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR); + for(i=0; i<ar.nbOfSignals() ; i++) { + ar.setId(i); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); - + mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); - AvatarSignal sig = ar.getSignal1(i); - int nbParams= sig.getNbParams(); - - int sizeParams = 0; - - if (nbParams>0) - mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - - else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2); + mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR); - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); - - if(sig.isIn()){ - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR); - } + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); - if(sig.isOut()){ - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR); - } - /* init because mutekh initializer does not work for this */ - mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + AvatarSignal sig = ar.getSignal1(i); + int nbParams= sig.getNbParams(); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR); - - mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); - - mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); - - mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); - k++; - - } - } - } - } + //int sizeParams = 0; - public void makeAsynchronousChannels() { - if (avspec.ASynchronousExist()){ - // Create an asynchronous channel per relation/signal - mainFile.appendToHCode("/* Asynchronous channels */" + CR); - mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); - mainFile.appendToMainCode("/* Asynchronous channels */" + CR); - int j=0; - for(AvatarRelation ar: avspec.getRelations()) { - - if (ar.isAsynchronous()) { - for(int i=0; i<ar.nbOfSignals() ; i++) { + if (nbParams>0) + mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - ar.setId(i); - mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); + else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR); - mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); + mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2); - - AvatarSignal sig = ar.getSignal1(i); - int nbParams= sig.getNbParams(); - - if (nbParams>0) - mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR); - - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); - if (ar.isBlocking()) { - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR); - } else { - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR); - } - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR); - - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); - - /* force init because mutekh initializer does not work her */ - mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR); - mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); - mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); - k++; - } - } - } - } + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); + + if(sig.isIn()){ + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR); + } + + if(sig.isOut()){ + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR); + } + + /* init because mutekh initializer does not work for this */ + mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR); + + mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); + + mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); + + mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); + k++; + + } + } + } + } + + public void makeAsynchronousChannels() { + if (avspec.ASynchronousExist()){ + // Create an asynchronous channel per relation/signal + mainFile.appendToHCode("/* Asynchronous channels */" + CR); + mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); + mainFile.appendToMainCode("/* Asynchronous channels */" + CR); + //int j=0; + for(AvatarRelation ar: avspec.getRelations()) { + + if (ar.isAsynchronous()) { + for(int i=0; i<ar.nbOfSignals() ; i++) { + + ar.setId(i); + mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); + + mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); + + + AvatarSignal sig = ar.getSignal1(i); + int nbParams= sig.getNbParams(); + + if (nbParams>0) + mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); + else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR); + + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); + if (ar.isBlocking()) { + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR); + } else { + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR); + } + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR); + + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); + + /* force init because mutekh initializer does not work her */ + mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR); + mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); + mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); + k++; + } + } + } + } } //DG 19.09. need this for main program generation @@ -356,7 +366,7 @@ public class TasksAndMainGenerator { return -1; }*/ - public int FindCPUidFromTask(AvatarBlock block){ + public int findCPUidFromTask(AvatarBlock block){ List<AvatarTask> tasks = avddspec.getAllMappedTask(); for (AvatarTask task : tasks){ @@ -370,41 +380,40 @@ public class TasksAndMainGenerator { /* DG 7.7. give CPUid of outer block to block created e.g. for a timer */ public void makeTasks() { - for(AvatarBlock block: avspec.getListOfBlocks()) { - if (FindCPUidFromTask(block)!=-1) - makeTask(block,FindCPUidFromTask(block)); - else { - //AvatarBlock father = block.getFather(); - //if(father!=null){ //DG bug: donne null pointer - //makeTask(block,FindCPUidFromTask(father)); - makeTask(block,0); - - - } - //DG 19.09. found coproc do not make task - - } - } + for(AvatarBlock block: avspec.getListOfBlocks()) { + if (findCPUidFromTask(block)!=-1) + makeTask(block,findCPUidFromTask(block)); + else { + //AvatarBlock father = block.getFather(); + //if(father!=null){ //DG bug: donne null pointer + //makeTask(block,FindCPUidFromTask(father)); + makeTask(block,0); + + } + //DG 19.09. found coproc do not make task + + } + } public void makeTask(AvatarBlock block , int cpuId) { - TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId); - - if (includeUserCode) { - String tmp = block.getGlobalCode(); - if (tmp != null) { - taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR); - } - } - defineAllSignal(block,taskFile); + TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId); + + if (includeUserCode) { + String tmp = block.getGlobalCode(); + if (tmp != null) { + taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR); + } + } + defineAllSignal(block,taskFile); - defineAllStates(block, taskFile); + defineAllStates(block, taskFile); - defineAllMethods(block, taskFile); + defineAllMethods(block, taskFile); - makeMainFunction(block, taskFile); + makeMainFunction(block, taskFile); - taskFiles.add(taskFile); + taskFiles.add(taskFile); } // --------------------------------------------------------- @@ -457,8 +466,8 @@ public class TasksAndMainGenerator { private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFileSoclib _taskFile) { String ret = ""; - LinkedList<AvatarAttribute> list; - LinkedList<AvatarAttribute> listA; + List<AvatarAttribute> list; + List<AvatarAttribute> listA; String nameMethod = _block.getName() + "__" +_am.getName(); diff --git a/src/main/java/proverifspec/ProVerifResultTrace.java b/src/main/java/proverifspec/ProVerifResultTrace.java index 65d43fcb0fa9480003e7963b9ba60be696bdda0e..80cc8c1284f605d2463bd2f0192d0c275ba21910 100644 --- a/src/main/java/proverifspec/ProVerifResultTrace.java +++ b/src/main/java/proverifspec/ProVerifResultTrace.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package proverifspec; import avatartranslator.toproverif.AVATAR2ProVerif; @@ -51,6 +48,8 @@ import java.io.BufferedWriter; import java.io.IOException; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -66,10 +65,10 @@ public class ProVerifResultTrace { private static Pattern blockNamePattern; private static Pattern attrPattern; - private LinkedList<ProVerifResultTraceStep> trace; + private List<ProVerifResultTraceStep> trace; private StringBuilder buffer; - private LinkedList<String> proverifProcess; - private HashMap<String, Integer> attackerNamesMap; + private List<String> proverifProcess; + private Map<String, Integer> attackerNamesMap; static @@ -192,7 +191,7 @@ public class ProVerifResultTrace { } } - public ProVerifResultTrace(LinkedList<String> proverifProcess) + public ProVerifResultTrace(List<String> proverifProcess) { this.proverifProcess = proverifProcess; this.trace = new LinkedList<ProVerifResultTraceStep> (); @@ -200,7 +199,7 @@ public class ProVerifResultTrace { this.buffer = null; } - public LinkedList<ProVerifResultTraceStep> getTrace() + public List<ProVerifResultTraceStep> getTrace() { return this.trace; } @@ -272,7 +271,7 @@ public class ProVerifResultTrace { else { // TODO: is it possible that subtype is itself composed ? - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther()); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther()); if (types.size() > 1) attrPart = attrName[0] + "." + attrName[1]; else diff --git a/src/main/java/tmltranslator/TMLActivity.java b/src/main/java/tmltranslator/TMLActivity.java index e1fa1378e72668a0417a43339089d70b198d473d..f131566e7ef1c6b2867dec730eb5097fa2c07558 100755 --- a/src/main/java/tmltranslator/TMLActivity.java +++ b/src/main/java/tmltranslator/TMLActivity.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator; import myutil.Conversion; @@ -46,7 +43,6 @@ import myutil.TraceManager; import java.util.Vector; - /** * Class TMLActivity * Creation: 23/11/2005 @@ -571,13 +567,13 @@ public class TMLActivity extends TMLElement { } public String toXML() { - String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n"); - for(TMLActivityElement elt: elements) { - s += elt.toXML(elements); - } - s += "</ACTIVITY>\n"; - return s; + String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n"); + + for(TMLActivityElement elt: elements) { + s += elt.toXML(elements); + } + s += "</ACTIVITY>\n"; + + return s; } - - } diff --git a/src/main/java/tmltranslator/TMLCP.java b/src/main/java/tmltranslator/TMLCP.java index fc2f87bd8749668a79411490550f44d7d00de29b..f4510692a2f40d1a3cbcbbdbaf10ac3300e8a0d7 100755 --- a/src/main/java/tmltranslator/TMLCP.java +++ b/src/main/java/tmltranslator/TMLCP.java @@ -37,7 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package tmltranslator; import myutil.TraceManager; @@ -329,15 +328,16 @@ public class TMLCP extends TMLElement { } } - public void splitADs() { - - ArrayList<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>(); - all.addAll(mainCP.splitADs()); - for (TMLCPActivityDiagram diag : otherCPs) { - all.addAll(diag.splitADs()); - } - otherCPs.addAll(all); - } + // Issue #69; Unused TMLCPJunction +// public void splitADs() { +// +// List<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>(); +// all.addAll(mainCP.splitADs()); +// for (TMLCPActivityDiagram diag : otherCPs) { +// all.addAll(diag.splitADs()); +// } +// otherCPs.addAll(all); +// } public TMLCPElement getNonConnectedElement() { TMLCPElement elt; @@ -378,10 +378,10 @@ public class TMLCP extends TMLElement { List<TMLCPActivityDiagram> CPlist = new ArrayList<TMLCPActivityDiagram>(); List<TMLCPSequenceDiagram> SDlist = new ArrayList<TMLCPSequenceDiagram>(); - List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>(); + // List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>(); TMLCPActivityDiagram tempCP; TMLCPSequenceDiagram tempSD; - TMLAttribute attr; + // TMLAttribute attr; int i, j, k; TraceManager.addDev("The data structure contains " + getNumSections() + " CP sections (AD) and " + @@ -450,22 +450,22 @@ public class TMLCP extends TMLElement { TraceManager.addDev("Sequence Diagram n. " + (i+1) + ": " + tempSD.getName() + "\n"); //Print Variables - listAttributes = tempSD.getAttributes(); + //listAttributes = tempSD.getAttributes(); //TraceManager.addDevf("\tAttributes:\n"); - for (j = 0; j < listAttributes.size(); j++) { - attr = listAttributes.get(j); + // for (j = 0; j < listAttributes.size(); j++) { + // attr = listAttributes.get(j); //TraceManager.addDev("\t\t %s\t%s\t%s\n", attr.getName(), attr.getType(), attr.getInitialValue()); - } + //} //Print Instances - List<TMLSDInstance> listInstances; - TMLSDInstance inst; - listInstances = tempSD.getInstances(); - TraceManager.addDev("\tInstances:"); - for (j = 0; j < listInstances.size(); j++) { - inst = listInstances.get(j); + //List<TMLSDInstance> listInstances; + //TMLSDInstance inst; + //listInstances = tempSD.getInstances(); + //TraceManager.addDev("\tInstances:"); + // for (j = 0; j < listInstances.size(); j++) { + // inst = listInstances.get(j); //TraceManager.addDev("\t\t" + inst.getName() + "\n"); - } + //} //Print Messages List<TMLSDMessage> listMessages; diff --git a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java index ef21bc989f8f434470c23d51e90c0ca8a9f4b9ee..acf7e2bc222c2c996cba9912fe0ea57cf0f107f3 100755 --- a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java +++ b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java @@ -586,11 +586,11 @@ public class TMLCPSyntaxChecking { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); //Do not raise a syntax error when variables appear in actions - ArrayList<String> boolAttrNamesList = new ArrayList<String>(); //a list of the boolean attribute names - ArrayList<String> natAttrNamesList = new ArrayList<String>(); //a list of the natural attribute names + List<String> boolAttrNamesList = new ArrayList<String>(); //a list of the boolean attribute names + List<String> natAttrNamesList = new ArrayList<String>(); //a list of the natural attribute names for (TMLAttribute attr : attributes) { if (attr.isNat()) { natAttrNamesList.add(attr.getName()); diff --git a/src/main/java/tmltranslator/TMLChoice.java b/src/main/java/tmltranslator/TMLChoice.java index b4c8703865807b0c15385f209a79455a1975a234..9a2f7aa31caeb755effb7fcc1dc08faf3de9560e 100755 --- a/src/main/java/tmltranslator/TMLChoice.java +++ b/src/main/java/tmltranslator/TMLChoice.java @@ -36,14 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator; import myutil.Conversion; import java.util.ArrayList; +import java.util.List; /** * Class TMLChoice @@ -52,7 +50,7 @@ import java.util.ArrayList; * @author Ludovic APVRILLE */ public class TMLChoice extends TMLActivityElement{ - private ArrayList<String> guards; + private List<String> guards; public TMLChoice(String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -331,13 +329,11 @@ public class TMLChoice extends TMLActivityElement{ } } - public String customExtraToXML() { - String g = ""; - for(String s: guards) { - g += s + ";"; - } - return " guards=\"" + g + "\" "; + String g = ""; + for(String s: guards) { + g += s + ";"; + } + return " guards=\"" + g + "\" "; } - } diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java index c1beb52121a7413ec1daadc682ab8b080d06a21e..0fe1dfd17a0dfd29a5bd8d9575657590219ba9e1 100755 --- a/src/main/java/tmltranslator/TMLSyntaxChecking.java +++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java @@ -50,6 +50,7 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; /** @@ -608,7 +609,7 @@ public class TMLSyntaxChecking { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for (String s : vars) { addError(t, elt, UNDECLARED_VARIABLE + " :" + s + " in expression " + action, TMLError.ERROR_BEHAVIOR); } diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java index 7cdd59a3c08fb1ae8184191861b4a61705474339..4076aa65b88407bf149640dd1c9a4459c874c1e8 100755 --- a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java +++ b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java @@ -37,9 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator.tmlcp; import tmltranslator.TMLCP; @@ -314,118 +311,119 @@ public class TMLCPActivityDiagram extends TMLElement { } } + // Issue #69; Unused TMLCPJunction // The splitting works only if there is no other operations than sequences and references to ADs/SDs // between forks and joins // The function removes junctions, and creates one new AD per junction - public Collection<TMLCPActivityDiagram> splitADs() { - int id = 0; - TMLCPActivityDiagram diag; - - //TraceManager.addDev("Splitting AD: " + getName()); - - // For each junction, we create a new AD - ArrayList<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>(); - ArrayList<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>(); - ArrayList<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>(); - HashMap<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>(); - for(TMLCPElement elt: elements) { - if (elt instanceof TMLCPJunction) { - junctions.add((TMLCPJunction)elt); - diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject); - TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject()); - diag.setStartElement(start); - diag.addTMLCPElement(start); - refs.put((TMLCPJunction)elt, diag); - //TraceManager.addDev("Adding a new diag named: " + diag.getName()); - } - } - - // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts - for(TMLCPJunction junction: junctions) { - TMLCPActivityDiagram toAD = refs.get(junction); - //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); - //refsAD.add(ref); - elements.remove(junction); - //elements.add(ref); - - // Replacing next to junction by new refs - int index; - // int ID = 0; - for(TMLCPElement elt: elements) { - while(((index = elt.getNextElements().indexOf(junction)) != -1)) { - //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject()); - //ID ++; - TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); - //ID ++; - refsAD.add(ref); - //elements.add(ref); - elt.setNextElementAtIndex(ref, index); - /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject()); - elements.add(stop); - ref.addNextElement(stop);*/ - } - //ref.setNexts(junction.getNextElements()); - } - } - - // Removing nexts in new refs, and putting a stop - for(TMLCPRefAD ref: refsAD) { - ref.clearNexts(); - elements.add(ref); - TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject()); - elements.add(stop); - ref.addNextElement(stop); - } - - // Moving elements from old AD to split ADs - //int cpt = 0; - for(TMLCPJunction junction: junctions) { - diag = refs.get(junction); - //TMLCPRefAD refAD = refsAD.get(cpt); - //cpt++; - - // To be modified-> add elements from RefADs - // Also, avoid to add already met elements - addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved); - } - - // Removing elements from main diagram - for(TMLCPElement elt: toBeRemoved) { - elements.remove(elt); - } - - - - // Returns new elements - return refs.values(); - } - - private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) { - if (originInOld.getNextElements() == null) { - return; - } - - for(TMLCPElement elt: originInOld.getNextElements()) { - //TraceManager.addDev("Exploring elt (0):" + elt.getName()); - if (elt instanceof TMLCPJunction) { - // Must replace the junction by a ref to an AD - TMLCPActivityDiagram toAD = refs.get(elt); - TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject()); - newDiag.addTMLCPElement(ref); - originInNew.setNextElement(ref); - } else { - //TraceManager.addDev("Exploring elt (1):" + elt.getName()); - if (originInOld != originInNew) { - originInNew.addNextElement(elt); - } - if (!newDiag.contains(elt)) { - newDiag.addTMLCPElement(elt); - toBeRemoved.add(elt); - addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved); - } - } - } - } +// private Collection<TMLCPActivityDiagram> splitADs() { +// int id = 0; +// TMLCPActivityDiagram diag; +// +// //TraceManager.addDev("Splitting AD: " + getName()); +// +// // For each junction, we create a new AD +//// List<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>(); +// List<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>(); +// List<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>(); +//// Map<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>(); +// for(TMLCPElement elt: elements) { +// if (elt instanceof TMLCPJunction) { +// junctions.add((TMLCPJunction)elt); +// diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject); +// TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject()); +// diag.setStartElement(start); +// diag.addTMLCPElement(start); +// refs.put((TMLCPJunction)elt, diag); +// //TraceManager.addDev("Adding a new diag named: " + diag.getName()); +// } +// } +// +// // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts +// for(TMLCPJunction junction: junctions) { +// TMLCPActivityDiagram toAD = refs.get(junction); +// //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); +// //refsAD.add(ref); +// elements.remove(junction); +// //elements.add(ref); +// +// // Replacing next to junction by new refs +// int index; +// // int ID = 0; +// for(TMLCPElement elt: elements) { +// while(((index = elt.getNextElements().indexOf(junction)) != -1)) { +// //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject()); +// //ID ++; +// TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); +// //ID ++; +// refsAD.add(ref); +// //elements.add(ref); +// elt.setNextElementAtIndex(ref, index); +// /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject()); +// elements.add(stop); +// ref.addNextElement(stop);*/ +// } +// //ref.setNexts(junction.getNextElements()); +// } +// } +// +// // Removing nexts in new refs, and putting a stop +// for(TMLCPRefAD ref: refsAD) { +// ref.clearNexts(); +// elements.add(ref); +// TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject()); +// elements.add(stop); +// ref.addNextElement(stop); +// } +// +// // Moving elements from old AD to split ADs +// //int cpt = 0; +// for(TMLCPJunction junction: junctions) { +// diag = refs.get(junction); +// //TMLCPRefAD refAD = refsAD.get(cpt); +// //cpt++; +// +// // To be modified-> add elements from RefADs +// // Also, avoid to add already met elements +// addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved); +// } +// +// // Removing elements from main diagram +// for(TMLCPElement elt: toBeRemoved) { +// elements.remove(elt); +// } +// +// +// +// // Returns new elements +// return refs.values(); +// } + +// private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) { +// if (originInOld.getNextElements() == null) { +// return; +// } +// +// for(TMLCPElement elt: originInOld.getNextElements()) { +// //TraceManager.addDev("Exploring elt (0):" + elt.getName()); +// if (elt instanceof TMLCPJunction) { +// // Must replace the junction by a ref to an AD +// TMLCPActivityDiagram toAD = refs.get(elt); +// TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject()); +// newDiag.addTMLCPElement(ref); +// originInNew.setNextElement(ref); +// } else { +// //TraceManager.addDev("Exploring elt (1):" + elt.getName()); +// if (originInOld != originInNew) { +// originInNew.addNextElement(elt); +// } +// if (!newDiag.contains(elt)) { +// newDiag.addTMLCPElement(elt); +// toBeRemoved.add(elt); +// addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved); +// } +// } +// } +// } public TMLCPElement getNonConnectedElement() { @@ -509,6 +507,7 @@ public class TMLCPActivityDiagram extends TMLElement { } } + @Override public String toString() { String s = "*** Activity diagram " + getName() + "\n"; for(TMLCPElement elt: elements) { @@ -516,5 +515,4 @@ public class TMLCPActivityDiagram extends TMLElement { } return s + "\n"; } - } //End of class diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java b/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java deleted file mode 100755 index c0ac565fef1b0776f7e1ae37fd10fcc5f66c2971..0000000000000000000000000000000000000000 --- a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * - * ludovic.apvrille AT enst.fr - * - * This software is a computer program whose purpose is to allow the - * edition of TURTLE analysis, design and deployment diagrams, to - * allow the generation of RT-LOTOS or Java code from this diagram, - * and at last to allow the analysis of formal validation traces - * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP - * from INRIA Rhone-Alpes. - * - * This software is governed by the CeCILL license under French law and - * abiding by the rules of distribution of free software. You can use, - * modify and/ or redistribute the software under the terms of the CeCILL - * license as circulated by CEA, CNRS and INRIA at the following URL - * "http://www.cecill.info". - * - * As a counterpart to the access to the source code and rights to copy, - * modify and redistribute granted by the license, users are provided only - * with a limited warranty and the software's author, the holder of the - * economic rights, and the successive licensors have only limited - * liability. - * - * In this respect, the user's attention is drawn to the risks associated - * with loading, using, modifying and/or developing or reproducing the - * software by the user in light of its specific status of free software, - * that may mean that it is complicated to manipulate, and that also - * therefore means that it is reserved for developers and experienced - * professionals having in-depth computer knowledge. Users are therefore - * encouraged to load and test the software's suitability as regards their - * requirements in conditions enabling the security of their systems and/or - * data to be ensured and, more generally, to use and operate it in the - * same conditions as regards security. - * - * The fact that you are presently reading this means that you have had - * knowledge of the CeCILL license and that you accept its terms. - */ - - - - -package tmltranslator.tmlcp; - -/** -* Class TMLCPJunction -* Creation: 18/02/2014 -* @version 1.0 18/02/2014 -* @author Ludovic APVRILLE - */ -public class TMLCPJunction extends TMLCPElement { - - public TMLCPJunction(String _name, Object _referenceObject) { - super(_name, _referenceObject); - } - -} diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java index 824db9d610d07990df7f5ee2423baaf1a8efadc6..70b56c9ce829ebde681012ea12b47bec3ba1794f 100644 --- a/src/main/java/ui/ActionPerformer.java +++ b/src/main/java/ui/ActionPerformer.java @@ -895,8 +895,9 @@ public class ActionPerformer { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE); } else if (command.equals(mgui.actions[TGUIAction.TMLCP_STOP].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE); - } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { - mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); + // Issue #69 Removed unused TMLCPJunction +// } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { +// mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); } else if (command.equals(mgui.actions[TGUIAction.TMLCP_FOR_LOOP].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FOR_LOOP); } else if (command.equals(mgui.actions[TGUIAction.TMLSD_EDIT].getActionCommand())) { diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java index cd1642f8946d72be448665c9879ba65fb6954f3c..b9de2310ee2af9a333011d8bf884fac95ede78e2 100644 --- a/src/main/java/ui/AttackTreePanelTranslator.java +++ b/src/main/java/ui/AttackTreePanelTranslator.java @@ -57,10 +57,10 @@ public class AttackTreePanelTranslator { protected AttackTree at; protected AttackTreePanel atp; - protected LinkedList<CheckingError> checkingErrors, warnings; + protected List<CheckingError> checkingErrors, warnings; protected CorrespondanceTGElement listE; // usual list //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected LinkedList<TDiagramPanel> panels; + protected List<TDiagramPanel> panels; public AttackTreePanelTranslator(AttackTreePanel _atp) { @@ -75,11 +75,11 @@ public class AttackTreePanelTranslator { panels = new LinkedList<TDiagramPanel>(); } - public LinkedList<CheckingError> getCheckingErrors() { + public List<CheckingError> getCheckingErrors() { return checkingErrors; } - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } diff --git a/src/main/java/ui/AvatarDesignPanel.java b/src/main/java/ui/AvatarDesignPanel.java index 0b3194ef27d7efe7c20a4d37d372227b87a2b6b8..96febefa9e04545b9707a56a23c3c4ab41737cfb 100644 --- a/src/main/java/ui/AvatarDesignPanel.java +++ b/src/main/java/ui/AvatarDesignPanel.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import avatartranslator.AvatarAttribute; @@ -65,8 +62,12 @@ import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; -import java.util.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Vector; /** * Class AvatarDesignPanel @@ -77,8 +78,8 @@ import java.util.List; * @see MainGUI */ public class AvatarDesignPanel extends TURTLEPanel { - public AvatarBDPanel abdp; - + + public AvatarBDPanel abdp; public AvatarDesignPanel(MainGUI _mgui) { super(_mgui); @@ -103,13 +104,13 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) { + public void setValidated( List<AvatarBDStateMachineOwner> _validated) { if (abdp != null) { abdp.setValidated(_validated); } } - public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) { + public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) { if (abdp != null) { abdp.setIgnored(_ignored); } @@ -121,14 +122,14 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { if (abdp != null) { return abdp.getValidated(); } return null; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { if (abdp != null) { return abdp.getIgnored(); } @@ -179,6 +180,7 @@ public class AvatarDesignPanel extends TURTLEPanel { return; } + @Override public void init() { // Class Diagram toolbar @@ -209,37 +211,41 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) { + public List<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) { return abdp.getAllLibraryFunctionsForBlock (_name); } - public LinkedList<TAttribute> getAllAttributes(String _name) { + public List<TAttribute> getAllAttributes(String _name) { return abdp.getAllAttributesOfBlock(_name); } - public LinkedList<AvatarMethod> getAllMethods(String _name) { + public List<AvatarMethod> getAllMethods(String _name) { return abdp.getAllMethodsOfBlock(_name); } - public LinkedList<AvatarSignal> getAllSignals(String _name) { + public List<AvatarSignal> getAllSignals(String _name) { return abdp.getAllSignalsOfBlock(_name); } - public LinkedList<String> getAllTimers(String _name) { + public List<String> getAllTimers(String _name) { return abdp.getAllTimersOfBlock(_name); } + @Override public String saveHeaderInXml(String extensionToName) { - if (extensionToName == null) { - return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; - } - return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + if (extensionToName == null) { + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } + @Override public String saveTailInXml() { return "</Modeling>\n\n\n"; } + @Override public String toString() { return mgui.getTitleAt(this) + " (Design)"; } @@ -260,13 +266,11 @@ public class AvatarDesignPanel extends TURTLEPanel { } - - - public LinkedList<TGComponent> getListOfComponentsInMutex() { + public List<TGComponent> getListOfComponentsInMutex() { TGComponent tgc; TDiagramPanel tdp; - LinkedList<TGComponent> list = new LinkedList<TGComponent>(); + List<TGComponent> list = new LinkedList<TGComponent>(); for(int i=0; i<panels.size(); i++) { tdp = panels.get(i); @@ -337,8 +341,8 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public LinkedList<String> getPropertyPragmas() { - LinkedList<String> result = new LinkedList<String> (); + public List<String> getPropertyPragmas() { + List<String> result = new LinkedList<String> (); for (Object tgc: abdp.getComponentList()) { if (tgc instanceof AvatarBDPragma) { result.addAll(((AvatarBDPragma) tgc).getProperties()); @@ -348,8 +352,8 @@ public class AvatarDesignPanel extends TURTLEPanel { return result; } - public LinkedList<String> getModelPragmas() { - LinkedList<String> result = new LinkedList<String> (); + public List<String> getModelPragmas() { + List<String> result = new LinkedList<String> (); for (Object tgc: abdp.getComponentList()) { if (tgc instanceof AvatarBDPragma) { result.addAll(((AvatarBDPragma) tgc).getModels()); @@ -359,7 +363,6 @@ public class AvatarDesignPanel extends TURTLEPanel { return result; } - public void resetModelBacktracingProVerif() { if (abdp == null) { return; @@ -445,7 +448,6 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) { if (abdp == null) { @@ -456,8 +458,8 @@ public class AvatarDesignPanel extends TURTLEPanel { // Confidential attributes Map<AvatarPragmaSecret, ProVerifQueryResult> confResults = pvoa.getConfidentialityResults(); - HashMap<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); - HashMap<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); + Map<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); + Map<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); for (AvatarPragmaSecret pragma: confResults.keySet()) { ProVerifQueryResult result = confResults.get(pragma); @@ -473,7 +475,7 @@ public class AvatarDesignPanel extends TURTLEPanel { for (AvatarBDBlock bdBlock: abdp.getFullBlockList ()) for (TAttribute tattr: bdBlock.getAttributeList ()) { if (tattr.getType () == TAttribute.OTHER) { - LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ()); + List<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ()); int toBeFound = types.size (); boolean ko = false; for (TAttribute type: types) { @@ -584,7 +586,7 @@ public class AvatarDesignPanel extends TURTLEPanel { if (! tattrA.getTypeOther ().equals (tattrB.getTypeOther ())) continue; - LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ()); + List<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ()); int toBeFound = types.size (); boolean ko = false; boolean weakKo = false; @@ -711,13 +713,11 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public ArrayList<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { + public List<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { return abdp.getAllNonMappedAvatarBlockNames(_name, _tadp, ref, name); } - public ArrayList<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { + public List<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { return abdp.getAllNonMappedAvatarChannelNames(_name, _tadp); } - - } diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index 879587c3372fcb9e6726c0163b6ff01acb23fd55..e440a89501499f03326d02efec5160cee35ee901 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import avatartranslator.*; @@ -57,24 +54,24 @@ import java.util.*; */ public class AvatarDesignPanelTranslator { - protected AvatarDesignPanel adp; - protected List<CheckingError> checkingErrors, warnings; - protected CorrespondanceTGElement listE; // usual list + private final AvatarDesignPanel adp; + private final List<CheckingError> checkingErrors, warnings; + private final CorrespondanceTGElement listE; // usual list //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected List <TDiagramPanel> panels; - protected Map<String, List<TAttribute>> typeAttributesMap; - protected Map<String, String> nameTypeMap; + //protected List <TDiagramPanel> panels; + private Map<String, List<TAttribute>> typeAttributesMap; + private Map<String, String> nameTypeMap; public AvatarDesignPanelTranslator(AvatarDesignPanel _adp) { adp = _adp; - reinit(); - } + // reinit(); + // } - public void reinit() { + //public void reinit() { checkingErrors = new LinkedList<CheckingError> (); warnings = new LinkedList<CheckingError> (); listE = new CorrespondanceTGElement(); - panels = new LinkedList <TDiagramPanel>(); + //panels = new LinkedList <TDiagramPanel>(); } public List<CheckingError> getErrors() { @@ -130,19 +127,21 @@ public class AvatarDesignPanelTranslator { public class ErrorAccumulator extends avatartranslator.ErrorAccumulator { private TGComponent tgc; private TDiagramPanel tdp; - private AvatarBlock ab; + // private AvatarBlock ab; - public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) { - this.tgc = tgc; - this.tdp = tdp; - this.ab = ab; - } +// public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) { +// this.tgc = tgc; +// this.tdp = tdp; +// this.ab = ab; +// } public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp) { - this (tgc, tdp, null); + this.tgc = tgc; + this.tdp = tdp; +// this (tgc, tdp, null); } - public CheckingError createError (String msg) { + public CheckingError createError(String msg) { UICheckingError ce = new UICheckingError (CheckingError.BEHAVIOR_ERROR, msg); ce.setTGComponent (this.tgc); ce.setTDiagramPanel (this.tdp); @@ -167,7 +166,7 @@ public class AvatarDesignPanelTranslator { } } - public void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator(); TGComponent tgc; AvatarBDPragma tgcn; @@ -240,7 +239,7 @@ public class AvatarDesignPanelTranslator { } } - public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ + public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ if (_pragma.contains("=") || (!_pragma.contains(">") && !_pragma.contains("<") && !_pragma.contains("?")) || !_pragma.contains("Latency(")){ UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "No latency expression found in pragma "+ _pragma); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -416,7 +415,8 @@ public class AvatarDesignPanelTranslator { } - public boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ + + private boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ //Todo: check types //Todo: handle complex types _pragma = _pragma.trim(); @@ -466,7 +466,8 @@ public class AvatarDesignPanelTranslator { } return true; } - public boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){ + + private boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){ //check the syntax of a single statement @@ -659,243 +660,243 @@ public class AvatarDesignPanelTranslator { } return true; } - public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) { - String ret = ""; - int i; - - // Identify first keyword - _pragma = _pragma.trim(); - - int index = _pragma.indexOf(" "); - - if (index == -1) { - return null; - } - - String header = _pragma.substring(0, index).trim(); - - for(i=0; i<AvatarPragma.PRAGMAS.length; i++) { - if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) { - break; - } - } - - // Invalid header? - if (i == AvatarPragma.PRAGMAS.length) { - TraceManager.addDev("Invalid Pragma " + 0); - return null; - } - - - - ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " "; - - // Checking for arguments - - - boolean b = ret.startsWith("Authenticity "); - boolean b1 = ret.startsWith("PrivatePublicKeys "); - String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" "); - String tmp; - String blockName, stateName, paramName = ""; - boolean found = false; - LinkedList<TAttribute> types; - AvatarBDBlock block; - TAttribute ta; - // AvatarBlock ab; - String myBlockName = ""; - - - - - for(i=0; i<arguments.length; i++) { - tmp = arguments[i]; - TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp); - - if (b1) { - - // Private Public keys? - if (i == 0) { - // Must be a block name - // Look for at least a block - found = false; - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp); - if (block.getBlockName().compareTo(tmp) ==0) { - myBlockName = block.getBlockName(); - found = true; - ret = ret + tmp; - break; - } - /*for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(tmp) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + tmp + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - TraceManager.addDev("Invalid Pragma " + 1); - return null; - - } else { - for(int j=0; j<types.size(); j++) { - ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " "; - } - } - } - - } - }*/ - } - if (found == false) { - TraceManager.addDev("Invalid Pragma " + 2); - return null; - } - - } else if ((i == 1) || (i == 2)) { - // Shall be an attribute - TraceManager.addDev("i= " + i); - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName); - if (block.getBlockName().compareTo(myBlockName) == 0) { - TraceManager.addDev("Found the block " + ret); - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - TraceManager.addDev("Attribute: " + ta.getId()); - if (ta.getId().compareTo(tmp) == 0) { - paramName = ta.getId(); - found = true; - TraceManager.addDev("Pragma " + ret + " found=" + found); - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + " " + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - TraceManager.addDev("Invalid Pragma " + 3); - return null; - } else { - TraceManager.addDev("Pragma " + ret + " types size=" + types.size()); - for (TAttribute type: types) - ret = ret + " " + paramName + "__" + type.getId() + " "; - } - - } else { - TraceManager.addDev("Invalid Pragma " + 4); - return null; - } - - break; - } - } - } - } - } else { - // Badly formatted - TraceManager.addDev("Invalid Pragma " + 5); - return null; - } - - // Other than PrivatePublicKeys - } else { - index = tmp.indexOf("."); - if (index == -1) { - return null; - } - blockName = tmp.substring(0, index); - - //TraceManager.addDev("blockName=" + blockName); - // Search for the block - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - if (block.getBlockName().compareTo(blockName) == 0) { - - if (b) { - // Authenticity - stateName = tmp.substring(index+1, tmp.length()); - //TraceManager.addDev("stateName=" + stateName); - index = stateName.indexOf("."); - if (index == -1) { - return null; - } - paramName = stateName.substring(index+1, stateName.length()); - stateName = stateName.substring(0, index); - - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(paramName) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + blockName + "." + stateName + "." + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - return null; - } else { - for (TAttribute type: types) - ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " "; - } - - } else { - return null; - } - - break; - } - } - - } else { - // Other: confidentiality, initial system knowledge, initial session knowledge, constant - - paramName = tmp.substring(index+1, tmp.length()); - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(paramName) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + blockName + "." + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - return null; - } else { - for (TAttribute type: types) - ret = ret + blockName + "." + paramName + "__" + type.getId() + " "; - } - - } else { - return null; - } - - break; - } - } - - } - } - } - } - - if (!found) { - return null; - } - - } - - TraceManager.addDev("Reworked pragma: " + ret); - - return ret.trim(); - } +// public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) { +// String ret = ""; +// int i; +// +// // Identify first keyword +// _pragma = _pragma.trim(); +// +// int index = _pragma.indexOf(" "); +// +// if (index == -1) { +// return null; +// } +// +// String header = _pragma.substring(0, index).trim(); +// +// for(i=0; i<AvatarPragma.PRAGMAS.length; i++) { +// if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) { +// break; +// } +// } +// +// // Invalid header? +// if (i == AvatarPragma.PRAGMAS.length) { +// TraceManager.addDev("Invalid Pragma " + 0); +// return null; +// } +// +// +// +// ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " "; +// +// // Checking for arguments +// +// +// boolean b = ret.startsWith("Authenticity "); +// boolean b1 = ret.startsWith("PrivatePublicKeys "); +// String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" "); +// String tmp; +// String blockName, stateName, paramName = ""; +// boolean found = false; +// LinkedList<TAttribute> types; +// AvatarBDBlock block; +// TAttribute ta; +// // AvatarBlock ab; +// String myBlockName = ""; +// +// +// +// +// for(i=0; i<arguments.length; i++) { +// tmp = arguments[i]; +// TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp); +// +// if (b1) { +// +// // Private Public keys? +// if (i == 0) { +// // Must be a block name +// // Look for at least a block +// found = false; +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp); +// if (block.getBlockName().compareTo(tmp) ==0) { +// myBlockName = block.getBlockName(); +// found = true; +// ret = ret + tmp; +// break; +// } +// /*for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(tmp) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + tmp + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// TraceManager.addDev("Invalid Pragma " + 1); +// return null; +// +// } else { +// for(int j=0; j<types.size(); j++) { +// ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " "; +// } +// } +// } +// +// } +// }*/ +// } +// if (found == false) { +// TraceManager.addDev("Invalid Pragma " + 2); +// return null; +// } +// +// } else if ((i == 1) || (i == 2)) { +// // Shall be an attribute +// TraceManager.addDev("i= " + i); +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName); +// if (block.getBlockName().compareTo(myBlockName) == 0) { +// TraceManager.addDev("Found the block " + ret); +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// TraceManager.addDev("Attribute: " + ta.getId()); +// if (ta.getId().compareTo(tmp) == 0) { +// paramName = ta.getId(); +// found = true; +// TraceManager.addDev("Pragma " + ret + " found=" + found); +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + " " + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// TraceManager.addDev("Invalid Pragma " + 3); +// return null; +// } else { +// TraceManager.addDev("Pragma " + ret + " types size=" + types.size()); +// for (TAttribute type: types) +// ret = ret + " " + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// TraceManager.addDev("Invalid Pragma " + 4); +// return null; +// } +// +// break; +// } +// } +// } +// } +// } else { +// // Badly formatted +// TraceManager.addDev("Invalid Pragma " + 5); +// return null; +// } +// +// // Other than PrivatePublicKeys +// } else { +// index = tmp.indexOf("."); +// if (index == -1) { +// return null; +// } +// blockName = tmp.substring(0, index); +// +// //TraceManager.addDev("blockName=" + blockName); +// // Search for the block +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// if (block.getBlockName().compareTo(blockName) == 0) { +// +// if (b) { +// // Authenticity +// stateName = tmp.substring(index+1, tmp.length()); +// //TraceManager.addDev("stateName=" + stateName); +// index = stateName.indexOf("."); +// if (index == -1) { +// return null; +// } +// paramName = stateName.substring(index+1, stateName.length()); +// stateName = stateName.substring(0, index); +// +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(paramName) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + blockName + "." + stateName + "." + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// return null; +// } else { +// for (TAttribute type: types) +// ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// return null; +// } +// +// break; +// } +// } +// +// } else { +// // Other: confidentiality, initial system knowledge, initial session knowledge, constant +// +// paramName = tmp.substring(index+1, tmp.length()); +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(paramName) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + blockName + "." + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// return null; +// } else { +// for (TAttribute type: types) +// ret = ret + blockName + "." + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// return null; +// } +// +// break; +// } +// } +// +// } +// } +// } +// } +// +// if (!found) { +// return null; +// } +// +// } +// +// TraceManager.addDev("Reworked pragma: " + ret); +// +// return ret.trim(); +// } private AvatarAttribute createRegularAttribute (AvatarStateMachineOwner _ab, TAttribute _a, String _preName) { AvatarType type = AvatarType.UNDEFINED; @@ -914,11 +915,11 @@ public class AvatarDesignPanelTranslator { return aa; } - public void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) { + private void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) { _ab.addAttribute(this.createRegularAttribute (_ab, _a, _preName)); } - public void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) { + private void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) { for (AvatarBDLibraryFunction libraryFunction: _libraryFunctions) { AvatarLibraryFunction alf = new AvatarLibraryFunction (libraryFunction.getFunctionName (), _as, libraryFunction); _as.addLibraryFunction (alf); @@ -934,7 +935,7 @@ public class AvatarDesignPanelTranslator { alf.addParameter (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); // TODO: adapt @@ -964,7 +965,7 @@ public class AvatarDesignPanelTranslator { alf.addReturnAttribute (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -993,7 +994,7 @@ public class AvatarDesignPanelTranslator { alf.addAttribute (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -1036,7 +1037,7 @@ public class AvatarDesignPanelTranslator { } } - public void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { for(AvatarBDBlock block: _blocks) { AvatarBlock ab = new AvatarBlock(block.getBlockName(), _as, block); _as.addBlock(ab); @@ -1056,7 +1057,7 @@ public class AvatarDesignPanelTranslator { } else { // other // TraceManager.addDev(" -> Other type found: " + a.getTypeOther()); - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther()); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + a.getTypeOther() + " used in " + ab.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -1117,7 +1118,7 @@ public class AvatarDesignPanelTranslator { } } - public void makeBlockStateMachines(AvatarSpecification _as) { + private void makeBlockStateMachines(AvatarSpecification _as) { // Make state machine of blocks for(AvatarBlock block: _as.getListOfBlocks()) this.makeStateMachine(_as, block); @@ -1127,7 +1128,7 @@ public class AvatarDesignPanelTranslator { this.makeStateMachine (_as, libraryFunction); } - public void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { + private void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { String rt = _uiam.getReturnType().trim(); AvatarAttribute aa; AvatarType type = AvatarType.UNDEFINED; @@ -1140,7 +1141,7 @@ public class AvatarDesignPanelTranslator { aa = new AvatarAttribute("return__0", AvatarType.getType(rt), _ab, _block); _atam.addReturnParameter(aa); } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + rt + " declared as a return parameter of a method of " + _block.getOwnerName()); // TODO: adapt @@ -1167,12 +1168,12 @@ public class AvatarDesignPanelTranslator { } - public void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { + private void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { String typeIds[] = _uiam.getTypeIds(); String types[] = _uiam.getTypes(); for(int i=0; i<types.length; i++) { - LinkedList<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]); + List<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]); if (v == null) { if (AvatarType.getType(types[i]) == AvatarType.UNDEFINED) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: \"" + types[i] + "\" declared in method " + _atam + " of block " + _block.getName()); @@ -1202,7 +1203,7 @@ public class AvatarDesignPanelTranslator { } } - public void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) { + private void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) { TAttribute ta = adp.getAvatarBDPanel().getAttribute(_name, _ab.getName()); if (ta == null) { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator); @@ -1217,7 +1218,7 @@ public class AvatarDesignPanelTranslator { //TraceManager.addDev("Found: " + ta.getId()); - LinkedList<String> v = new LinkedList<String> (); + List<String> v = new LinkedList<String> (); if (ta.getType() == TAttribute.OTHER) for (TAttribute tatmp: adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther())) @@ -1236,81 +1237,81 @@ public class AvatarDesignPanelTranslator { ce.setTGComponent(_tgc); addCheckingError(ce); return ; - } else { + }// else { //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId()); - _aaos.addValue(name); - } + _aaos.addValue(name); + //} } } private void translateAvatarSMDSendSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSendSignal asmdss) throws CheckingError { - AvatarStateMachine asm = _ab.getStateMachine (); - avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ()); - if (atas == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName()); - - // Get relation of that signal - if (_ab instanceof AvatarBlock) { - // Note that for library functions, signals are just placeholders so they don't need to be connected to anything - AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); - if (ar == null) { - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Send/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; - } - //TraceManager.addDev("Spec:" + _as.toString()); - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel"); - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Send/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - } - - AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss); - if (asmdss.hasCheckedAccessibility()) - aaos.setCheckable(); - - if (asmdss.hasCheckedAccessibility()) - aaos.setChecked(); - - if (aaos.isReceiving ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue()); - - if (asmdss.getNbOfValues() == -1) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue()); - - for(int i=0; i<asmdss.getNbOfValues(); i++) { - String tmp = asmdss.getValue(i); - if (tmp.isEmpty ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue()); - - this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue()); - } - - if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition"); - - // Checking expressions passed as parameter - for (int i=0; i<aaos.getNbOfValues(); i++) { - String theVal = aaos.getValue(i); - if (atas.getListOfAttributes ().get (i).isInt ()) { - if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); - } else { - // We assume it is a bool attribute - if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); - } - } - - this.listE.addCor (aaos, asmdss); - asmdss.setAVATARID (aaos.getID()); - if (asmdss.getCheckLatency()){ - aaos.setCheckLatency(true); - _as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID()); - } - asm.addElement (aaos); + AvatarStateMachine asm = _ab.getStateMachine (); + avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ()); + if (atas == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName()); + + // Get relation of that signal + if (_ab instanceof AvatarBlock) { + // Note that for library functions, signals are just placeholders so they don't need to be connected to anything + AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); + if (ar == null) { + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Send/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; + } + //TraceManager.addDev("Spec:" + _as.toString()); + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel"); + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Send/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + } + + AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss); + if (asmdss.hasCheckedAccessibility()) + aaos.setCheckable(); + + if (asmdss.hasCheckedAccessibility()) + aaos.setChecked(); + + if (aaos.isReceiving ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue()); + + if (asmdss.getNbOfValues() == -1) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue()); + + for(int i=0; i<asmdss.getNbOfValues(); i++) { + String tmp = asmdss.getValue(i); + if (tmp.isEmpty ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue()); + + this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue()); + } + + if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition"); + + // Checking expressions passed as parameter + for (int i=0; i<aaos.getNbOfValues(); i++) { + String theVal = aaos.getValue(i); + if (atas.getListOfAttributes ().get (i).isInt ()) { + if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); + } else { + // We assume it is a bool attribute + if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); + } + } + + this.listE.addCor (aaos, asmdss); + asmdss.setAVATARID (aaos.getID()); + if (asmdss.getCheckLatency()){ + aaos.setCheckLatency(true); + _as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID()); + } + asm.addElement (aaos); } private void translateAvatarSMDLibraryFunctionCall (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDLibraryFunctionCall asmdlfc) throws CheckingError { @@ -1330,7 +1331,7 @@ public class AvatarDesignPanelTranslator { AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc); /* Get the list of parameters passed to the function */ - LinkedList<TAttribute> parameters = asmdlfc.getParameters (); + List<TAttribute> parameters = asmdlfc.getParameters (); /* If the number of parameters does not match raise an error */ if (parameters.size () != libraryFunction.getParameters ().size ()) throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)"); @@ -1349,14 +1350,14 @@ public class AvatarDesignPanelTranslator { throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); /* Creates all the parameters corresponding to this parameter */ - LinkedList<String> parameterNames = new LinkedList<String> (); + List<String> parameterNames = new LinkedList<String> (); if (ta.getType() == TAttribute.INTEGER || ta.getType() == TAttribute.NATURAL || ta.getType() == TAttribute.BOOLEAN || ta.getType() == TAttribute.TIMER) parameterNames.add (ta.getId ()); else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); if (types == null || types.isEmpty ()) throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); @@ -1376,7 +1377,7 @@ public class AvatarDesignPanelTranslator { } /* Get the list of signals mapped to the function's placeholders */ - LinkedList<ui.AvatarSignal> signals = asmdlfc.getSignals (); + List<ui.AvatarSignal> signals = asmdlfc.getSignals (); /* If the number of signals does not match raise an error */ if (signals.size () != libraryFunction.getSignals ().size ()) throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)"); @@ -1403,7 +1404,7 @@ public class AvatarDesignPanelTranslator { } /* Get the list of return attributes passed to the function */ - LinkedList<TAttribute> returnAttributes = asmdlfc.getReturnAttributes (); + List<TAttribute> returnAttributes = asmdlfc.getReturnAttributes (); /* If the number of return attributes is greater that what the function can return raise an error */ if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ()) throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)"); @@ -1411,7 +1412,7 @@ public class AvatarDesignPanelTranslator { /* Loop through the return attributes */ i=0; for (TAttribute ta: returnAttributes) { - LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); + List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); /* If return attribute has not be filled in, add a dummy one */ if (ta == null) { TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); @@ -1429,7 +1430,7 @@ public class AvatarDesignPanelTranslator { } attrs.add (attr); } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); if (types == null || types.isEmpty ()) throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); @@ -1450,14 +1451,14 @@ public class AvatarDesignPanelTranslator { throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); /* Creates all the attributes corresponding to this return attribute */ - LinkedList<String> attributeNames = new LinkedList<String> (); + List<String> attributeNames = new LinkedList<String> (); if (ta.getType() == TAttribute.INTEGER || ta.getType() == TAttribute.NATURAL || ta.getType() == TAttribute.BOOLEAN || ta.getType() == TAttribute.TIMER) attributeNames.add (ta.getId ()); else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); if (types == null || types.isEmpty ()) throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); @@ -1485,7 +1486,7 @@ public class AvatarDesignPanelTranslator { TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); String dummyName = "__dummy_return_attribute_" + returnTA.getId (); - LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); + List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); /* Creates all the attributes corresponding to this return attribute */ if (returnTA.getType() == TAttribute.INTEGER || returnTA.getType() == TAttribute.NATURAL @@ -1498,7 +1499,7 @@ public class AvatarDesignPanelTranslator { } attrs.add (attr); } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); if (types == null || types.isEmpty ()) throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); @@ -1524,75 +1525,75 @@ public class AvatarDesignPanelTranslator { private void translateAvatarSMDReceiveSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDReceiveSignal asmdrs) throws CheckingError { - AvatarStateMachine asm = _ab.getStateMachine (); - avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ()); - if (atas == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName()); - - // Get relation of that signal - if (_ab instanceof AvatarBlock) { - // Note that for library functions, signals are just placeholders so they don't need to be connected to anything - AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); - if (ar == null) { - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Receive/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; - } - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel"); - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Receive/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - - AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs); - if (asmdrs.hasCheckableAccessibility()) - aaos.setCheckable(); - - if (asmdrs.hasCheckedAccessibility()) - aaos.setChecked(); - - if (aaos.isSending()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue()); - - if (asmdrs.getNbOfValues() == -1) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue()); - - for(int i=0; i<asmdrs.getNbOfValues(); i++) { - String tmp = asmdrs.getValue(i); - if (tmp.isEmpty ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue()); - - this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue()); - } - - if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition"); - - // Checking expressions passed as parameter - for (int i=0; i<aaos.getNbOfValues(); i++) { - String theVal = aaos.getValue(i); - if (atas.getListOfAttributes ().get (i).isInt ()) { - if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); - } else { - // We assume it is a bool attribute - if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); - } - } - - this.listE.addCor (aaos, asmdrs); - asmdrs.setAVATARID (aaos.getID()); - asm.addElement (aaos); - if (asmdrs.getCheckLatency()){ - aaos.setCheckLatency(true); - _as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID()); - } + AvatarStateMachine asm = _ab.getStateMachine (); + avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ()); + if (atas == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName()); + + // Get relation of that signal + if (_ab instanceof AvatarBlock) { + // Note that for library functions, signals are just placeholders so they don't need to be connected to anything + AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); + if (ar == null) { + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Receive/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; + } + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel"); + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Receive/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + + AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs); + if (asmdrs.hasCheckableAccessibility()) + aaos.setCheckable(); + + if (asmdrs.hasCheckedAccessibility()) + aaos.setChecked(); + + if (aaos.isSending()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue()); + + if (asmdrs.getNbOfValues() == -1) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue()); + + for(int i=0; i<asmdrs.getNbOfValues(); i++) { + String tmp = asmdrs.getValue(i); + if (tmp.isEmpty ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue()); + + this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue()); + } + + if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition"); + + // Checking expressions passed as parameter + for (int i=0; i<aaos.getNbOfValues(); i++) { + String theVal = aaos.getValue(i); + if (atas.getListOfAttributes ().get (i).isInt ()) { + if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); + } else { + // We assume it is a bool attribute + if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); + } + } + + this.listE.addCor (aaos, asmdrs); + asmdrs.setAVATARID (aaos.getID()); + asm.addElement (aaos); + if (asmdrs.getCheckLatency()){ + aaos.setCheckLatency(true); + _as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID()); + } } private void translateAvatarSMDState (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDState tgc) throws CheckingError { @@ -1886,21 +1887,21 @@ public class AvatarDesignPanelTranslator { at.setDelays(tmp1, tmp2); // Compute min and max - tmp1 = modifyString (asmdco.getComputeMinDelay ()); - error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); - if (error < 0) { - this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1); - tmp1 = null; - } - tmp2 = modifyString(asmdco.getComputeMaxDelay()); - error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); - if (error < 0) { - this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2); - tmp2 = null; - } - - if (tmp1 != null && tmp2 != null) - at.setComputes(tmp1, tmp2); +// tmp1 = modifyString (asmdco.getComputeMinDelay ()); +// error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); +// if (error < 0) { +// this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1); +// tmp1 = null; +// } +// tmp2 = modifyString(asmdco.getComputeMaxDelay()); +// error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); +// if (error < 0) { +// this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2); +// tmp2 = null; +// } +// +// if (tmp1 != null && tmp2 != null) +// at.setComputes(tmp1, tmp2); // Probability tmp1 = asmdco.getProbability (); @@ -2018,15 +2019,14 @@ public class AvatarDesignPanelTranslator { return null; } - - public void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { adp.getAvatarBDPanel().updateAllSignalsOnConnectors(); Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator(); TGComponent tgc; AvatarBDPortConnector port; AvatarBDBlock block1, block2; - LinkedList<String> l1, l2; + List<String> l1, l2; int i; String name1, name2; AvatarRelation r; @@ -2094,16 +2094,16 @@ public class AvatarDesignPanelTranslator { } private void addCheckingError(CheckingError ce) { - if (checkingErrors == null) { - checkingErrors = new LinkedList<CheckingError> (); - } +// if (checkingErrors == null) { +// checkingErrors = new LinkedList<CheckingError> (); +// } checkingErrors.add (ce); } private void addWarning(CheckingError ce) { - if (warnings == null) { - warnings = new LinkedList<CheckingError> (); - } +// if (warnings == null) { +// warnings = new LinkedList<CheckingError> (); +// } warnings.add (ce); } @@ -2190,7 +2190,7 @@ public class AvatarDesignPanelTranslator { return s; } - public boolean isAVariableAssignation (String _input) { + private boolean isAVariableAssignation (String _input) { int index = _input.indexOf('='); if (index == -1) { return false; @@ -2216,11 +2216,8 @@ public class AvatarDesignPanelTranslator { return !(TAttribute.isAValidId(tmp, false, false)); } - - public void checkForAfterOnCompositeTransition() { - - } - - - +// +// public void checkForAfterOnCompositeTransition() { +// +// } } diff --git a/src/main/java/ui/DesignPanelTranslator.java b/src/main/java/ui/DesignPanelTranslator.java index 82c6fef4c4de012a47df3b7e3043e1c3e8b5b527..ec674a54c8217801c8b6d1e02715a62b176d6698 100755 --- a/src/main/java/ui/DesignPanelTranslator.java +++ b/src/main/java/ui/DesignPanelTranslator.java @@ -60,11 +60,11 @@ import java.util.Vector; */ public class DesignPanelTranslator { protected TURTLEDesignPanelInterface dp; - protected LinkedList<CheckingError> checkingErrors, warnings; + protected List<CheckingError> checkingErrors, warnings; protected CorrespondanceTGElement listE; // usual list protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected LinkedList <TDiagramPanel> panels; - protected LinkedList <ActivityDiagram> activities; + protected List <TDiagramPanel> panels; + protected List <ActivityDiagram> activities; public DesignPanelTranslator(TURTLEDesignPanelInterface _dp) { dp = _dp; @@ -80,11 +80,11 @@ public class DesignPanelTranslator { activities = new LinkedList <ActivityDiagram>(); } - public LinkedList<CheckingError> getErrors() { + public List<CheckingError> getErrors() { return checkingErrors; } - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } @@ -93,7 +93,7 @@ public class DesignPanelTranslator { } public TURTLEModeling generateTURTLEModeling() { - LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>(); + List<TClassInterface> tclasses = new LinkedList<TClassInterface>(); for (Object tgc: dp.getStructurePanel ().getComponentList ()) if (tgc instanceof TClassInterface) @@ -102,7 +102,7 @@ public class DesignPanelTranslator { return generateTURTLEModeling(tclasses, ""); } - public TURTLEModeling generateTURTLEModeling(LinkedList<TClassInterface> tclasses, String preName) { + public TURTLEModeling generateTURTLEModeling(List<TClassInterface> tclasses, String preName) { TURTLEModeling tmodel = new TURTLEModeling(); addTClasses(dp, tclasses, preName, tmodel); addRelations(dp, tmodel); @@ -124,7 +124,7 @@ public class DesignPanelTranslator { } - public void addTClasses(TURTLEDesignPanelInterface dp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) { + public void addTClasses(TURTLEDesignPanelInterface dp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) { TDiagramPanel tdp; // search for class diagram panels tdp = dp.panelAt(0); @@ -135,8 +135,8 @@ public class DesignPanelTranslator { addTClassesFromPanel(tdp, (ClassDiagramPanelInterface)tdp, tclasses, preName, tm); } - private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) { - // LinkedList list = tdp.getComponentList(); + private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) { + // List list = tdp.getComponentList(); // search for tclasses for (Object tgc: tdp.getComponentList ()) @@ -1156,7 +1156,7 @@ public class DesignPanelTranslator { return -1; } - private void setGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) { + private void setGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) { Gate g1, g2; for (TTwoAttributes tt: gates) { @@ -1174,7 +1174,7 @@ public class DesignPanelTranslator { * Seems like we can't instantiate TCDWatchdogOperator * and the setWatchdogGatesOf function is buggy: it uses * TTwoAttributes as if they were TAttribute. - private void setWatchdogGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) { + private void setWatchdogGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) { for (TTwoAttributes t: gates) { Gate g1 = tc1.getGateByName(((TAttribute) t).getId()); diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java index 545af8aa925b49b37457394b07315957ad9aa89e..ea8fa2e3678ace381db547c86b47f79c866dcb40 100755 --- a/src/main/java/ui/GTMLModeling.java +++ b/src/main/java/ui/GTMLModeling.java @@ -1078,7 +1078,7 @@ public class GTMLModeling { if (!(alreadyConsidered.contains(port1))) { portstome = tmlcdp.tmlctdp.getPortsConnectedTo(port1, componentsToTakeIntoAccount); //TraceManager.addDev("Considering port1 = " +port1.getPortName() + " size of connecting ports:" + portstome.size()); - Iterator<?> ite = portstome.listIterator(); + // Iterator<?> ite = portstome.listIterator(); /*while(ite.hasNext()) { TraceManager.addDev("port=" + ((TMLCPrimitivePort)(ite.next())).getPortName()); }*/ @@ -2691,6 +2691,8 @@ public class GTMLModeling { // Syntax has been checked -> splitting ads // The splitting works only if there is no other operations than sequences and references to ADs/SDs // between forks and joins + + // Issue #69; Unused TMLCPJunction tmlcp.splitADs(); TraceManager.addDev("<--- TMLCP modeling:"); @@ -3078,7 +3080,8 @@ public class GTMLModeling { tmlcp.correctReferences(); //Update references to the right activity and sequence diagrams //tmlcp.generateNexts(); // Add nexts elements to CPElements //tmlcp.removeADConnectors(); // Remove connectors since nexts have been filled - tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD + // Issue #69; Unused TMLCPJunction + //tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD /*for( TMLCPSequenceDiagram seqDiag: tmlcp.getCPSequenceDiagrams() ) { TraceManager.addDev( "**********" ); @@ -3096,7 +3099,7 @@ public class GTMLModeling { throws MalformedTMLDesignException { tmltranslator.tmlcp.TMLCPStart start; tmltranslator.tmlcp.TMLCPStop stop; - tmltranslator.tmlcp.TMLCPJunction junction; + // tmltranslator.tmlcp.TMLCPJunction junction; tmltranslator.tmlcp.TMLCPJoin join; tmltranslator.tmlcp.TMLCPFork fork; tmltranslator.tmlcp.TMLCPChoice choice; @@ -3157,11 +3160,12 @@ public class GTMLModeling { refAD = new tmltranslator.tmlcp.TMLCPRefAD(compID, component); AD.addTMLCPElement(refAD); } - if (component instanceof ui.tmlcp.TMLCPJunction) { - //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); - junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component); - AD.addTMLCPElement(junction); - } + // Issue #69; Unused TMLCPJunction +// if (component instanceof ui.tmlcp.TMLCPJunction) { +// //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); +// junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component); +// AD.addTMLCPElement(junction); +// } if (component instanceof ui.tmlcp.TMLCPJoin) { //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); join = new tmltranslator.tmlcp.TMLCPJoin(compID, component); diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index cb402e28879a0b22960c755942723c46cf14321f..010b42b65ac2e9f6fb982aa15f5298c05391ec61 100644 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -58,8 +58,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import proverifspec.ProVerifOutputAnalyzer; -import proverifspec.ProVerifQueryAuthResult; -import proverifspec.ProVerifQueryResult; import proverifspec.ProVerifSpec; import req.ebrdd.EBRDD; import sddescription.HMSC; @@ -745,11 +743,11 @@ outerloop: List<HwLink> links = map.getTMLArchitecture().getHwLinks(); List<HwNode> found = new ArrayList<HwNode>(); List<HwNode> done = new ArrayList<HwNode>(); - List<HwNode> path = new ArrayList<HwNode>(); + //List<HwNode> path = new ArrayList<HwNode>(); HwExecutionNode node1 = (HwExecutionNode) map.getHwNodeOf(t1); - Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>(); + //Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>(); for (HwLink link : links) { if (link.hwnode == node1) { found.add(link.bus); @@ -820,7 +818,7 @@ outerloop: TraceManager.addDev("Found firewall " + firewallNode.getName()); TMLCPrimitiveComponent firewallComp = null; TMLADStartState adStart = null; - TMLADForEverLoop adLoop = null; + //TMLADForEverLoop adLoop = null; TMLADChoice adChoice = null; TMLADChoice adChoice2 = null; TMLADChoice adChoiceMain = null; @@ -1335,7 +1333,7 @@ outerloop: xpos = wr.getX(); ypos = wr.getY(); fromStart = tad.findTGConnectorEndingAt(wr.getTGConnectingPointAtIndex(0)); - TGConnectingPoint point = fromStart.getTGConnectingPointP2(); + //TGConnectingPoint point = fromStart.getTGConnectingPointP2(); int yShift = 50; TMLADSendRequest sendreq = new TMLADSendRequest(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad); @@ -2519,7 +2517,7 @@ memloop: } // Assume the inputData is in AUT format: generated by RTL or CADP - public String performProjection(String inputData, LinkedList<TClassAndGateDS> gates) { + public String performProjection(String inputData, List<TClassAndGateDS> gates) { StringBuffer result = new StringBuffer(""); StringReader sr = new StringReader(inputData); BufferedReader br = new BufferedReader(sr); @@ -2941,7 +2939,7 @@ memloop: // BUILDING A TURTLE MODELING AND CHECKING IT - public boolean checkTURTLEModeling(LinkedList<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) { + public boolean checkTURTLEModeling(List<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) { // Builds a TURTLE modeling from diagrams //warnings = new Vector(); //checkingErrors = null; @@ -2981,7 +2979,7 @@ memloop: } // BUILDING An AVATAR Design AND CHECKING IT - public boolean checkAvatarDesign(LinkedList<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) { + public boolean checkAvatarDesign( List<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) { // Builds a TURTLE modeling from diagrams //warnings = new Vector(); //checkingErrors = null; @@ -3043,14 +3041,14 @@ memloop: } // Building the list of all states in the mutex - LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); + List<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size()); if (compInMutex.size() == 0) { return -2; } - LinkedList<TGComponent> comps; + List<TGComponent> comps; boolean found; int nbOfFound; int cpt = 0; @@ -3301,7 +3299,7 @@ memloop: if (tgc instanceof AvatarBDBlock) { AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); s.append(asmdp.saveInXML()); - LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList(); + List<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList(); for (AvatarBDBlock b : list) { asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue()); s.append(asmdp.saveInXML()); @@ -7175,7 +7173,7 @@ memloop: boolean latencyCheck = false; boolean invariant = false; boolean breakpoint = false; - boolean hidden = false; + //boolean hidden = false; boolean masterMutex = false; boolean enable = true; @@ -7201,8 +7199,8 @@ memloop: } else if (elt.getTagName().equals("infoparam")) { myName = elt.getAttribute("name"); myValue = elt.getAttribute("value"); - } else if (elt.getTagName().equals("hidden")) { - hidden = elt.getAttribute("value").equals("true"); +// } else if (elt.getTagName().equals("hidden")) { +// hidden = elt.getAttribute("value").equals("true"); } else if (elt.getTagName().equals("enabled")) { enable = elt.getAttribute("value").equals("true"); } else if (elt.getTagName().equals("TGConnectingPoint")) { @@ -7893,7 +7891,7 @@ memloop: dp2 = art.getDesignPanel(); final Iterator<TGComponent> iterator2 = dp2.tcdp.getComponentList().listIterator(); - LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>(); + List<TClassInterface> tclasses = new LinkedList<TClassInterface>(); while (iterator2.hasNext()) { tgc = iterator2.next(); if (tgc instanceof TClassInterface) { diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 891aa6172d0fe629ba288660a992fcb9f4e6699b..754598e246923d824d0e1770433f6603a57a3f74 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -110,8 +110,6 @@ import java.util.*; import java.util.List; import java.util.concurrent.ConcurrentHashMap; -import static myutil.FileUtils.checkFileForOpen; - // AVATAR /** @@ -172,7 +170,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public KeyListener keyHandler; // Validation - public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); + public List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); // Status bar private JLabel status; @@ -2430,7 +2428,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public void updateLastOpenFile(File file) { if (ConfigurationTTool.LastOpenFileDefined) { - ConfigurationTTool.LastOpenFile = file.getPath(); if (ConfigurationTTool.LastOpenFile.contains(".ttool" + File.separator)) { int last = 0; @@ -2500,28 +2497,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per // open the new TURTLE modeling newTurtleModeling(); - //TraceManager.addDev("Loading"); - // load the new TURTLE modeling - // Issue #41: Moved to common method loadModels(gtm.mergeTURTLEGModeling(oldmodeling, s), "merged"); - // try { - // //TraceManager.addDev("Merging"); - // gtm.enableUndo(false); - // gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s)); - // gtm.enableUndo(true); - // gtm.saveOperation(getCurrentSelectedPoint()); - // //gtm.saveOperation(tcdp); - // frame.setTitle("TTool: " + file.getAbsolutePath()); - // makeLotosFile(); - // - // if (gtm.getCheckingErrors().size() > 0) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // - // } catch (MalformedModelingException mme) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // dtree.forceUpdate(); + } } @@ -2566,91 +2543,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per jfc.setAcceptAllFileFilterUsed(false); FileNameExtensionFilter filter = new FileNameExtensionFilter("TTool project", "ttool"); jfc.setFileFilter(filter); - /*jfc.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(MouseEvent arg0) { - - if(arg0.getClickCount() == 2) { - File file = jfc.getSelectedFile(); - if(!FileUtils.getExtension(file).equals("ttool")) { - jfc.setCurrentDirectory(file); - jfc.rescanCurrentDirectory(); - } - else { - jfc.approveSelection(); - } - } - } - - @Override - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - });*/ } else { jfc.resetChoosableFileFilters(); jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); jfc.setAcceptAllFileFilterUsed(false); FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); jfc.setFileFilter(filter); - /*jfc.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(MouseEvent arg0) { - - if(arg0.getClickCount() == 2) { - File file = jfc.getSelectedFile(); - if(!FileUtils.getExtension(file).equals("ttool")) { - jfc.setCurrentDirectory(file); - jfc.rescanCurrentDirectory(); - } - } - } - - @Override - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - });*/ } int returnVal = jfc.showOpenDialog(frame); @@ -2755,6 +2653,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } public void openLastProject(int id) { + // Check if a current modeling is opened boolean b = actions[TGUIAction.ACT_SAVE].isEnabled(); if (b) { @@ -2764,11 +2663,15 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } file = new File(ConfigurationTTool.LastOpenFiles[id]); + //TraceManager.addDev("Opening project #" + id + " for file=" + file.getAbsolutePath()); if (checkFileForOpen(file)) { String s = null; if (FileUtils.getExtension(file).equals("ttool")) { + openProjectFromFile(file); + return; + /*TraceManager.addDev("this is a ttool project"); int last = 0; for (int i = 0; i < ConfigurationTTool.LastOpenFile.length(); i++) { if (ConfigurationTTool.LastOpenFile.charAt(i) == '/') @@ -2783,26 +2686,27 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per SpecConfigTTool.loadConfigFile(config); } catch (MalformedConfigurationException e) { System.err.println(e.getMessage() + " : Can't load config file."); - } + }*/ } else { dir = null; config = null; SpecConfigTTool.setBasicConfig(systemcOn); + try { + FileInputStream fis = new FileInputStream(file); + int nb = fis.available(); + + byte[] ba = new byte[nb]; + fis.read(ba); + fis.close(); + s = new String(ba, "UTF-8"); + //TraceManager.addDev("Model:" + s); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE); + return; + } } - try { - FileInputStream fis = new FileInputStream(file); - int nb = fis.available(); - byte[] ba = new byte[nb]; - fis.read(ba); - fis.close(); - s = new String(ba, "UTF-8"); - //TraceManager.addDev("Model:" + s); - } catch (Exception e) { - JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE); - return; - } // close current modeling closeTurtleModeling(); @@ -2815,32 +2719,9 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per // Issue #41: Moved to common method updateLastOpenFile(file); loadModels(s, "loaded"); - //TraceManager.addDev("Loading"); - // load the new TURTLE modeling - // try { - // gtm.loadModelingFromXML(s); - // //gtm.saveOperation(tcdp); - // frame.setTitle("TTool: " + file.getAbsolutePath()); - // makeLotosFile(); - // - // if (gtm.getCheckingErrors().size() > 0) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // } - // catch (MalformedModelingException mme) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // frame.setTitle("TTool: unamed project"); - // } - // - // dtree.forceUpdate(); - // gtm.enableUndo(true); - // gtm.saveOperation(getCurrentSelectedPoint()); + } - //Added by Solange - //TURTLEPanel tp = getCurrentTURTLEPanel(); - //gtm.generateLists((ProactiveDesignPanel)tp); - // } private void loadModels(final String xmlModel, @@ -3610,7 +3491,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per DesignPanel dp = (DesignPanel) tp; JDialogModelChecking.validated = dp.validated; JDialogModelChecking.ignored = dp.ignored; - LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); + List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate, dp.tcdp.getComponentList(), "Choosing Tclasses to validate"); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -3722,7 +3603,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per AvatarDesignPanel adp = (AvatarDesignPanel) tp; //JDialogModelChecking.validated = adp.validated; //JDialogModelChecking.ignored = adp.ignored; - LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); + List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -3782,7 +3663,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per //JDialogModelChecking.validated = adp.validated; //JDialogModelChecking.ignored = adp.ignored; - LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); + List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -4208,14 +4089,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return ret; } - public LinkedList<TAttribute> getAllAttributes() { + public List<TAttribute> getAllAttributes() { TURTLEPanel tp = getCurrentTURTLEPanel(); String name = getCurrentTDiagramPanel().getName(); return this.getAllAttributes(tp, name); } - public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) { + public List<TAttribute> getAllAttributes(TURTLEPanel tp, String name) { if (tp == null) { return null; } @@ -4228,8 +4109,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return adp.getAllAttributes(name); } - - public LinkedList<AvatarMethod> getAllMethods() { + public List<AvatarMethod> getAllMethods() { TURTLEPanel tp = getCurrentTURTLEPanel(); if (tp == null) { return null; @@ -4245,13 +4125,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return adp.getAllMethods(name); } - public LinkedList<AvatarSignal> getAllSignals() { + public List<AvatarSignal> getAllSignals() { TURTLEPanel tp = getCurrentTURTLEPanel(); String name = getCurrentTDiagramPanel().getName(); return this.getAllSignals(tp, name); } - public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) { + public List<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) { if (tp == null) { return null; } @@ -4505,7 +4385,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return tmlcomp.getAllOutRequests(name); } - public LinkedList<String> getAllTimers() { + public List<String> getAllTimers() { TURTLEPanel tp = getCurrentTURTLEPanel(); if (tp == null) { return null; @@ -8544,7 +8424,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel); - LinkedList<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList(); + List<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList(); AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp); // Generator for block tasks and application main file diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java index e94e968e408ae31509754943b4f004994551cf1b..3d48762e9b1ee42229a55734f072450b44d73dbd 100755 --- a/src/main/java/ui/TGComponent.java +++ b/src/main/java/ui/TGComponent.java @@ -59,12 +59,17 @@ import ui.tmldd.TMLArchiFirewallNode; import ui.util.IconManager; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; import java.util.Vector; /** @@ -482,13 +487,14 @@ public abstract class TGComponent implements CDElement, GenericTree { latencyCheck = b; } - public LinkedList<TGComponent> getAllCheckableInvariant() { - LinkedList<TGComponent> list = new LinkedList<TGComponent>(); + public List<TGComponent> getAllCheckableInvariant() { + List<TGComponent> list = new LinkedList<TGComponent>(); getAllCheckableInvariant(list); + return list; } - public void getAllCheckableInvariant(LinkedList<TGComponent> _list) { + public void getAllCheckableInvariant( List<TGComponent> _list) { if (invariant) { _list.add(this); } @@ -606,7 +612,6 @@ public abstract class TGComponent implements CDElement, GenericTree { GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12); } - public void drawAttributes(Graphics g, String attr) { if (attr == null) { return; diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java index 6ec0575134c1dc742a55375fdb720c41b76f2fa2..f3744ee46a10c205f581eee7cf04af46b7b75211 100644 --- a/src/main/java/ui/TGUIAction.java +++ b/src/main/java/ui/TGUIAction.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import common.ConfigurationTTool; @@ -50,9 +47,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; -import myutil.*; - - /** * Class TGUIAction * @@ -265,7 +259,7 @@ public class TGUIAction extends AbstractAction { public static final int TMLCP_START = 384; public static final int TMLCP_STOP = 385; public static final int TMLCP_CHOICE = 386; - public static final int TMLCP_JUNCTION = 387; + // public static final int TMLCP_JUNCTION = 387; public static final int TMLCP_FOR_LOOP = 416; public static final int TMLSD_STORAGE_INSTANCE = 388; @@ -1146,7 +1140,9 @@ public class TGUIAction extends AbstractAction { actions[TMLCP_CHOICE] = new TAction("add-tmlcp-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened communication pattern diagram", 0); actions[TMLCP_START] = new TAction("add-tmlcp-start", "Add Start state", IconManager.imgic222, IconManager.imgic222, "Start", "Add a start state to the currently opened communication pattern diagram", 0); actions[TMLCP_STOP] = new TAction("add-tmlcp-stop", "Add Stop", IconManager.imgic210, IconManager.imgic210, "Stop", "Add a termination state to the currently opened communication pattern diagram", 0); - actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0); + + // Issue #69 Removed unused TMLCPJunction + //actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0); actions[TMLCP_FOR_LOOP] = new TAction("add-tmlcp-forloop", "Add loop", IconManager.imgic912, IconManager.imgic912, "Loop", "Add a for loop to the currently opened communication pattern diagram", 0); actions[TMLSD_EDIT] = new TAction("edit-tmlsd-diagram", "Edit CP-SD diagram", IconManager.imgic100, IconManager.imgic101, "Edit the Sequence Diagram", "Make it possible to edit the currently opened communication pattern sequence diagram", 0); diff --git a/src/main/java/ui/TURTLEModelChecker.java b/src/main/java/ui/TURTLEModelChecker.java index f5d9ab4d1c492cbf3189668ba87ed53f01f129f9..716b0ac696eead79f1b8289e0f9f33a67a4c9251 100755 --- a/src/main/java/ui/TURTLEModelChecker.java +++ b/src/main/java/ui/TURTLEModelChecker.java @@ -36,21 +36,32 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; +import java.io.StringReader; +import java.util.LinkedList; +import java.util.List; + import compiler.tmlparser.ParseException; import compiler.tmlparser.SimpleNode; import compiler.tmlparser.TMLExprParser; import compiler.tmlparser.TokenMgrError; import myutil.TraceManager; -import translator.*; - -import java.io.StringReader; -import java.util.ArrayList; -import java.util.LinkedList; +import translator.ADActionStateWithGate; +import translator.ADActionStateWithParam; +import translator.ADChoice; +import translator.ADComponent; +import translator.ADDelay; +import translator.ADLatency; +import translator.ADParallel; +import translator.ADTLO; +import translator.ADTimeInterval; +import translator.ActivityDiagram; +import translator.CheckingError; +import translator.Gate; +import translator.Param; +import translator.TClass; +import translator.TURTLEModeling; /** @@ -95,7 +106,7 @@ public class TURTLEModelChecker { private String ERROR_AD_009_1 = " variable is not correctly used"; private String ERROR_AD_009_2 = " unknown variable"; private String ERROR_AD_009_3 = " unknown gate"; - private String ERROR_AD_009_4 = " unknown param"; + //private String ERROR_AD_009_4 = " unknown param"; private String ERROR_AD_009_5 = " null gate"; private String ERROR_AD_009_6 = " null param"; @@ -581,7 +592,7 @@ public class TURTLEModelChecker { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for(String s: vars) { // is that string a variable? if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) { diff --git a/src/main/java/ui/avatarbd/AvatarBDBlock.java b/src/main/java/ui/avatarbd/AvatarBDBlock.java index e5e329766904ad9895140bb6227f5caf972fb344..5edc8eddbf1208c35bd8a3ee7ad96d7af27385a9 100644 --- a/src/main/java/ui/avatarbd/AvatarBDBlock.java +++ b/src/main/java/ui/avatarbd/AvatarBDBlock.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -57,16 +56,20 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.io.BufferedReader; import java.io.BufferedWriter; import javax.swing.*; -import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.HashMap; import proverifspec.ProVerifResultTrace; import proverifspec.ProVerifResultTraceStep; @@ -89,8 +92,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S private static String stereotype = "block"; private static String stereotypeCrypto = "cryptoblock"; - protected static ArrayList<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock")); - protected static ArrayList<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK)); + protected static List<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock")); + protected static List<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK)); private int typeStereotype = 0; // <<block>> by default private int maxFontSize = 12; @@ -111,13 +114,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S // TAttribute, AvatarMethod, AvatarSignal - protected LinkedList<TAttribute> myAttributes; - protected LinkedList<AvatarMethod> myMethods; - protected LinkedList<AvatarSignal> mySignals; + protected List<TAttribute> myAttributes; + protected List<AvatarMethod> myMethods; + protected List<AvatarSignal> mySignals; protected String[] globalCode; - protected HashMap<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>(); - protected HashMap<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>(); + protected Map<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>(); + protected Map<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>(); public String oldValue; @@ -195,7 +198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S this.mySignals.add(sig); } - public void internalDrawingAux(Graphics graph) { + private void internalDrawingAux(Graphics graph) { //TraceManager.addDev("Block drawing aux = " + this); @@ -595,7 +598,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } - + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -621,6 +624,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return result; } + @Override public boolean editOndoubleClick(JFrame frame, int _x, int _y) { int textX = (int) (this.textX * this.tdp.getZoom()); if (iconIsDrawn) { @@ -814,16 +818,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S _jdab.enableJavaKeyword(false); } - + @Override public int getType() { return TGComponentManager.AVATARBD_BLOCK; } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { return tgc instanceof AvatarBDBlock || tgc instanceof AvatarBDLibraryFunction; } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { boolean swallowed = false; @@ -871,6 +877,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { removeMyInternalComponent(tgc, false); } @@ -908,6 +915,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return false; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<blockType data=\""); @@ -1123,7 +1131,6 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } //TraceManager.addDev("LEP End Block = " + this); - } public boolean addStereotype(String s, int rgb) { @@ -1191,7 +1198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return ret; } - + @Override public void hasBeenResized() { for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { @@ -1207,6 +1214,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarBDBlock)) { // Too large to fit in the father? -> resize it! @@ -1217,8 +1225,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } } - public LinkedList<AvatarBDBlock> getBlockList() { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); + public List<AvatarBDBlock> getBlockList() { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { list.add((AvatarBDBlock) (tgcomponent[i])); @@ -1227,8 +1235,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return list; } - public LinkedList<AvatarBDBlock> getFullBlockList() { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); + public List<AvatarBDBlock> getFullBlockList() { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { list.add((AvatarBDBlock) (tgcomponent[i])); @@ -1238,8 +1246,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return list; } - public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList() { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>(); + public List<AvatarBDLibraryFunction> getFullLibraryFunctionList() { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (this.tgcomponent[i] instanceof AvatarBDLibraryFunction) list.add((AvatarBDLibraryFunction) this.tgcomponent[i]); @@ -1251,13 +1259,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } public boolean hasInternalBlockWithName(String name) { - LinkedList<AvatarBDBlock> list = getFullBlockList(); + List<AvatarBDBlock> list = getFullBlockList(); for (AvatarBDBlock b : list) { if (b.getValue().compareTo(name) == 0) { return true; } } - LinkedList<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList(); + List<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList(); for (AvatarBDLibraryFunction b : llist) { if (b.getFunctionName().compareTo(name) == 0) { return true; @@ -1267,12 +1275,12 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return false; } - + @Override public int getDefaultConnector() { return TGComponentManager.AVATARBD_PORT_CONNECTOR; } - public LinkedList<TAttribute> getAttributeList() { + public List<TAttribute> getAttributeList() { return this.myAttributes; } @@ -1287,54 +1295,54 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S this.myAttributes.add(ta); } - public LinkedList<AvatarMethod> getMethodList() { + public List<AvatarMethod> getMethodList() { return this.myMethods; } - public LinkedList<AvatarSignal> getSignalList() { + public List<AvatarSignal> getSignalList() { return this.mySignals; } - public LinkedList<AvatarSignal> getOutSignalList() { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + public List<AvatarSignal> getOutSignalList() { + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); for (AvatarSignal s : this.mySignals) if (s.getInOut() == AvatarSignal.OUT) v.add(s); return v; } - public LinkedList<AvatarSignal> getInSignalList() { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + public List<AvatarSignal> getInSignalList() { + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); for (AvatarSignal s : this.mySignals) if (s.getInOut() == AvatarSignal.IN) v.add(s); return v; } - public LinkedList<AvatarMethod> getAllMethodList() { + public List<AvatarMethod> getAllMethodList() { if (getFather() == null) { return this.myMethods; } - LinkedList<AvatarMethod> v = new LinkedList<AvatarMethod>(); + List<AvatarMethod> v = new LinkedList<AvatarMethod>(); v.addAll(this.myMethods); v.addAll(((AvatarBDBlock) getFather()).getAllMethodList()); return v; } - public LinkedList<AvatarSignal> getAllSignalList() { + public List<AvatarSignal> getAllSignalList() { if (getFather() == null) { return this.mySignals; } - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); v.addAll(this.mySignals); v.addAll(((AvatarBDBlock) getFather()).getAllSignalList()); return v; } - public LinkedList<String> getAllTimerList() { - LinkedList<String> v = new LinkedList<String>(); + public List<String> getAllTimerList() { + List<String> v = new LinkedList<String>(); for (TAttribute a : this.myAttributes) if (a.getType() == TAttribute.TIMER) @@ -1349,19 +1357,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return null; } - public LinkedList<AvatarSignal> getListOfAvailableSignals() { + public List<AvatarSignal> getListOfAvailableSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableSignals(this); } - public LinkedList<AvatarSignal> getListOfAvailableOutSignals() { + public List<AvatarSignal> getListOfAvailableOutSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableOutSignals(this); } - public LinkedList<AvatarSignal> getListOfAvailableInSignals() { + public List<AvatarSignal> getListOfAvailableInSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableInSignals(this); } - // _id may contain the full signal public AvatarSignal getSignalNameBySignalDef(String _id) { int index0 = _id.indexOf('('); @@ -1494,6 +1501,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return -1; } + @Override public ImageIcon getImageIcon() { return myImageIcon; } @@ -1507,11 +1515,11 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return this.getBlockName(); } + @Override public String toString() { return "Block: " + getValue(); } - public String getAttributes() { String attr = ""; for (TAttribute a: myAttributes) { @@ -1525,9 +1533,4 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } return attr; } - - - - - } diff --git a/src/main/java/ui/avatarbd/AvatarBDPanel.java b/src/main/java/ui/avatarbd/AvatarBDPanel.java index 9d2e308199a6a3fb64df1decaaaf1d983904d3c1..70c04c57584998067fb3580f8e379caa8d44142b 100644 --- a/src/main/java/ui/avatarbd/AvatarBDPanel.java +++ b/src/main/java/ui/avatarbd/AvatarBDPanel.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarbd; - import myutil.Conversion; import myutil.TraceManager; import org.w3c.dom.Element; @@ -61,7 +57,8 @@ import java.util.*; * @author Ludovic APVRILLE */ public class AvatarBDPanel extends TDiagramPanel { - private LinkedList<AvatarBDStateMachineOwner> validated, ignored; + + private List<AvatarBDStateMachineOwner> validated, ignored; private String val = null, ign = null; private boolean optimized = true; @@ -78,6 +75,7 @@ public class AvatarBDPanel extends TDiagramPanel { addMouseMotionListener(tdmm);*/ } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { // if (tgc instanceof AvatarBDBlock) { @@ -94,6 +92,7 @@ public class AvatarBDPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnAdd(TGComponent tgc) { if (tgc instanceof AvatarBDBlock) { AvatarBDBlock abdb = (AvatarBDBlock)(tgc); @@ -109,12 +108,13 @@ public class AvatarBDPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnRemove(TGComponent tgc) { if (tgc instanceof AvatarBDStateMachineOwner) { AvatarBDStateMachineOwner abdb = (AvatarBDStateMachineOwner) tgc; this.mgui.removeAvatarBlock (tp, abdb.getOwnerName()); if (tgc instanceof AvatarBDBlock) { - LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) abdb).getFullBlockList(); + List<AvatarBDBlock> list = ((AvatarBDBlock) abdb).getFullBlockList(); for(AvatarBDBlock b: list) mgui.removeAvatarBlock(tp, b.getBlockName()); @@ -130,44 +130,46 @@ public class AvatarBDPanel extends TDiagramPanel { public void updateSignalAttachement(AvatarBDBlock _b, AvatarBDPortConnector _conn) { - - // Set all signals of B as non connected - _b.setSignalsAsNonAttached(); - - - Iterator iterator = getComponentList().listIterator(); - while(iterator.hasNext()) { - TGComponent tgc = (TGComponent)(iterator.next()); - if (tgc instanceof AvatarBDPortConnector) { - AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; - AvatarBDBlock block1 = port.getAvatarBDBlock1(); - AvatarBDBlock block2 = port.getAvatarBDBlock2(); - if ((block1 != null) && (block2 != null)) { - if ((_b == block1) || (_b == block2)) { - //TraceManager.addDev("Relation found"); - LinkedList<String> l; - if (_b == block1) { - l = port.getListOfSignalsOrigin(); - } else { - l = port.getListOfSignalsDestination(); - } - - for(String name: l) { - name = AvatarSignal.getSignalNameFromFullSignalString(name); - //TraceManager.addDev("Searching for " + name + " in block " + _b); - AvatarSignal sig = _b.getAvatarSignalFromName(name); - if (sig != null) { - //TraceManager.addDev("Sig " + name + " is attached to a relation"); - sig.attachedToARelation = true; - } - } - } - } - } - } - } - - + // Set all signals of B as non connected + _b.setSignalsAsNonAttached(); + + Iterator<TGComponent> iterator = getComponentList().listIterator(); + + while(iterator.hasNext()) { + TGComponent tgc = iterator.next(); + + if (tgc instanceof AvatarBDPortConnector) { + AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; + AvatarBDBlock block1 = port.getAvatarBDBlock1(); + AvatarBDBlock block2 = port.getAvatarBDBlock2(); + + if ((block1 != null) && (block2 != null)) { + if ((_b == block1) || (_b == block2)) { + //TraceManager.addDev("Relation found"); + List<String> l; + + if (_b == block1) { + l = port.getListOfSignalsOrigin(); + } else { + l = port.getListOfSignalsDestination(); + } + + for(String name: l) { + name = AvatarSignal.getSignalNameFromFullSignalString(name); + //TraceManager.addDev("Searching for " + name + " in block " + _b); + AvatarSignal sig = _b.getAvatarSignalFromName(name); + if (sig != null) { + //TraceManager.addDev("Sig " + name + " is attached to a relation"); + sig.attachedToARelation = true; + } + } + } + } + } + } + } + + @Override public boolean actionOnValueChanged(TGComponent tgc) { if (tgc instanceof AvatarBDBlock) { //updateAllSignalsOnConnectors(); @@ -240,7 +242,7 @@ public class AvatarBDPanel extends TDiagramPanel { public String displayParam() { String s = ""; String [] tmp = Conversion.wrapText(mainCode); - String tmps; + //String tmps; int i; for(i=0; i<tmp.length; i++) { @@ -369,10 +371,10 @@ public class AvatarBDPanel extends TDiagramPanel { } } - public LinkedList<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getSignalList(); + List<AvatarSignal> listOfBlock = _block.getSignalList(); if (listOfBlock.size() == 0) return v; @@ -382,11 +384,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector) tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -394,10 +396,10 @@ public class AvatarBDPanel extends TDiagramPanel { return v; } - public LinkedList<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getOutSignalList(); + List<AvatarSignal> listOfBlock = _block.getOutSignalList(); if (listOfBlock.size() == 0) return v; @@ -407,11 +409,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -419,10 +421,10 @@ public class AvatarBDPanel extends TDiagramPanel { return v; } - public LinkedList<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getInSignalList(); + List<AvatarSignal> listOfBlock = _block.getInSignalList(); if (listOfBlock.size() == 0) return v; @@ -432,11 +434,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -445,7 +447,7 @@ public class AvatarBDPanel extends TDiagramPanel { } // Remove AvatarSignals of v which name is provided in list - private static void removeSignals(List<AvatarSignal> v, LinkedList<String> list) { + private static void removeSignals(List<AvatarSignal> v, List<String> list) { for(String s: list) { Iterator<AvatarSignal> iterator = v.iterator (); while (iterator.hasNext ()) { @@ -458,8 +460,8 @@ public class AvatarBDPanel extends TDiagramPanel { } } - public HashMap<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){ - HashMap<String,List<String>> blockStringMap = new HashMap<String, List<String>>(); + public Map<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){ + Map<String,List<String>> blockStringMap = new HashMap<String, List<String>>(); for (AvatarBDBlock block: getFullBlockList()){ List<String> strs = new ArrayList<String>(); if (addAttributes){ @@ -481,8 +483,8 @@ public class AvatarBDPanel extends TDiagramPanel { return blockStringMap; } - public LinkedList<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() { - LinkedList<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>(); + public List<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() { + List<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>(); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDStateMachineOwner) { @@ -496,8 +498,8 @@ public class AvatarBDPanel extends TDiagramPanel { return list; } - public LinkedList<AvatarBDBlock> getFullBlockList () { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> (); + public List<AvatarBDBlock> getFullBlockList () { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> (); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDBlock) { @@ -538,8 +540,8 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList () { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); + public List<AvatarBDLibraryFunction> getFullLibraryFunctionList () { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDLibraryFunction) @@ -548,8 +550,8 @@ public class AvatarBDPanel extends TDiagramPanel { return list; } - public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); + public List<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) { @@ -561,7 +563,7 @@ public class AvatarBDPanel extends TDiagramPanel { } public TAttribute getAttributeByBlockName(String _blockName, String attributeName) { - TAttribute a; + //TAttribute a; for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_blockName)) return block.getAttributeByName(attributeName); @@ -569,8 +571,8 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<TAttribute> getAllAttributesOfBlock (String _name) { - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList (); + public List<TAttribute> getAllAttributesOfBlock (String _name) { + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList (); for(AvatarBDStateMachineOwner block: list) if (block.getOwnerName ().equals (_name)) return block.getAttributeList (); @@ -578,7 +580,7 @@ public class AvatarBDPanel extends TDiagramPanel { return new LinkedList<TAttribute> (); } - public LinkedList<AvatarMethod> getAllMethodsOfBlock(String _name) { + public List<AvatarMethod> getAllMethodsOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllMethodList(); @@ -586,7 +588,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<AvatarSignal> getAllSignalsOfBlock(String _name) { + public List<AvatarSignal> getAllSignalsOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllSignalList(); @@ -594,7 +596,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<String> getAllTimersOfBlock(String _name) { + public List<String> getAllTimersOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllTimerList(); @@ -602,7 +604,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<TAttribute> getAttributesOfDataType(String _name) { + public List<TAttribute> getAttributesOfDataType(String _name) { for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDDataType) { AvatarBDDataType adt = (AvatarBDDataType)tgc; @@ -628,14 +630,14 @@ public class AvatarBDPanel extends TDiagramPanel { return mainCode; } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { if ((val != null) && (validated == null)) { makeValidated(); } return validated; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { if ((ign != null) && (ignored == null)) { makeIgnored(); } @@ -646,12 +648,11 @@ public class AvatarBDPanel extends TDiagramPanel { return optimized; } - - public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) { + public void setValidated( List<AvatarBDStateMachineOwner> _validated) { validated = _validated; } - public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) { + public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) { ignored = _ignored; } @@ -662,7 +663,7 @@ public class AvatarBDPanel extends TDiagramPanel { public void makeValidated() { TraceManager.addDev("Making validated with val=" + val); validated = new LinkedList<AvatarBDStateMachineOwner> (); - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); String tmp; String split[] = val.split(";"); @@ -683,7 +684,7 @@ public class AvatarBDPanel extends TDiagramPanel { public void makeIgnored() { TraceManager.addDev("Making ignored with ign=" + val); ignored = new LinkedList<AvatarBDStateMachineOwner> (); - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); String tmp; String split[] = ign.split(";"); diff --git a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java index e09477549c1f2bbf82e48f49107959bc0e763022..e1b2a7f95f8f55e5f137fe0342a66941900958e8 100644 --- a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java +++ b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -49,10 +48,14 @@ import ui.util.IconManager; import ui.window.JDialogPerformancePragma; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; import java.util.Map; /** @@ -66,7 +69,7 @@ import java.util.Map; public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalComponent { protected String[] values; - protected LinkedList<String> properties; + protected List<String> properties; protected int textX = 40; protected int textY = 5; protected int marginY = 20; @@ -74,7 +77,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone protected int limit = 15; protected int lockX = 1; protected int lockY = 5; - public ArrayList<String> syntaxErrors; + public List<String> syntaxErrors; protected Graphics myg; protected Color myColor; @@ -83,7 +86,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone // private int maxFontSize = 30; // private int minFontSize = 4; private int currentFontSize = -1; - private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"}; + // private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"}; public Map<String, String> verifMap = new HashMap<String, String>(); protected Graphics graphics; @@ -129,10 +132,11 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone return values; } - public LinkedList<String> getProperties() { + public List<String> getProperties() { return properties; } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -255,7 +259,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone } }*/ - + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -283,6 +287,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone return null; } + @Override public void rescale(double scaleFactor) { /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor; lineHeight = (int)(dlineHeight); @@ -294,10 +299,12 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone super.rescale(scaleFactor); } + @Override public int getType() { return TGComponentManager.PERFORMANCE_PRAGMA; } + @Override protected String translateExtraParam() { if (values == null) { makeValue(); diff --git a/src/main/java/ui/avatarbd/AvatarBDPragma.java b/src/main/java/ui/avatarbd/AvatarBDPragma.java index 7dd4d58ffcd5f8878fcc683c6cc9c7b1d1a121a1..f3b9419132506fd08616b09c0b3bf13eda6e166e 100755 --- a/src/main/java/ui/avatarbd/AvatarBDPragma.java +++ b/src/main/java/ui/avatarbd/AvatarBDPragma.java @@ -405,6 +405,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; diff --git a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java index f26e17890af344f312123045f944d3c58f91cc74..13b68cefd465fb4d00b24ab12f72c5be5aacfb45 100755 --- a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java +++ b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java @@ -36,19 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarbd; +import java.util.List; + import ui.AvatarMethod; import ui.AvatarSignal; import ui.TAttribute; import ui.avatarsmd.AvatarSMDPanel; -import java.util.LinkedList; - - /** * This interface represent block diagram elements that are associated to a state machine. * It defines the functions so that a state machine can deal transparently no matter if @@ -59,14 +55,14 @@ import java.util.LinkedList; */ public interface AvatarBDStateMachineOwner { - LinkedList<TAttribute> getAttributeList(); - LinkedList<String> getAllTimerList(); + List<TAttribute> getAttributeList(); + List<String> getAllTimerList(); TAttribute getAttributeByName(String _name); - LinkedList<AvatarSignal> getSignalList(); - LinkedList<AvatarSignal> getAllSignalList(); + List<AvatarSignal> getSignalList(); + List<AvatarSignal> getAllSignalList(); AvatarSignal getSignalNameBySignalDef(String _id); - LinkedList<AvatarMethod> getMethodList(); - LinkedList<AvatarMethod> getAllMethodList(); + List<AvatarMethod> getMethodList(); + List<AvatarMethod> getAllMethodList(); String getOwnerName(); AvatarSMDPanel getAvatarSMDPanel(); diff --git a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java index e12766e20c0d422098c0e2144397fe4b36d6d070..127a1e7912df018c2295369764a8ba89dbaa9633 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java @@ -109,7 +109,6 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i } }*/ - public void setTransitionInfo(String guard, String action) { AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); if (!guard.isEmpty()) { diff --git a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java index 802ff5f9fcb8764c111a24c4717480b78cbd3163..c4e16b68cd489248aa8f6c8b655aa8559586e5c8 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java @@ -36,22 +36,30 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDExpireTimer * Action of waiting for the expiration of a timer @@ -97,8 +105,8 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX + linebreak); if ((w1 != width) & (!tdp.isScaled())) { @@ -106,7 +114,6 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas width = w1; //updateConnectingPoints(); } - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -170,6 +177,7 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -182,15 +190,16 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Timer expiration", getTimerName(), "", timers, false); diff --git a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java index ad21ef15f3329e08c73cbf48bbf0b8460cb0f9cc..97637c476049338a64d8c0ad4dda966fccab62ad 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java @@ -36,29 +36,36 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.List; +import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogAvatarSignal; - -import java.util.concurrent.ConcurrentHashMap; - -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Vector; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.avatarrd.AvatarRDRequirement; - import ui.tmlad.TMLADReadChannel; +import ui.util.IconManager; +import ui.window.JDialogAvatarSignal; /** * Class AvatarSMDReceiveSignal * Action of receiving a signal @@ -112,11 +119,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C //latencyVals.put("sendChannel: sensorData", "15"); } - public void addLatency(String name, String num){ latencyVals.put(name,num); } - public void internalDrawing(Graphics g) { + + @Override + public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value + textX1); int w1 = Math.max(minWidth, w + 2 * textX); @@ -360,14 +368,14 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C return nParam; }*/ - + + @Override public boolean editOndoubleClick(JFrame frame) { - // - LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); + List<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); TraceManager.addDev("Nb of signals:" + signals.size()); - ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); + List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); Vector<TGComponent> refs = new Vector<TGComponent>(); for (TGComponent req: tdp.getMGUI().getAllRequirements()){ // @@ -380,6 +388,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C refs.add(tg); } } + JDialogAvatarSignal jdas = new JDialogAvatarSignal(frame, "Setting receive signal", value, signals, false, reference, refs); //jdas.setSize(350, 300); GraphicLib.centerOnParent(jdas, 550, 300); diff --git a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java index 2498e1f818897605d529e1d8b496d6fed5314480..a65555c45fd797ff542ecf7cc4cf58f125113892 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java @@ -36,22 +36,30 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDResetTimer * Action of resetting a timer @@ -166,6 +174,7 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -178,15 +187,16 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Reset timer", getTimerName(), "", timers, false); @@ -212,20 +222,19 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi value = "reset(" + val0 + ")"; return true; - } - - - + @Override public int getType() { return TGComponentManager.AVATARSMD_RESET_TIMER; } - public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + @Override + public int getDefaultConnector() { + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java index b9000b58a5f4d83d6ed1a3a2663759589615c420..55fd6ffca7a87bdaea11567e708ca8a9bf6eb834 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java @@ -36,27 +36,35 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogAvatarSignal; - -import javax.swing.*; -import java.awt.*; +import java.awt.Color; +import java.awt.Graphics; import java.awt.geom.Line2D; -import java.util.LinkedList; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.concurrent.ConcurrentHashMap; +import java.util.List; import java.util.Vector; -import ui.avatarrd.AvatarRDRequirement; +import java.util.concurrent.ConcurrentHashMap; + +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import myutil.GraphicLib; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.avatarrd.AvatarRDRequirement; import ui.tmlad.TMLADWriteChannel; +import ui.util.IconManager; +import ui.window.JDialogAvatarSignal; /** * Class AvatarSMDSendSignal * Action of sending a signal @@ -105,11 +113,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec myImageIcon = IconManager.imgic904; latencyVals = new ConcurrentHashMap<String, String>(); } + public void addLatency(String name, String num){ latencyVals.put(name,num); } + + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -289,6 +299,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -353,10 +364,11 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec return AvatarSignal.getValue(value, _index); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); + List<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); //TraceManager.addDev("Nb of signals:" + signals.size()); - ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); + List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); Vector<TGComponent> refs = new Vector<TGComponent>(); for (TGComponent req: tdp.getMGUI().getAllRequirements()){ @@ -466,15 +478,17 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec makeValue(); }*/ - + @Override public int getType() { return TGComponentManager.AVATARSMD_SEND_SIGNAL; } + @Override public int getDefaultConnector() { return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java index ee71ee48658042a58015a793021c627d9331cc1f..952f1039cc9a7b8a54e77d55bb4c820ed35f50c1 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java @@ -36,22 +36,30 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDSetTimer * Action of setting a timer @@ -97,9 +105,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - - int w = g.getFontMetrics().stringWidth(value); + int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { setCd(x + width/2 - w1/2, y); @@ -168,6 +176,7 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -180,8 +189,8 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); @@ -191,8 +200,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE return AvatarSignal.getValue(value, 1); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Setting timer set", getTimerName(), getTimerValue(), timers, true); diff --git a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java index b4652293edf1251cbeff112edf513d5ed2403446..2b06c17854421475e1f395acda02505c9a1b3264 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java @@ -49,11 +49,10 @@ import ui.util.IconManager; import ui.window.JDialogAvatarTransition; import javax.swing.*; -import java.awt.*; -import java.util.LinkedList; -import java.util.Vector; -//import java.awt.geom.*; +import java.awt.Graphics; +import java.util.List; +import java.util.Vector; /** * Class AvatarSMDTransitionInfo @@ -69,7 +68,6 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme // private static String FILE_INFO = "(user files specified)"; // private static String CODE_INFO = "(user code specified)"; - protected String guard; protected String afterMin; protected String afterMax; @@ -279,13 +277,15 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme return null; } + @Override public boolean isInRectangle(int x1, int y1, int width, int height) { return !((getX() < x1) || (getY() < y1) || ((getX() + this.width) > (x1 + width)) || ((getY() + this.height) > (y1 + height))); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<TAttribute> attributes = tdp.getMGUI().getAllAttributes(); - LinkedList<AvatarMethod> methods = tdp.getMGUI().getAllMethods(); + List<TAttribute> attributes = tdp.getMGUI().getAllAttributes(); + List<AvatarMethod> methods = tdp.getMGUI().getAllMethods(); JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability); // jdat.setSize(600, 550); GraphicLib.centerOnParent(jdat, 600, 550); diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java index ca6785b0a23c9f45212c3f2903e5d5f9dff58346..c259e8b36dfca8252615d12c2b33cae4ccbca318 100755 --- a/src/main/java/ui/util/DefaultText.java +++ b/src/main/java/ui/util/DefaultText.java @@ -50,8 +50,8 @@ package ui.util; */ public class DefaultText { - public static String BUILD = "12707"; - public static String DATE = "2018/07/23 16:51:06 CET"; + public static String BUILD = "12714"; + public static String DATE = "2018/07/30 02:01:35 CET"; public static StringBuffer sbAbout = makeAbout(); diff --git a/src/main/java/ui/window/JDialogAvatarBlock.java b/src/main/java/ui/window/JDialogAvatarBlock.java index 1990712faa3069c10c8a83a1d3c92243aceeca70..c3bdb5e3252b86d5d92c10d2d02e5006743acb75 100644 --- a/src/main/java/ui/window/JDialogAvatarBlock.java +++ b/src/main/java/ui/window/JDialogAvatarBlock.java @@ -48,10 +48,19 @@ import ui.TAttribute; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; +import java.util.List; /** @@ -64,10 +73,10 @@ import java.util.LinkedList; */ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener { - private LinkedList<TAttribute> attributes, attributesPar, forbidden; - private LinkedList<Boolean> initValues; - private LinkedList<AvatarMethod> methods, methodsPar; - private LinkedList<AvatarSignal> signals, signalsPar; + private List<TAttribute> attributes, attributesPar, forbidden; + private List<Boolean> initValues; + private List<AvatarMethod> methods, methodsPar; + private List<AvatarSignal> signals, signalsPar; private boolean checkKeyword, checkJavaKeyword; private boolean cancelled = true; @@ -122,7 +131,7 @@ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, L /** * Creates new form */ - public JDialogAvatarBlock(LinkedList<TAttribute> _attributes, LinkedList<AvatarMethod> _methods, LinkedList<AvatarSignal> _signals, LinkedList<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) { + public JDialogAvatarBlock( List<TAttribute> _attributes, List<AvatarMethod> _methods, List<AvatarSignal> _signals, List<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) { super(f, title, true); frame = f; attributesPar = _attributes; diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java index c463100117e717db09c6518b180c254d5dfd0185..555e36aa46bb837cc0978c7e3681ec66cfece14d 100644 --- a/src/main/java/ui/window/JDialogAvatarSignal.java +++ b/src/main/java/ui/window/JDialogAvatarSignal.java @@ -38,19 +38,29 @@ package ui.window; -import ui.AvatarSignal; -import ui.util.IconManager; -import ui.TGComponent; -import myutil.TraceManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; import java.util.List; import java.util.Vector; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import myutil.TraceManager; +import ui.AvatarSignal; +import ui.TGComponent; + /** * Class JDialogAvatarSignal @@ -61,8 +71,8 @@ import java.util.Vector; */ public class JDialogAvatarSignal extends JDialogBase implements ActionListener { - private LinkedList<AvatarSignal> signals, realSignals; - private LinkedList<String> showSignals; + private List<AvatarSignal> signals, realSignals; + private List<String> showSignals; private String currentSignal; private boolean isOut; @@ -81,7 +91,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener private JTextField signal; /** Creates new form */ - public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, LinkedList<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) { + public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, List<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) { super(_f, _title, true); @@ -100,7 +110,6 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener pack(); } - private void makeSignals() { showSignals = new LinkedList<String> (); realSignals = new LinkedList<AvatarSignal> (); diff --git a/src/main/java/ui/window/JDialogAvatarTimer.java b/src/main/java/ui/window/JDialogAvatarTimer.java index 845172d98b277dfb7457c85edb30ffb0082b84ec..913b268c5aa7a90f37e8792226fcf92f1e282e97 100644 --- a/src/main/java/ui/window/JDialogAvatarTimer.java +++ b/src/main/java/ui/window/JDialogAvatarTimer.java @@ -36,18 +36,25 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.window; -import ui.util.IconManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.LinkedList; +import java.util.List; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.border.TitledBorder; /** * Class JDialogAvatarTimer @@ -58,7 +65,7 @@ import java.util.LinkedList; */ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { - private LinkedList<String> timers; + private List<String> timers; private boolean cancelled = true; private JPanel panel1, panel2; @@ -77,8 +84,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { /** Creates new form */ - public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, LinkedList<String> _timers, boolean _setValue) { - + public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, List<String> _timers, boolean _setValue) { super(_f, _title, true); timers = _timers; @@ -87,13 +93,13 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { setValue = _setValue; initComponents(); - myInitComponents(); + // myInitComponents(); pack(); } - - - private void myInitComponents() { - } +// +// +// private void myInitComponents() { +// } private void initComponents() { Container c = getContentPane(); @@ -102,7 +108,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { GridBagLayout gridbag2 = new GridBagLayout(); GridBagConstraints c0 = new GridBagConstraints(); GridBagConstraints c1 = new GridBagConstraints(); - GridBagConstraints c2 = new GridBagConstraints(); + //GridBagConstraints c2 = new GridBagConstraints(); setFont(new Font("Helvetica", Font.PLAIN, 14)); c.setLayout(gridbag0); @@ -112,7 +118,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { panel1 = new JPanel(); panel1.setLayout(gridbag1); - panel1.setBorder(new javax.swing.border.TitledBorder("Timer")); + panel1.setBorder(new TitledBorder("Timer")); panel1.setPreferredSize(new Dimension(300, 150)); diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java index fa6a4772183309ec845df40fff2b1dd71a851c19..e1847f538c9fe58a0ef19c27796859521625af6b 100644 --- a/src/main/java/ui/window/JDialogAvatarTransition.java +++ b/src/main/java/ui/window/JDialogAvatarTransition.java @@ -36,24 +36,35 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.window; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; +import java.util.Vector; - -package ui.window; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; import myutil.Conversion; import myutil.GraphicLib; import ui.AvatarMethod; -import ui.util.IconManager; import ui.TAttribute; -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Vector; - /** * Class JDialogAvatarTransition * Dialog for managing transitions between states @@ -65,8 +76,8 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen private Vector<String> actions; private String guard, afterMin, afterMax, computeMin, computeMax, probability; - private LinkedList<TAttribute> myAttributes; - private LinkedList<AvatarMethod> myMethods; + private List<TAttribute> myAttributes; + private List<AvatarMethod> myMethods; private Vector<String> allElements, insertElements; protected String [] filesToInclude; @@ -91,7 +102,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen // arrayDelay: [0] -> minDelay ; [1] -> maxDelay public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax, String _computeMin, String _computeMax, Vector<String> _actions, - LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods, + List<TAttribute> _myAttributes, List<AvatarMethod> _myMethods, String[] _filesToInclude, String[] _codeToInclude, String _probability) { super(_f, _title, true); @@ -407,5 +418,4 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen public String[] getCodeToInclude() { return codeToInclude; } - } diff --git a/src/main/java/ui/window/JDialogModelChecking.java b/src/main/java/ui/window/JDialogModelChecking.java index 93fb37d7bb7f70746e6a739e717050895e5ebfe7..c6978e3a9030df76deb3dbdf9d500f2db7036fee 100644 --- a/src/main/java/ui/window/JDialogModelChecking.java +++ b/src/main/java/ui/window/JDialogModelChecking.java @@ -46,11 +46,20 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; /** * Class JDialogModelChecking @@ -61,10 +70,10 @@ import java.util.LinkedList; * @version 1.0 13/12/2003 */ public class JDialogModelChecking extends JDialogBase implements ActionListener, ListSelectionListener { - public static java.util.List<TClassInterface> validated, ignored; + public static List<TClassInterface> validated, ignored; private static boolean overideSyntaxChecking = false; - private java.util.List<TClassInterface> val, ign, back; + private List<TClassInterface> val, ign, back; //subpanels private JPanel panel1, panel2, panel3, panel4, panel5, panel6; @@ -79,7 +88,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, /** * Creates new form */ - public JDialogModelChecking(Frame f, LinkedList<TClassInterface> _back, java.util.List<TGComponent> componentList, String title) { + public JDialogModelChecking(Frame f, List<TClassInterface> _back, List<TGComponent> componentList, String title) { super(f, title, true); back = _back; @@ -101,8 +110,8 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, pack(); } - private java.util.List<TClassInterface> makeNewVal(java.util.List<TGComponent> list) { - java.util.List<TClassInterface> v = new LinkedList<TClassInterface>(); + private List<TClassInterface> makeNewVal(List<TGComponent> list) { + List<TClassInterface> v = new LinkedList<TClassInterface>(); for (TGComponent tgc : list) if (tgc instanceof TClassInterface) @@ -111,7 +120,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, return v; } - private void checkTClasses(java.util.List<TClassInterface> tobeChecked, java.util.List<TGComponent> source) { + private void checkTClasses( List<TClassInterface> tobeChecked, List<TGComponent> source) { Iterator<TClassInterface> iter = tobeChecked.iterator(); while (iter.hasNext()) { TClassInterface t = iter.next(); @@ -120,7 +129,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, } } - public void addNewTclasses(java.util.List<TClassInterface> added, java.util.List<TGComponent> source, java.util.List<TClassInterface> notSource) { + public void addNewTclasses(List<TClassInterface> added, List<TGComponent> source, List<TClassInterface> notSource) { for (TGComponent tgc : source) if ((tgc instanceof TClassInterface) && (!added.contains(tgc)) && (!notSource.contains(tgc))) added.add((TClassInterface) tgc); diff --git a/src/main/java/ui/window/JDialogPerformancePragma.java b/src/main/java/ui/window/JDialogPerformancePragma.java index ab990ef7b29119639f6a49adc47bab2a43b86b98..f204f13efeeb6258616bf32f9daf83ccac701125 100644 --- a/src/main/java/ui/window/JDialogPerformancePragma.java +++ b/src/main/java/ui/window/JDialogPerformancePragma.java @@ -43,10 +43,21 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Class JDialogPragma @@ -67,7 +78,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe protected JMenuBar menuBar; protected JMenu help; protected JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); + public Map<String, List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); /** * Creates new form @@ -85,7 +96,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe //Form list of all blocks //For each block, create a list of all states and signals - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -112,8 +123,8 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe } } - private JList createSuggestionList(int linePosition, final int position, final String subWord) { - ArrayList<String> matches = new ArrayList<String>(); + private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) { + List<String> matches = new ArrayList<String>(); if (linePosition < 6) { matches.add("Latency("); } else if (!subWord.contains(".")) { @@ -257,7 +268,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe } protected void initComponents() { - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java index b9918ad98d08d9b96524b2d39571c68958e77e25..21d864dcefbd9a289e8bd5dac5f01db03bb3568e 100644 --- a/src/main/java/ui/window/JDialogPragma.java +++ b/src/main/java/ui/window/JDialogPragma.java @@ -36,17 +36,27 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -68,8 +78,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener { protected JButton cancel; protected JMenu help; private JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<>(); - public HashMap<String, java.util.List<String>> blockStateMap = new HashMap<>(); + public Map<String, java.util.List<String>> blockAttributeMap = new HashMap<>(); + public Map<String, java.util.List<String>> blockStateMap = new HashMap<>(); /** * Creates new form @@ -85,7 +95,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener { public class SuggestionPanel { private final String[] pragma = {"#Authenticity", "#Confidentiality", "#PublicConstant", "#PrivateConstant", "#InitialSessionKnowledge", "#InitialSystemKnowledge", "#PrivatePublicKeys", "#Public", "#SecrecyAssumption", "#Secret"}; - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -111,8 +121,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } } - private JList createSuggestionList(final int position, final String subWord, String header) { - ArrayList<String> matches = new ArrayList<>(); + private JList<String> createSuggestionList(final int position, final String subWord, String header) { + List<String> matches = new ArrayList<>(); if (subWord.startsWith("#")) { for (String p : pragma) { if (p.startsWith(subWord)) { @@ -291,7 +301,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } protected void initComponents() { - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); @@ -358,12 +367,10 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } }); - JScrollPane jsp = new JScrollPane(textarea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jsp.setPreferredSize(new Dimension(300, 300)); c.add(jsp, BorderLayout.CENTER); - close = new JButton("Ok", IconManager.imgic25); cancel = new JButton("Cancel", IconManager.imgic27); diff --git a/src/main/java/ui/window/JDialogSafetyPragma.java b/src/main/java/ui/window/JDialogSafetyPragma.java index 8e8f0fb24216dfe185da47962f87a0d704e152e9..bb9afff2feab0b752bc4d380de69189fd2a11c59 100644 --- a/src/main/java/ui/window/JDialogSafetyPragma.java +++ b/src/main/java/ui/window/JDialogSafetyPragma.java @@ -43,10 +43,21 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Class JDialogPragma @@ -67,7 +78,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { protected JMenuBar menuBar; protected JMenu help; protected JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); + public Map<String, List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); /** * Creates new form @@ -86,7 +97,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { //Form list of all blocks //For each block, create a list of all attribute strings and states - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -113,8 +124,8 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } } - private JList createSuggestionList(int linePosition, final int position, final String subWord) { - ArrayList<String> matches = new ArrayList<String>(); + private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) { + List<String> matches = new ArrayList<String>(); if (linePosition < 3) { for (String p : pragma) { if (p.startsWith(subWord)) { @@ -264,8 +275,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } protected void initComponents() { - - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); @@ -284,7 +293,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { textarea.setTabSize(3); textarea.append(text); textarea.setFont(new Font("times", Font.PLAIN, 12)); - JMenuBar menuBar = new JMenuBar(); + menuBar = new JMenuBar(); menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); help = new JMenu("?"); menuBar.add(help); @@ -364,6 +373,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { c.add(jp, BorderLayout.SOUTH); } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -373,7 +383,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } else if (command.equals("Ok")) { close(); } - } public void cancel() { @@ -396,6 +405,4 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { public String getText() { return text; } - - } diff --git a/src/main/java/ui/window/JDialogSelectAvatarBlock.java b/src/main/java/ui/window/JDialogSelectAvatarBlock.java index 98cb245ad0c2c9b4160466aa957dd07d45fa0e4b..2e7eef13485cbf7dee3e1c62166211538fd7c9d7 100644 --- a/src/main/java/ui/window/JDialogSelectAvatarBlock.java +++ b/src/main/java/ui/window/JDialogSelectAvatarBlock.java @@ -45,11 +45,19 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; /** @@ -61,10 +69,10 @@ import java.util.LinkedList; * @version 1.0 18/05/2010 */ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener { - public LinkedList<AvatarBDStateMachineOwner> validated, ignored; + public List<AvatarBDStateMachineOwner> validated, ignored; private boolean optimized = true; - private LinkedList<AvatarBDStateMachineOwner> val, ign, back; + private List<AvatarBDStateMachineOwner> val, ign, back; private JList<AvatarBDStateMachineOwner> listIgnored; private JList<AvatarBDStateMachineOwner> listValidated; @@ -79,7 +87,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe /** * Creates new form */ - public JDialogSelectAvatarBlock(Frame f, LinkedList<AvatarBDStateMachineOwner> _back, LinkedList<AvatarBDStateMachineOwner> componentList, String title, LinkedList<AvatarBDStateMachineOwner> _validated, LinkedList<AvatarBDStateMachineOwner> _ignored, boolean _optimized) { + public JDialogSelectAvatarBlock(Frame f, List<AvatarBDStateMachineOwner> _back, List<AvatarBDStateMachineOwner> componentList, String title, List<AvatarBDStateMachineOwner> _validated, List<AvatarBDStateMachineOwner> _ignored, boolean _optimized) { super(f, title, true); back = _back; @@ -103,7 +111,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe pack(); } - private void checkTask(LinkedList<AvatarBDStateMachineOwner> tobeChecked, LinkedList<AvatarBDStateMachineOwner> source) { + private void checkTask( List<AvatarBDStateMachineOwner> tobeChecked, List<AvatarBDStateMachineOwner> source) { Iterator<AvatarBDStateMachineOwner> iterator = tobeChecked.iterator(); while (iterator.hasNext()) { @@ -113,7 +121,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } } - private void addNewTask(LinkedList<AvatarBDStateMachineOwner> added, LinkedList<AvatarBDStateMachineOwner> source, LinkedList<AvatarBDStateMachineOwner> notSource) { + private void addNewTask( List<AvatarBDStateMachineOwner> added, List<AvatarBDStateMachineOwner> source, List<AvatarBDStateMachineOwner> notSource) { for (AvatarBDStateMachineOwner tgc : source) if (!added.contains(tgc) && !notSource.contains(tgc)) added.add(tgc); @@ -262,6 +270,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -380,7 +389,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } } - public void valueChanged(ListSelectionEvent e) { setButtons(); } @@ -393,11 +401,11 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe return hasBeenCancelled; } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { return validated; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { return ignored; } } diff --git a/src/main/java/ui/window/JDialogSignalAssociation.java b/src/main/java/ui/window/JDialogSignalAssociation.java index 084e1046c1c41e2b63e128c69b64dd8f05b436a8..b87fd0fe74de31ec119cf2b8b18f46aafe26fc21 100644 --- a/src/main/java/ui/window/JDialogSignalAssociation.java +++ b/src/main/java/ui/window/JDialogSignalAssociation.java @@ -36,27 +36,39 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.window; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; +import java.util.Vector; - -package ui.window; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import myutil.TraceManager; import ui.AvatarSignal; -import ui.util.IconManager; import ui.avatarbd.AvatarBDBlock; import ui.avatarbd.AvatarBDPortConnector; -import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Vector; - - /** * Class JDialogSignalAssociation * Dialog for managing associations between signals (AVATAR profile) @@ -67,7 +79,7 @@ import java.util.Vector; public class JDialogSignalAssociation extends JDialogBase implements ActionListener, ListSelectionListener { private Vector<String> signalAssociation, localSignalAssociations; private AvatarBDBlock block1, block2; - private LinkedList<AvatarSignal> available1, available2; + private List<AvatarSignal> available1, available2; private AvatarBDPortConnector connector; private JRadioButton synchronous, asynchronous; @@ -88,7 +100,6 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe private JButton downButton; private JButton removeButton; - /** Creates new form */ public JDialogSignalAssociation(Frame _f, AvatarBDBlock _block1, AvatarBDBlock _block2, Vector<String> _signalAssociation, AvatarBDPortConnector _connector, String _title) { super(_f, _title, true); @@ -100,13 +111,13 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe localSignalAssociations.addAll(signalAssociation); // Available signals - if (block1 != block2) { - available1 = block1.getListOfAvailableSignals(); - available2 = block2.getListOfAvailableSignals(); - } else { - available1 = block1.getListOfAvailableOutSignals(); - available2 = block2.getListOfAvailableInSignals(); - } + if (block1 != block2) { + available1 = block1.getListOfAvailableSignals(); + available2 = block2.getListOfAvailableSignals(); + } else { + available1 = block1.getListOfAvailableOutSignals(); + available2 = block2.getListOfAvailableInSignals(); + } initComponents(); myInitComponents(); diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java index 2da61d2d75eb55da2c4fee5a5b206c6ae0bc5f1f..3a4c9f2056e10a3f8487de5c3ce8f475f4609bbb 100644 --- a/src/main/java/ui/window/JDialogSystemCGeneration.java +++ b/src/main/java/ui/window/JDialogSystemCGeneration.java @@ -59,9 +59,9 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import javax.swing.text.BadLocationException; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.*; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -73,10 +73,22 @@ import java.util.Vector; * Creation: 01/12/2005 * * @author Ludovic APVRILLE, Andrea ENRICI - * @version 1.2 02/06/2014 + * @version 1.3 24/07/2018 */ public class JDialogSystemCGeneration extends JDialog implements ActionListener, Runnable, MasterProcessInterface, ListSelectionListener { + protected static final String HELP = "Penalties of components:\n" + + "*CPUs*: \n" + + "\tTask switching time \n" + + "\tPipeline\n" + + "\tCache miss\n" + + "\tMiss branching prediction\n" + + "\tCycles before being idle\n" + + "\tcycles for mode switch to/from idle\n\n" + + "*Buses*:\n" + + "\tPipeline\n"; + + protected MainGUI mgui; private static String textSysC1 = "Generate C++ simulator code in"; @@ -123,6 +135,11 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, protected JCheckBox removeCppFiles, removeXFiles, debugmode, optimizemode, activatePenalties; protected JComboBox<String> versionSimulator; + protected JMenu help; + protected JPopupMenu helpPopup; + protected JTextArea textarea; + protected JMenuBar menuBar; + //TEPE Diagram private static Vector<AvatarPDPanel> validatedTepe, ignoredTepe; private Vector<AvatarPDPanel> valTepe, ignTepe; @@ -312,7 +329,24 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, optimizemode.setSelected(optimizeModeSelected); jp01.add(optimizemode, c01); - activatePenalties = new JCheckBox("Activate penalties"); + + helpPopup = new JPopupMenu(); + helpPopup.add(new JTextArea(HELP)); + //helpPopup.setPreferredSize(new Dimension(400, 500)); + menuBar = new JMenuBar(); + menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); + help = new JMenu("?"); + help.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + help(); + } + }); + menuBar.add(help); + setJMenuBar(menuBar); + help.setPreferredSize(new Dimension(30, 30)); + + activatePenalties = new JCheckBox("Activate penalties (task switching time, cache miss, miss branching prediction)"); activatePenalties.setSelected(activatePenaltiesSelected); jp01.add(activatePenalties, c01); @@ -1147,4 +1181,12 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, validatedTepe.add(valTepe.get(i)); } } + + public void help() { + if (!helpPopup.isVisible()) { + helpPopup.show(help, 20, 20); + } else { + helpPopup.setVisible(false); + } + } } diff --git a/src/main/java/ui/window/JDialogUPPAALValidation.java b/src/main/java/ui/window/JDialogUPPAALValidation.java index ba0199cdd454e899df7b58f521b13d34379a813e..7acaf31c0d55969bf344ae46dbf86bf73f6a5f2d 100644 --- a/src/main/java/ui/window/JDialogUPPAALValidation.java +++ b/src/main/java/ui/window/JDialogUPPAALValidation.java @@ -757,7 +757,7 @@ public class JDialogUPPAALValidation extends javax.swing.JDialog implements Acti UPPAALSpec spec = mgui.gtm.getLastUPPAALSpecification(); AVATAR2UPPAAL avatar2uppaal = mgui.gtm.getAvatar2Uppaal(); AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); - Hashtable<String, String> hash = avatar2uppaal.getHash(); + Map<String, String> hash = avatar2uppaal.getHash(); String finQuery = query + " "; /* String[] split = query.split("[\\s-()=]+"); for (String s: split){ diff --git a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java index 57848483234a02f60e4e75fd75a678c07d1f77db..1a7af105021ece6d3a50606ea9465b6c9bf0e31e 100644 --- a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java +++ b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java @@ -48,7 +48,7 @@ package avatartranslator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.util.LinkedList; +import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; @@ -92,7 +92,7 @@ public class AvatarSecurityTranslationTests { mgui.dtree = new JDiagramTree(mgui); mgui.dtree.setCellRenderer(new DiagramTreeRenderer()); ToolTipManager.sharedInstance().registerComponent(mgui.dtree); - JScrollPane scrollPane = new JScrollPane(mgui.dtree); + /*JScrollPane scrollPane =*/ new JScrollPane(mgui.dtree); mgui.newTurtleModeling(); // mgui.tabs = new Vector<TURTLEPanel>(); TMLComponentDesignPanel tmlcdp = new TMLComponentDesignPanel(mgui); @@ -151,7 +151,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); //First state is start state assertTrue(elems.get(0) instanceof AvatarStartState); //state is avatartransition @@ -186,7 +186,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is encryption @@ -212,7 +212,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is empty @@ -242,15 +242,13 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is encryption assertEquals(at.getActions().get(0).getName().replaceAll(" ",""),"mac_mac=MAC(mac,key_mac)"); } - - public static void main(String[] args){ AvatarSecurityTranslationTests apt = new AvatarSecurityTranslationTests (); //apt.runTest (); diff --git a/ttool/src/test/java/ui/AbstractUITest.java b/ttool/src/test/java/ui/AbstractUITest.java index 1d2a1c6ba9a781097d0923a1691141a0a40eb1eb..b650c1d961266888cdc49eaf8d7ec993e810fc30 100644 --- a/ttool/src/test/java/ui/AbstractUITest.java +++ b/ttool/src/test/java/ui/AbstractUITest.java @@ -4,14 +4,15 @@ import static org.junit.Assert.fail; import myutil.PluginManager; import test.AbstractTest; -import ui.util.IconManager; public abstract class AbstractUITest extends AbstractTest { protected final MainGUI mainGui; protected AbstractUITest() { - IconManager.loadImg(); + + // DB: Not needed for tests (causes NPE) + //IconManager.loadImg(); mainGui = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false); mainGui.build(); PluginManager.pluginManager = new PluginManager();