Inner Annotation Attributes

jonnybbb made a suggestion that we rather use attributes for the participants and comments.  I’ve done this for all of the annotations and inner annotations, so instead of

@CompositePattern.Component
@PatternParticipants({DistributionList.class, Person.class})
public abstract class Contact {
  public abstract void sendMail(String msg);
  public void add(Contact contact) {}
  public void remove(Contact contact) {}
}

We can now do the following:

@CompositePattern.Component(participants = {
    DistributionList.class, Person.class})
public abstract class Contact {
  public abstract void sendMail(String msg);
  public void add(Contact contact) {}
  public void remove(Contact contact) {}
}

That is even better, because then users will see the options available with autocompletion. Lots of duplication inside the annotations, but it is not our fault that you cannot inherit annotations 🙁

Heinz