| <html> |
| |
| <head> |
| <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> |
| <meta name=ProgId content=PowerPoint.Slide> |
| <meta name=Generator content="Microsoft PowerPoint 10"> |
| <link id=Main-File rel=Main-File href="../EclipseCon2004_TechnologyExchange.htm"> |
| <link rel=Preview href=preview.wmf> |
| <meta name=Robots content=NoIndex> |
| <script src=script.js></script><script><!-- |
| if( !(IsWin("PPTOtl")||IsWin("PPTNav")||IsWin("PPTOtlNav")) ) |
| { |
| obj = GetObj("Main-File") |
| parent.location.href=obj.href |
| } |
| var gOtlHiliteClr="#ffffff",gOtlNormalClr="#000000",gOtlActiveClr="#ffff00",gSelected="",gTxtState=false,gChildEntryTable=new Array() |
| function Load() |
| { |
| if( IsWin("PPTOtl" ) ){ LoadOtl(); parent.gOtlLoaded=true; return } |
| if( g_supportsPPTHTML ) { |
| if( IsWin("PPTNav" ) ){ LoadNav("NavObj",UpdNav); parent.gNavLoaded=true; return } |
| if( IsWin("PPTOtlNav" ) ){ LoadNav("OtlNavObj",UpdOtlNav); parent.gOtlNavLoaded=true; return } |
| } |
| } |
| function Upd(){ if( IsWin("PPTNav") ) LoadNav("NavObj",UpdNav) } |
| function LoadNav( oId,UpdFunc ) |
| { |
| document.ondragstart=CancelDrag |
| document.onselectstart=CancelDrag |
| document.body.style.margin=2 |
| UpdFunc() |
| obj=document.all.item(oId) |
| obj.style.display="block" |
| obj.style.visibility="visible" |
| document.bgColor="threedface" |
| if( parent.frames["PPTNts"] ) |
| notesBtn.style.display = "" |
| if( parent.gHasNarration ) |
| nb_voiceBorder.style.display = "" |
| } |
| function LoadOtl() |
| { |
| var otl=GetObj("OtlObj") |
| otl.style.display="block" |
| otl.style.visibility="visible" |
| if( gOtlActiveClr == "" ) gOtlActiveClr=document.linkColor |
| if( gOtlHiliteClr == "" ) gOtlHiliteClr=document.fgColor |
| if( gOtlNormalClr == "" ) |
| gOtlNormalClr=document.bgColor |
| else |
| document.bgColor=gOtlNormalClr |
| InitArray() |
| if( ObjExists( parent.gCurSld ) ) { |
| ChangeState( parent.gCurSld,gOtlNormalClr,gOtlHiliteClr ) |
| gSelected=parent.gCurSld |
| } |
| else gSelected = -1 |
| UpdOtl() |
| } |
| function UpdOtl(){ UpdIdx(parent.gCurSld) } |
| function UpdIdx( idx ) |
| { |
| if( gSelected != idx ) { |
| if( gSelected > 0 ) |
| ChangeState( gSelected,gOtlHiliteClr,gOtlNormalClr ) |
| if( ObjExists( idx ) ) { |
| gSelected = idx |
| ChangeState( gSelected,gOtlNormalClr,gOtlHiliteClr ) |
| } |
| else gSelected = -1 |
| } |
| if( gTxtState != parent.gOtlTxtExp ) { |
| state = "block" |
| if( !parent.gOtlTxtExp ) |
| state="none" |
| for(ii=0; ii<gChildEntryTable.length; ii++) { |
| obj=gChildEntryTable[ii]; |
| if( obj.id == null ) continue; |
| if( obj.id.indexOf("PPTC") >= 0 ) |
| obj.style.display=state; |
| } |
| gTxtState=parent.gOtlTxtExp |
| if( ObjExists( gSelected ) ) |
| ChangeState( gSelected,gOtlNormalClr,gOtlHiliteClr ) |
| } |
| } |
| function InitArray() |
| { |
| count=0 |
| var list=GetTags(document,"DIV"); |
| for(ii=0; ii<list.length; ii++) { |
| obj=list.item(ii) |
| if( obj.id == null ) continue |
| if( obj.id.indexOf("PPTC") >= 0 ) |
| gChildEntryTable[count++]=obj |
| } |
| } |
| function ChangeState( idx,fgColor,bgColor ) |
| { |
| obj=GetObj("PPTL"+idx) |
| obj.style.color=fgColor |
| obj=GetObj("PPTP"+idx) |
| obj.style.backgroundColor=bgColor |
| } |
| function ChgClr( o,clr ){ if( o.id != "PPTL"+gSelected ) o.style.color=clr } |
| function Over( src ){ ChgClr(GetLink(src),gOtlActiveClr) } |
| function Out( src ){ ChgClr(GetLink(src),gOtlHiliteClr) } |
| function Follow(src){ window.location.href = GetLink(src).href; } |
| function ObjExists( ii ) { obj=GetObj("PPTP"+ii ); return( obj ) } |
| function GoToSld( href ){ UpdIdx(parent.GetSldNum(href)); parent.GoToSld( href ) } |
| function CancelDrag(){ window.event.cancelBubble=true;window.event.returnValue=false} |
| function GetLink(src) |
| { |
| if(src.tagName=="A") return src |
| else return GetTags(src,"A").item(0) |
| } |
| function UpdNav() |
| { |
| txt = "<center>"; |
| if( parent.GetHrefObj( parent.gCurSld ).mOrigVis == 1 ) |
| txt += "Slide " + parent.GetCurSldNum() + " of " + parent.GetNumSlds() |
| else |
| txt += "Hidden Slide" |
| txt += "</center>"; |
| nav_text.innerHTML = txt; |
| if( !parent.HasPrevSld() ) |
| gBtnArr["nb_prev"].Enabled(0) |
| else |
| gBtnArr["nb_prev"].Enabled(1) |
| if( !parent.HasNextSld() ) |
| gBtnArr["nb_next"].Enabled(0) |
| else |
| gBtnArr["nb_next"].Enabled(1) |
| gBtnArr["nb_nts"].SetEnabled() |
| gBtnArr["nb_nts"].SetFlag( parent.gHasNts ) |
| gBtnArr["nb_sldshw"].Enabled(1) |
| gBtnArr["nb_voice"].Enabled(1) |
| } |
| function UpdOtlNav() |
| { |
| gBtnArr["nb_otl"].SetEnabled(); |
| if( parent.gOtlOpen ) |
| gBtnArr["nb_otlTxt"].Enabled( true ); |
| else |
| document.all.item("nb_otlTxtBorder").style.visibility = "hidden"; |
| } |
| |
| //--></script> |
| <style> |
| <!--.PTxt |
| {position:relative; |
| width:100%; |
| margin-top:5px; |
| padding-left:2px; |
| font-weight:bold;} |
| .CTxt |
| {position:relative; |
| width:100%; |
| margin-top:5px;} |
| a |
| {color:white; |
| text-decoration:none;} |
| ul |
| {color:white; |
| margin-bottom:0px; |
| margin-left:20px;} |
| .sldNum |
| {margin-top:5px; |
| color:white;} |
| .button |
| {position:absolute; |
| width:32px; |
| height:20px; |
| border-style:solid; |
| border-width:1px; |
| border-color:threedface;} |
| --> |
| </style> |
| </head> |
| |
| <body onload="Load()" style='margin:2px'> |
| |
| <div id=NavObj onload="Load()" onmouseover="BtnOnOver()" |
| onmousedown="BtnOnDown()" onmouseout="BtnOnOut()" onmouseup="BtnOnUp()" |
| onkeypress="_KPH()" style='display:none;visibility:hidden'> |
| <table id="notesBtn" style='position:absolute;display:none;width:70px' align=left cellpadding=0 |
| cellspacing=0> |
| <td nowrap> |
| <div id="nb_ntsElem" align=center style='position:relative;padding:3px; |
| font-family:Arial;color:buttontext;font-size:9pt'><img src="notes_flag.gif" |
| border=0 id="notes_flag" style='display:none'><span |
| style='mso-spacerun:yes'> </span>Notes</div> |
| <div title="Show/Hide Notes" id="nb_nts" style='position:absolute;top:0%; |
| left:0%;width:100%;height:100%'></div> |
| </td> |
| </table> |
| |
| <table style='position:relative;width:70px' align=right cellpadding=0 cellspacing=0> |
| <td nowrap> |
| <div id="nb_sldshwText" title="Full |
| Screen Slide Show" align=center style='position:relative;margin-left:20px;padding:3px; |
| font-family:Arial;color:buttontext;font-size:9pt;cursor:default'>Slide |
| Show</div> |
| <div id="nb_sldshwBorder" title="Full Screen Slide Show" style='position:absolute;top:0%;left:0%;width:100%;height:20px'> |
| <div style='position:absolute;clip:rect(0px, 18px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_sldshw" style='position:relative;left:-254px'></div> |
| </div> |
| </td> |
| <td> |
| <div id="nb_voiceBorder" style='display:none;position:absolute;top:0;left:-40px; |
| width:20px;height:20px'> |
| <div style='position:absolute;clip:rect(0px, 18px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_voice" title="Pause/Play Narration" style='position: |
| relative;left:-290px'></div> |
| </div> |
| </td> |
| </table> |
| |
| <table style='position:relative' align=center cellpadding=0 cellspacing=0> |
| <td nowrap> |
| <div id="nb_prevBorder" class=button style='left:-30px'> |
| <div style='position:absolute;clip:rect(0px, 30px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_prev" title="Previous Slide" style='position:relative; |
| left:0px'></div> |
| </div> |
| <span id="nav_text" style='position:relative;top:3px;width:100px;font-family: |
| Arial;color:buttontext;font-size:9pt'></span> |
| <div id="nb_nextBorder" class=button> |
| <div style='position:absolute;clip:rect(0px, 30px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_next" title="Next Slide" style='position:relative; |
| left:-90px'></div> |
| </div> |
| </td> |
| </table> |
| </div> |
| |
| <div id=OtlNavObj onload="Load()" onmouseover="BtnOnOver()" |
| onmousedown="BtnOnDown()" onmouseout="BtnOnOut()" onmouseup="BtnOnUp()" |
| onkeypress="_KPH()" style='display:none;visibility:hidden'> |
| |
| <table style='position:relative;width:70px' align=left cellpadding=0 cellspacing=0> |
| <td nowrap><div title="Show/Hide |
| Outline" id="nb_otl" |
| style='position:absolute;top:0%;left:0%;width:100%;height:100%;cursor:default'> |
| <div id="nb_otlElem" align=center style='position:relative;padding:3px;font-family:Arial; |
| color:buttontext;font-size:9pt'>Outline</div></div> |
| </td> |
| </table> |
| |
| <table style='position:relative' align=center cellpadding=0 cellspacing=0> |
| <td> |
| <div style='position:absolute;left:-18px;width:24px;height:20px;border-style: |
| solid;border-width:1px;border-color:threedface' id="nb_otlTxtBorder"> |
| <div style='position:absolute;clip:rect(0px, 22px, 18px, 0px)'><img |
| src=buttons.gif id="nb_otlTxt" title="Expand/Collapse Outline" |
| style='position:relative;left:-157px'></div> |
| </div> |
| </td> |
| </table> |
| |
| </div> |
| |
| <div id=OtlObj style='display:none;visibility:hidden;'> |
| |
| |
| <table width="100%" style='font-family:Arial;font-size:9pt'> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>1</font></div> |
| </td> |
| <td width="100%"> |
| <div id=PPTP1 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0028.htm');" id=PPTL1>Eclipse UML2 Project</a></font></div> |
| <div id=PPTC1 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Technology Exchange</li> |
| <br> |
| <br> |
| <li>EMF Technology in Practice</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>2</font></div> |
| </td> |
| <td> |
| <div id=PPTP2 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0035.htm');" id=PPTL2>Contents</a></font></div> |
| <div id=PPTC2 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>What is UML2?</li> |
| <br> |
| <br> |
| <li>EMF Customizations</li> |
| <br> |
| <br> |
| <li>Element Identification</li> |
| <br> |
| <br> |
| <li>Element Creation</li> |
| <br> |
| <br> |
| <li>Element Destruction</li> |
| <br> |
| <br> |
| <li>Element Retrieval</li> |
| <br> |
| <br> |
| <li>Element Validation</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>3</font></div> |
| </td> |
| <td> |
| <div id=PPTP3 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0029.htm');" id=PPTL3>What is UML2?</a></font></div> |
| <div id=PPTC3 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>An Eclipse Modeling Development Tools subcomponent at http://www.eclipse.org/modeling/mdt/?project=uml2#uml2</li> |
| <br> |
| <br> |
| <li>An EMF-based implementation of the UML 2.0 metamodel for the Eclipse |
| platform</li> |
| <br> |
| <br> |
| <li>Objectives are to provide
</li> |
| <ul> |
| <li>a useable implementation of the metamodel to support the development of |
| modeling tools</li> |
| <li>a common XMI schema to facilitate interchange of semantic models</li> |
| <li>test cases as a means of validating the specification</li> |
| <li>validation rules as a means of defining and enforcing levels of |
| compliance</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>4</font></div> |
| </td> |
| <td> |
| <div id=PPTP4 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0036.htm');" id=PPTL4>EMF Customizations</a></font></div> |
| <div id=PPTC4 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>XMI resource to support identification of elements using Universally |
| Unique Identifiers (UUIDs)</li> |
| <br> |
| <br> |
| <li>JET templates to generate methods that facilitate element creation, destruction, |
| and retrieval</li> |
| <br> |
| <br> |
| <li>Switch classes to perform element validation operations</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>5</font></div> |
| </td> |
| <td> |
| <div id=PPTP5 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0030.htm');" id=PPTL5>Element Identification</a></font></div> |
| <div id=PPTC5 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Needed a way to uniquely identify elements across resources</li> |
| <br> |
| <br> |
| <li>Wanted to minimize the impact on disk and memory footprint</li> |
| <br> |
| <br> |
| <li>Implemented a custom XMI resource (Uml2ResourceImpl) to assign and |
| manage UUIDs generated in base 64 format
</li> |
| <ul> |
| <li>overrode ResourceImpl#getEObjectByID(String) to retrieve objects from idToEObectMap</li> |
| <li>overrode XMLResourceImpl#getID(EObject) to assign (and reassign) |
| automatically generated UUIDs</li> |
| <li>overrode ResourceImpl#detached(EObject) to preserve IDs when objects |
| (and their children) are detached from resources</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>6</font></div> |
| </td> |
| <td> |
| <div id=PPTP6 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0037.htm');" id=PPTL6>Overriding ResourceImpl#getEObjectByID(String)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>7</font></div> |
| </td> |
| <td> |
| <div id=PPTP7 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0038.htm');" id=PPTL7>Overriding XMLResourceImpl#getID(EObject)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>8</font></div> |
| </td> |
| <td> |
| <div id=PPTP8 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0039.htm');" id=PPTL8>Overriding ResourceImpl#detached(EObject)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>9</font></div> |
| </td> |
| <td> |
| <div id=PPTP9 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0044.htm');" id=PPTL9>Element Identification |
| Example</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>10</font></div> |
| </td> |
| <td> |
| <div id=PPTP10 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0031.htm');" id=PPTL10>Element Creation</a></font></div> |
| <div id=PPTC10 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Wanted to simplify the process of creating an element and adding/setting |
| it to a containment feature</li> |
| <br> |
| <br> |
| <li>Customized JET templates to generate convenient factory methods</li> |
| <ul> |
| <li>customized Interface.javajet to generate method declaration</li> |
| <li>customized Class.javajet to generate method implementation</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>11</font></div> |
| </td> |
| <td> |
| <div id=PPTP11 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0040.htm');" id=PPTL11>Customizing Interface.javajet |
| (Lists)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>12</font></div> |
| </td> |
| <td> |
| <div id=PPTP12 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0042.htm');" id=PPTL12>Customizing Interface.javajet |
| (non-Lists)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>13</font></div> |
| </td> |
| <td> |
| <div id=PPTP13 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0041.htm');" id=PPTL13>Customizing Class.javajet |
| (Lists)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>14</font></div> |
| </td> |
| <td> |
| <div id=PPTP14 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0043.htm');" id=PPTL14>Customizing Class.javajet |
| (non-Lists)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>15</font></div> |
| </td> |
| <td> |
| <div id=PPTP15 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0045.htm');" id=PPTL15>Element Creation |
| Example</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>16</font></div> |
| </td> |
| <td> |
| <div id=PPTP16 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0032.htm');" id=PPTL16>Element Destruction</a></font></div> |
| <div id=PPTC16 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Wanted a way to delete an element, including all of its children and all |
| cross references to it</li> |
| <br> |
| <br> |
| <li>Customized JET templates to generate destroy() method for top-level |
| types</li> |
| <ul> |
| <li>customized Interface.javajet to generate method declaration</li> |
| <li>customized Class.javajet to generate method implementation</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>17</font></div> |
| </td> |
| <td> |
| <div id=PPTP17 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0050.htm');" id=PPTL17>Customizing Interface.javajet</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>18</font></div> |
| </td> |
| <td> |
| <div id=PPTP18 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0051.htm');" id=PPTL18>Customizing Class.javajet</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>19</font></div> |
| </td> |
| <td> |
| <div id=PPTP19 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0052.htm');" id=PPTL19>Implementing destroyHelper(...)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>20</font></div> |
| </td> |
| <td> |
| <div id=PPTP20 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0046.htm');" id=PPTL20>Element Destruction |
| Example</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>21</font></div> |
| </td> |
| <td> |
| <div id=PPTP21 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0033.htm');" id=PPTL21>Element Retrieval</a></font></div> |
| <div id=PPTC21 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Wanted to simplify the process of retrieving named elements from lists</li> |
| <br> |
| <br> |
| <li>Customized JET templates to generate convenient factory methods</li> |
| <ul> |
| <li>customized Interface.javajet to generate method declaration</li> |
| <li>customized Class.javajet to generate method implementation</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>22</font></div> |
| </td> |
| <td> |
| <div id=PPTP22 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0053.htm');" id=PPTL22>Customizing Interface.javajet</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>23</font></div> |
| </td> |
| <td> |
| <div id=PPTP23 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0054.htm');" id=PPTL23>Customizing Class.javajet</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>24</font></div> |
| </td> |
| <td> |
| <div id=PPTP24 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0047.htm');" id=PPTL24>Element Retrieval |
| Example</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>25</font></div> |
| </td> |
| <td> |
| <div id=PPTP25 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0034.htm');" id=PPTL25>Element Validation</a></font></div> |
| <div id=PPTC25 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Wanted a way to perform validation operations on elements</li> |
| <br> |
| <br> |
| <li>Wanted to be able to evaluate different sets of constraints</li> |
| <br> |
| <br> |
| <li>Implemented custom Switch subclasses to execute validation rules</li> |
| <ul> |
| <li>implemented validate(EObject, IProgressMonitor) to invoke the switch |
| and return an outcome in the form of a status object</li> |
| <li>overrode Uml2Switch#defaultCase(EObject) to recursively invoke the |
| switch on the objects contents</li> |
| <li>overrode Uml2Switch#doSwitch(EObject) to inform the progress monitor of |
| progress</li> |
| <li>overrode Uml2Switch#case*(*) for each type of element to which |
| constraints apply</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>26</font></div> |
| </td> |
| <td> |
| <div id=PPTP26 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0055.htm');" id=PPTL26>Implementing validate(...)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>27</font></div> |
| </td> |
| <td> |
| <div id=PPTP27 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0056.htm');" id=PPTL27>Overriding Uml2Switch#defaultCase(EObject)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>28</font></div> |
| </td> |
| <td> |
| <div id=PPTP28 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0057.htm');" id=PPTL28>Overriding Uml2Switch#doSwitch(EObject)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>29</font></div> |
| </td> |
| <td> |
| <div id=PPTP29 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0058.htm');" id=PPTL29>Overriding Uml2Switch#caseElement(Element)</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>30</font></div> |
| </td> |
| <td> |
| <div id=PPTP30 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0048.htm');" id=PPTL30>Element Validation - |
| Example</a></font></div> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| </div> |
| |
| <div style='display:none'><a href=master08.htm></a><a href=master08.xml></a><a |
| href=preview.wmf></a><a href="master08_image001.jpg"></a><a |
| href="master08_image002.jpg"></a><a href=master09.htm></a><a href=master09.xml></a><a |
| href="master09_image003.jpg"></a><a href="master09_image004.jpg"></a><a |
| href=master02.htm></a><a href=pres.xml></a><a href=editdata.mso></a><a |
| href=slide0028.htm></a><a href="master09_image005.jpg"></a><a |
| href="master09_image006.jpg"></a><a href=slide0035.htm></a><a |
| href="master08_image007.jpg"></a><a href="master08_image008.gif"></a><a |
| href=slide0029.htm></a><a href=slide0036.htm></a><a href=slide0030.htm></a><a |
| href=slide0037.htm></a><a href=slide0038.htm></a><a href=slide0039.htm></a><a |
| href=slide0044.htm></a><a href=slide0031.htm></a><a href=slide0040.htm></a><a |
| href=slide0042.htm></a><a href=slide0041.htm></a><a href=slide0043.htm></a><a |
| href=slide0045.htm></a><a href=slide0032.htm></a><a href=slide0050.htm></a><a |
| href=slide0051.htm></a><a href=slide0052.htm></a><a href=slide0046.htm></a><a |
| href=slide0033.htm></a><a href=slide0053.htm></a><a href=slide0054.htm></a><a |
| href=slide0047.htm></a><a href=slide0034.htm></a><a href=slide0055.htm></a><a |
| href=slide0056.htm></a><a href=slide0057.htm></a><a href=slide0058.htm></a><a |
| href=slide0048.htm></a><a href=master01.htm></a><a |
| href="master08_stylesheet.css"></a><a href=script.js></a><a |
| href="../EclipseCon2004_TechnologyExchange.htm"></a><a href=fullscreen.htm></a><a |
| href=buttons.gif></a><a href=frame.htm></a><a href=outline.htm></a></div> |
| |
| </body> |
| |
| </html> |