Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 0cfcb5752fd5bab453ee4654b78df045 > files > 3

jiapi-manual-0.4.0-8.mga7.noarch.rpm

<?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
   id="svg548"
   sodipodi:version="0.32"
   width="210mm"
   height="297mm"
   sodipodi:docbase="/home/mcr70/projects/jiapi/docs/"
   sodipodi:docname="/home/mcr70/projects/jiapi/docs/field-interceptor.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">
  <defs
     id="defs550">
    <linearGradient
       id="linearGradient676">
      <stop
         style="stop-color:#000;stop-opacity:1;"
         offset="0"
         id="stop677" />
      <stop
         style="stop-color:#fff;stop-opacity:1;"
         offset="1"
         id="stop678" />
    </linearGradient>
    <linearGradient
       xlink:href="#linearGradient676"
       id="linearGradient679"
       x1="0.00000021"
       y1="-0.00000048"
       x2="1.00000012"
       y2="-0.00000048"
       gradientUnits="objectBoundingBox"
       spreadMethod="pad" />
    <linearGradient
       xlink:href="#linearGradient676"
       id="linearGradient680" />
    <radialGradient
       xlink:href="#linearGradient676"
       id="radialGradient681" />
  </defs>
  <sodipodi:namedview
     id="base" />
  <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="68.942917"
     y="47.386520"
     id="text833"
     transform="translate(2.675653,-3.051758e-5)">
    <tspan
       id="tspan834">
Instrumentation replaces a field-access instruction, and its</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan836"
       x="68.9429169"
       y="59.3865204">
parameters, with a call to interceptor</tspan>
  </text>
  <rect
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.768179pt;"
     id="rect551"
     width="267.500000"
     height="103.610980"
     x="77.500008"
     y="186.112041" />
  <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="86.4045572"
     y="202.879929"
     id="text556">
    <tspan
       id="tspan557">
Original Class</tspan>
  </text>
  <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="358.830727"
     y="257.712982"
     id="text630">
    <tspan
       id="tspan631">
replace</tspan>
  </text>
  <g
     id="g634"
     transform="translate(-33.01777,-26.45366)">
    <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="138.750000"
       y="247.362152"
       id="text585">
      <tspan
         id="tspan560">
...</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan562"
         x="138.750000"
         y="259.362152">
setField SomeClass.someField</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan564"
         x="138.750000"
         y="271.362152">
...</tspan>
    </text>
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
       id="rect566"
       width="167.500000"
       height="45.0000000"
       x="133.750000"
       y="238.612183" />
  </g>
  <rect
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.771449pt;"
     id="rect607"
     width="267.500000"
     height="104.494859"
     x="442.866150"
     y="187.299196" />
  <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="460.000000"
     y="202.299332"
     id="text608">
    <tspan
       id="tspan609">
Instrumented Class</tspan>
  </text>
  <g
     id="g639"
     transform="translate(327.9289,-100.3966)"
     style="stroke:#ba0000;stroke-opacity:1;">
    <text
       style="fill:black;stroke:#ba0000;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="138.750000"
       y="321.112152"
       id="text640">
      <tspan
         id="tspan641"
         style="stroke:#ba0000;stroke-opacity:1;">
...</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan643"
         x="138.750000"
         y="333.112152"
         style="stroke:#ba0000;stroke-opacity:1;">
interceptor.setField(this, String fName,</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan645"
         x="138.750000"
         y="345.112152"
         style="stroke:#ba0000;stroke-opacity:1;">
Object value)</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan647"
         x="138.750000"
         y="357.112152"
         style="stroke:#ba0000;stroke-opacity:1;">
...</tspan>
    </text>
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#ba0000;stroke-width:1.13759pt;stroke-opacity:1;"
       id="rect649"
       width="236.250000"
       height="55.000002"
       x="133.750000"
       y="311.112147" />
  </g>
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M -156.374 349.951 C -167.207 352.868 -95.1439 378.372 -51.783 378.827 C 1.98227 378.131 11.7418 369.203 36.3128 353.053 "
     id="path651"
     transform="translate(424.4822,-115.2037)"
     sodipodi:nodetypes="ccs" />
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M 125 324.862 L 133.128 336.865 L 117.5 336.112 "
     id="path652"
     sodipodi:nodetypes="ccc"
     transform="matrix(0.250497,-0.968117,0.968117,0.250497,101.5375,281.2799)" />
  <g
     id="g747"
     transform="translate(0.883865,0.883835)">
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.768179pt;"
       id="rect655"
       width="267.500000"
       height="103.610977"
       x="125.229752"
       y="368.191940" />
    <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="141.479736"
       y="383.192062"
       id="text656">
      <tspan
         id="tspan657">
Target Class</tspan>
    </text>
    <text
       style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;"
       x="153.461971"
       y="402.988419"
       id="text660">
      <tspan
         id="tspan661">
public void someField</tspan>
    </text>
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.670841pt;"
       id="rect667"
       width="167.500000"
       height="20.251236"
       x="148.461967"
       y="389.818954" />
  </g>
  <g
     id="g756">
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.19257pt;"
       id="rect617"
       width="247.112298"
       height="186.250000"
       x="331.232828"
       y="487.353149" />
    <text
       style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;"
       x="521.250000"
       y="367.362152"
       id="text618"
       transform="translate(-180.0171,134.9910)">
      <tspan
         id="tspan619">
FieldHandler</tspan>
    </text>
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#0d0000;stroke-width:1.17803pt;"
       id="rect720"
       width="212.385178"
       height="65.606583"
       x="345.006172"
       y="508.584198" />
    <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="351.785652"
       y="524.683685"
       id="text721">
      <tspan
         id="tspan722">
setField(Object, String, Object) {</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan724"
         x="351.785645"
         y="536.683655">
</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan726"
         x="351.785645"
         y="548.683655">
</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan728"
         x="351.785645"
         y="560.683655">
}</tspan>
    </text>
    <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="367.695564"
       y="542.361298"
       id="text730">
      <tspan
         id="tspan731">
java.lang.reflect.Field.set(o, value)</tspan>
    </text>
  </g>
  <g
     id="g774">
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.912884pt;"
       id="rect552"
       width="265.699901"
       height="105.183929"
       x="442.725275"
       y="329.049255" />
    <text
       style="font-size:12;font-weight:normal;stroke-width:1pt;font-family:helvetica;"
       x="460.680222"
       y="347.370392"
       id="text553">
      <tspan
         id="tspan554">
Interceptor</tspan>
    </text>
    <rect
       style="font-size:12;fill:none;fill-rule:evenodd;stroke:#0d0000;stroke-width:1.23546pt;"
       id="rect692"
       width="233.598332"
       height="65.606583"
       x="464.330491"
       y="352.136749" />
    <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="471.109955"
       y="368.236267"
       id="text708">
      <tspan
         id="tspan709">
setField(Object o1, String s, Object o2) {</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan714"
         x="471.109955"
         y="380.236267">
</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan716"
         x="471.109955"
         y="392.236267">
</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan718"
         x="471.109955"
         y="404.236267">
</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan743"
         x="471.109955"
         y="416.236267">
}</tspan>
    </text>
    <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="487.019867"
       y="385.913879"
       id="text711">
      <tspan
         id="tspan712">
Field f1 = getReflectionField(s)</tspan>
      <tspan
         sodipodi:role="line"
         id="tspan745"
         x="487.019867"
         y="397.913879">
FieldHandler.setField(o1, f1, o2)</tspan>
    </text>
  </g>
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M 13.3316 465.74 C 12.2214 442.14 9.15436 450.851 10.0888 423.905 C 11.7049 406.415 12.6257 404.558 23.9384 381.337 "
     id="path796"
     transform="translate(551.7614,-115.2037)"
     sodipodi:nodetypes="ccs" />
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M 125 324.862 L 133.128 336.865 L 117.5 336.112 "
     id="path797"
     sodipodi:nodetypes="ccc"
     transform="matrix(0.488430,0.872602,-0.872602,0.488430,794.7095,70.89314)" />
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M 125 324.862 L 133.128 336.865 L 117.5 336.112 "
     id="path798"
     sodipodi:nodetypes="ccc"
     transform="matrix(-1.453869e-2,0.999894,-0.999894,-1.453869e-2,840.2274,380.3497)" />
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M 125 324.862 L 133.128 336.865 L 117.5 336.112 "
     id="path799"
     sodipodi:nodetypes="ccc"
     transform="matrix(-0.781505,-0.623899,0.623899,-0.781505,106.2559,758.0645)" />
  <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 559.498 417.734 L 501.162 507.89 "
     id="path800" />
  <path
     style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
     d="M -156.374 349.951 C -148.645 374.965 -148.177 392.514 -112.771 429.208 C -86.4061 450.609 -72.2272 463.261 -23.5064 476.797 "
     id="path802"
     transform="translate(368.7975,61.57307)"
     sodipodi:nodetypes="ccs" />
  <g
     id="g815"
     transform="translate(15.90990,-2.651703)">
    <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="228.041977"
       y="506.122131"
       id="text809">
      <tspan
         id="tspan810">
3</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path812"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(146.7247,3.535507)" />
  </g>
  <g
     id="g820"
     transform="translate(-6.187210,2.651642)">
    <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="552.427246"
       y="459.276276"
       id="text806">
      <tspan
         id="tspan807">
2</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path813"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(471.1100,-43.31027)" />
  </g>
  <g
     id="g825"
     transform="translate(-35.35534,5.303314)">
    <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="579.827637"
       y="308.132202"
       id="text803">
      <tspan
         id="tspan804">
1</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path814"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(499.3943,-194.4544)" />
  </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="31.819809"
     y="27.057236"
     id="text830">
    <tspan
       id="tspan831">
FieldInterceptor: Instrumentation strategy reflection</tspan>
  </text>
  <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="69.8268013"
     y="82.7418671"
     id="text838"
     transform="translate(2.067771,-3.051758e-5)">
    <tspan
       id="tspan839">
When code executes at that point, instrumented class calls</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan841"
       x="69.8267975"
       y="94.7418671">
interceptor instead of field-access instruction.</tspan>
  </text>
  <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="69.8267975"
     y="112.793900"
     id="text843"
     transform="translate(1.791773,-3.051758e-5)">
    <tspan
       id="tspan844">
Interceptor finds corresponding java.lang.reflect.Field, and</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan846"
       x="69.8267975"
       y="124.793900">
passes this to FieldHandler</tspan>
  </text>
  <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="70.7106857"
     y="145.497604"
     id="text848"
     transform="translate(0.883884,-3.051758e-5)">
    <tspan
       id="tspan849">
FieldHandler sets (or gets) the value of the field. </tspan>
  </text>
  <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="71.5945644"
     y="164.059158"
     id="text855">
    <tspan
       id="tspan856">
Program flow returns eventually back to instrumented </tspan>
    <tspan
       sodipodi:role="line"
       id="tspan858"
       x="71.5945663"
       y="176.059158">
class, which does possible unwrapping of primitive types</tspan>
  </text>
  <g
     id="g860"
     transform="translate(-531.2141,-220.0870)">
    <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="579.827637"
       y="308.132202"
       id="text861">
      <tspan
         id="tspan862">
1</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path864"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(499.3943,-194.4544)" />
  </g>
  <g
     id="g875"
     transform="translate(-502.9298,-340.2953)">
    <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="552.427246"
       y="459.276276"
       id="text876">
      <tspan
         id="tspan877">
2</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path879"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(471.1100,-43.31027)" />
  </g>
  <g
     id="g880"
     transform="translate(-178.5445,-360.6246)">
    <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="228.041977"
       y="506.122131"
       id="text881">
      <tspan
         id="tspan882">
3</tspan>
    </text>
    <path
       sodipodi:type="arc"
       style="stroke:#000000;stroke-opacity:1;fill:none;stroke-width:1.25;stroke-dasharray:none;stroke-dashoffset:0;fill-rule:evenodd;fill-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;"
       id="path884"
       d="M 91.923897 498.609131 A 7.954952 7.513000 0 1 0 76.014000,498.609131 A 7.95495 7.513 0 1 0 91.9239 498.609 L 83.968948 498.609131 z"
       sodipodi:cx="83.968948"
       sodipodi:cy="498.609131"
       sodipodi:rx="7.954952"
       sodipodi:ry="7.513000"
       transform="translate(146.7247,3.535507)" />
  </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="70.5698090"
     y="782.057220"
     id="text885">
    <tspan
       id="tspan886">
FieldInterceptor: Instrumentation strategy direct-proxy</tspan>
  </text>
  <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="120.000000"
     y="798.612152"
     id="text890">
    <tspan
       id="tspan891">
Same as above, but...</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan893"
       x="120.000000"
       y="810.612122">
Instrumented class calls field-proxy directly.</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan895"
       x="120.000000"
       y="822.612122">
Field-proxy is a class generated at runtime, which</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan897"
       x="120.000000"
       y="834.612122">
is in the same package as target object(thus having</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan899"
       x="120.000000"
       y="846.612122">
package access properties) etc.</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan901"
       x="120.000000"
       y="858.612122">
</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan903"
       x="120.000000"
       y="870.612122">
FieldHandler gets this Proxy as a parameter....</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan905"
       x="120.000000"
       y="882.612122">
</tspan>
  </text>
  <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="70.0000000"
     y="763.612152"
     id="text907">
    <tspan
       id="tspan908">
TBDL:</tspan>
  </text>
  <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="442.500000"
     y="818.612152"
     id="text910">
    <tspan
       id="tspan911">
proxying like this saves the overhead</tspan>
    <tspan
       sodipodi:role="line"
       id="tspan913"
       x="442.500000"
       y="830.612122">
of java.lang.reflect.... calls</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 403.75 773.612 L 405 867.362 "
     id="path917" />
</svg>