As Javi just pointed out, the names (create, cast) for the decorator
functions are rather confusing since, for example, create is actually
initializing the particle (and creating the decorator is just a side
effect and there are many other ways to create a decorator).
I would propose that they change to
Decorator::setup_particle for create since it sets up the required
attributes on the particle
and
Decorator::decorator instead of cast, since it actually decorates the
particle.
While these changes would touch a lot of code, they could be easily
done, both in svn and your code via sed since "::create(" is probably
always for a decorator in c++ (and ".create(" in python). I would
check a shell script into tools to aid the update.