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.
ekkes-corner.org (blog in english)
ekkes-ecke.org (blog in german)
ekkes-corner-tv.org (video podcasts)
iTunes (search for "ekkes-corner")
(c) 1996 John Vlissides "Generation Gap Pattern"
Article Heike Behrens "Generation Gap Pattern"