<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <!-- Created with Sodipodi ("http://www.sodipodi.com/") --> <svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg1" sodipodi:version="0.34" width="210mm" height="297mm" sodipodi:docbase="/home/mcr70/projects/jiapi/docs/" sodipodi:docname="/home/mcr70/projects/jiapi/docs/jiapi2-instruction.svg"> <defs id="defs3"> <linearGradient id="linearGradient125"> <stop style="stop-color:#000;stop-opacity:1;" offset="0" id="stop126" /> <stop style="stop-color:#fff;stop-opacity:1;" offset="1" id="stop127" /> </linearGradient> <linearGradient xlink:href="#linearGradient125" id="linearGradient128" /> <radialGradient xlink:href="#linearGradient125" id="radialGradient129" cx="0.5" cy="0.5" fx="0.5" fy="0.5" r="0.5" gradientUnits="objectBoundingBox" spreadMethod="pad" /> </defs> <sodipodi:namedview id="base" showgrid="true" guidetolerance="5px" snaptoguides="true" snaptogrid="false" /> <g id="g307" transform="translate(-32.937,-242.619)"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="191.909" y="569.034" id="text297"> <tspan id="tspan298"> Instruction</tspan> <tspan sodipodi:role="line" id="tspan305" x="191.908997" y="581.033997"> List</tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path300" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,93.0256,143.746)" /> </g> <g id="g166" transform="translate(-97.5,-247.5)"> <text style="fill:black;stroke:none;font-family:helvetica;font-style:normal;font-weight:normal;font-size:12px;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" x="400.000031" y="544.862122" id="text142"> <tspan id="tspan143"> Method</tspan> </text> <path sodipodi:type="arc" style="fill-rule:evenodd;stroke:#000000;fill:none;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" id="path153" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,295.688,114.636)" /> </g> <g id="g267" transform="translate(-10,24.375)"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="132.722" y="367.665" id="text245"> <tspan id="tspan246"> Instruction</tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path250" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,33.8386,-63.873)" /> </g> <g id="g278" transform="translate(-43.125,20.625)"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="352.5" y="337.362" id="text263"> <tspan id="tspan264"> Attribute</tspan> <tspan sodipodi:role="line" id="tspan276" x="352.5" y="349.362"> <Code></tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path266" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,248.813,-89.114)" /> </g> <g id="g353"> <rect style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.689462pt;" id="rect128" width="201.250031" height="227.500031" x="110.000015" y="249.861862" transform="translate(-46.875,-43.125)" /> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="117.5" y="266.112" id="text129" transform="translate(-46.875,-43.125)"> <tspan id="tspan130"> alt.jiapi.reflect.JiapiMethod</tspan> </text> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="137.886" y="508.774" id="text253" transform="translate(-51.875,-53.125)"> <tspan id="tspan254"> Models one method. Each method</tspan> <tspan sodipodi:role="line" id="tspan331" x="137.886002" y="520.773987"> Have a InstructionList, which has</tspan> <tspan sodipodi:role="line" id="tspan333" x="137.886002" y="532.773987"> one or more instructions in it.</tspan> </text> </g> <g id="g365"> <rect style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.689462pt;" id="rect300" width="201.250031" height="227.500031" x="110.000015" y="249.861862" transform="translate(168.125,-43.125)" /> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="117.5" y="266.112" id="text301" transform="translate(168.125,-43.125)"> <tspan id="tspan302"> alt.jiapi.file.Method</tspan> </text> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="137.886" y="508.774" id="text304" transform="translate(163.125,-53.125)"> <tspan id="tspan306"> Byte representation of a Java</tspan> <tspan sodipodi:role="line" id="tspan351" x="137.886002" y="520.773987"> method.</tspan> </text> </g> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 171.25 352.362 L 165 365.487 " id="path376" /> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 160 287.362 L 169.375 306.112 " id="path386" /> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 180.625 263.612 L 287.5 289.862 " id="path387" sodipodi:nodetypes="cc" /> <text style="fill:black;stroke:none;font-family:helvetica;font-style:normal;font-weight:normal;font-size:12px;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" x="17.2196" y="152.048" id="text288"> <tspan id="tspan289"> Instruction model of Jiapi2</tspan> </text> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 327.5 319.862 L 329.375 333.612 " id="path391" sodipodi:nodetypes="cc" /> <g id="g406" transform="translate(23.75,-7.50003)"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="379.375" y="396.737" id="text394"> <tspan id="tspan395"> Attribute</tspan> <tspan sodipodi:role="line" id="tspan397" x="379.375" y="408.737"> <LocalVariableTable></tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path399" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,278.813,-29.114)" /> </g> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 404.375 371.112 L 353.125 309.237 " id="path413" sodipodi:nodetypes="cc" /> <g id="g429" transform="translate(-16.875,3.12497)"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="405" y="235.487" id="text415"> <tspan id="tspan416"> Attribute</tspan> <tspan sodipodi:role="line" id="tspan427" x="405" y="247.487"> <Exceptions></tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path420" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,310.688,-190.364)" /> </g> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 354.375 281.112 L 386.875 252.362 " id="path436" sodipodi:nodetypes="cc" /> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1.25;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:2.5,2.5;stroke-dashoffset:0;" d="M 177.395 253.904 C 226.233 239.41 352.112 234.853 382.449 238.29 " id="path438" sodipodi:nodetypes="cc" /> <g id="g452"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="191.909" y="569.034" id="text440" transform="translate(7.688,-164.494)"> <tspan id="tspan441"> Instruction</tspan> <tspan sodipodi:role="line" id="tspan443" x="191.908997" y="581.033997"> Factory</tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path445" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,100.714,-20.748)" /> </g> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" d="M 200.625 352.362 L 212.5 383.612 " id="path459" /> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1.25;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:2.5,2.5;stroke-dashoffset:0;" d="M 258.645 417.029 C 312.483 433.16 357.112 430.478 403.074 408.915 " id="path461" sodipodi:nodetypes="cc" /> <g id="g462"> <text style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;" x="111.875" y="268.612" id="text378"> <tspan id="tspan379"> JiapiMethod</tspan> </text> <path sodipodi:type="arc" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;" id="path381" d="M 192.5 566.7371 A 43.125 33.125 0 1 0 106.25 566.7371 A 43.125 33.125 0 1 0 192.5 566.7371 z" sodipodi:cx="149.375000" sodipodi:cy="566.737122" sodipodi:rx="43.124996" sodipodi:ry="33.125000" transform="matrix(0.84058,0,0,0.754717,18.188,-163.489)" /> </g> <text style="fill:black;stroke:none;font-family:helvetica;font-style:normal;font-weight:normal;font-size:12px;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" x="106.875" y="519.862" id="text467"> <tspan id="tspan468"> Modeling of the alt.jiapi.file.Method.attributes is spread over the </tspan> <tspan sodipodi:role="line" id="tspan470" x="106.875" y="531.862"> alt.jiapi.reflect package. </tspan> <tspan sodipodi:role="line" id="tspan474" x="106.875" y="543.862"> - Exceptions Attribute is represented in JiapiMethod with </tspan> <tspan sodipodi:role="line" id="tspan484" x="106.875" y="555.862"> getExceptionNames() method.</tspan> <tspan sodipodi:role="line" id="tspan478" x="106.875" y="567.862"> - Code attribute is represented by InstructionList.</tspan> <tspan sodipodi:role="line" id="tspan480" x="106.875" y="579.862"> - LocalVariableTable Attribute is represented indirectly by </tspan> <tspan sodipodi:role="line" id="tspan482" x="106.875" y="591.862"> InstructionFactory.</tspan> </text> <path style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1.25;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:2.5,2.5;stroke-dashoffset:0;" d="M 221.77 333.904 C 221.858 334.41 294.612 356.103 294.949 356.415 " id="path486" sodipodi:nodetypes="cc" /> </svg>