I wanted to create a class diagram for a method returning a Collection<Object[]> (that is, a Collection of Object arrays).
Why would I need something returning that type of thing? For JUnit parameterized tests.
It wasn’t immediately clear to me how to do this… but here’s how it ended up:
- Create a class. Name it Collection<Object[]> (which is what it will be in the end if this works!)
- In its Specification, go to Relations:
- Choose Create Outgoing…
- …Template Binding:
- In box that pops up, open the JDK 5.0 Classes folder and navigate to java.util. Find the Collection interfaces. Interestingly enough, we want the Collection one, not the Collection<E> one — Select the “< >” under the plain Collection interface:
…and click OK. - Back at the class’s Relations page, press the Edit button:
- On the Template Binding dialog that comes up, go to the Template Parameter Substitutions page:
- Then choose press Create, and check the template parameter you want to fill in:
- Fill in the Actual field as Object… but because we want an object array, we also need to choose to show All properties, and then choose [] for the Type Modifier field:
…and we’re done.
Or, we could just reverse engineer the code… : )