import java.util.List; import java.util.Map; import java.util.ArrayList; import java.util.Arrays; /** * @opt inferrel * @opt collpackages java.util.* * @opt inferdep * @opt inferdepinpackage * @opt hide java.* * @hidden */ class UMLOptions {} class Person { House[] houses; List<Dog> dogs; public Room getFavouriteRoom(House house) {} } /** * @opt inferreltype composed */ class House { Map<String, Room> nameRoomMap; } class Room {} class Dog { Person owner; }

In this diagram we enabled both relationship and dependency inference.
To make sure Person.dogs and Person.friends are interpreted as one to many relationship the `collpackage` option has to be specified.