After a few attempts to use inheritance in some ETL and EML rules I completely gave up because I got to many "weird" errors, specially when populating collections. I was in a bit of a hurry and didn't have the time to dig a bit deeper.
I know inheritance can be my friend and save me some time and headaches and I am willing to give it another try. However, in the Epsilon book there is no details regarding inheritance, except for the existence of the extends keyword. For starters I would assume that that a rule can only extend another rule that has the same type of elements in the source parameter. Beyond that I would like to know how does it actually work.
1. Regarding target parameters: do you get a sum of the base and the extended rule, or only the ones from the extended rule? What special considerations must be taken when naming target parameters?
2. Does the base rule always has to be abstract? Probably a clarification of the semantics of the extends operator would come in handy.
3. How does the body of the base rule and the extending rule execute? As before a detailed explanation of the extends semantics would be nice.
4. How all of the above works if you extend more than one rule?
Any other details would be appreciated, for example if in different languages some of the semantics change.
Horacio Hoyos Rodriguez
University Of York