The Generation Gap Pattern (see also John Vlissides) is widely used to separate generated code from modifdied/extended code.
But the Generation Gap Pattern isn't always aplicable - from my experiences it fails if you generate code into areas with partly complex inheritance hierarchies like Persistence Layer with Entity, Embeddable, EJB3 etc.
Using a modern Generation Framework as oAW (openArchitectureWare) from Eclipse Modeling Tools Project you can implement a Veto Strategy in your workflow components to optimize file handling using Generation Gap Pattern.
In this presentation I introduce a VetoRedirectStrategy to find ways without applying the Generation Gap Pattern.
I tried to make a presentation partly in ZEN style and with easy-to-understand slides - so have fun.
HINT: YOU CAN WATCH THESE SLIDES AS A VIDEO+AUDIO:
http://vimeo.com/ekkescorner
Additional Informations:
http://ekkes-corner.org (blog in english)
http://ekkes-ecke.org (blog in german)
http://ekkes-corner-tv.org (video podcasts)
iTunes (search for "ekkes-corner")
@ekkescorner (twitter)
references:
(c) 1996 John Vlissides "Generation Gap Pattern"
http://www.research.ibm.com/designpatterns/pubs/gg.html
Article Heike Behrens "Generation Gap Pattern"
http://www.1160pm.net/2009/04/23/generation-gap-pattern/
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
New Ways around Generation Gap Pattern
1. ekke (ekkehard gentz), softwarearchitect
(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
2. New Ways around
Generation Gap Pattern:
ekke (ekkehard gentz), softwarearchitect
(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
3. New Ways around
Generation Gap Pattern:
Protected Regions
ekke (ekkehard gentz), softwarearchitect
(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
4. New Ways around
Generation Gap Pattern:
Protected Regions
VetoRedirectStrategy
ekke (ekkehard gentz), softwarearchitect
(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
25. /* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
26. /* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
27. /* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
28. /* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
29. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
30. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
//
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
31. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ now here‘s changed code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
32. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */
/ now here‘s changed code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
33. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ some default code
/
/* PROTECTED REGION END */
ED
L
AB
EN
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */
/ now here‘s changed code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
34. ED
L
AB
IS
D
ED
L
AB
EN
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */
/ now here‘s changed code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
35. ED
L
AB
IS
D
/* PROTECTED REGION ID(MY_UNIQU_ID) START */
/ new generated default code
/
/* PROTECTED REGION END */
ED
L
AB
EN
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */
/ now here‘s changed code
/
/* PROTECTED REGION END */
Freitag, 8. Mai 2009
93. this presentation is
ZEN style
designed in
http://www.presentationzen.com/
you can hear and watch at:
http://vimeo.com/ekkescorner (video)
iTunes: search „ekkes-corner“ (iPhone)
http://ekkes-corner-tv.org (QuickTime)
ekke (ekkehard gentz), softwarearchitect
(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009