Hello,
I'd like to briefly summarize the situation so that we can make some
progress.
What we have:
* We define "parameters" in a macro by creating a Java Bean, which
provides all the getters and setters of the parameters we want.
* We can use annotations on these getters/setters to define some
behavior or metadata for these parameters (description, mandatory,
deprecated...)
What we want:
* Being able to handle conflicting parameters. For instance when we
deprecate a parameter and add a new one to replace it, we should be
able to either use the deprecated parameter or the new one but not
both.
* We also want to group parameters that are related to each other.
What we proposed:
* Use annotations on the parameters to express the conflict.
* Marius proposed to see the problem as a boolean expression such as:
(page XOR (reference AND type) XOR document) OR section OR context.
This would translate as: the user can use the 'section' and/or
'context' parameters (if they want), can use only one of these
parameters: 'page', ('reference' and 'type') or
'document', where
'reference' and 'type' depend on each other and you can't use one
without the other.
* You can see on previous e-mails the kind of annotations we proposed
to solve the issue.
Thanks,
Adel