Animal { static AnimalBuilders.AnimalBuilder.Name builder() { return AnimalBuilders.animalBuilder(); }    }
@Test public void builder() throws Exception { Animal zebra = Animal.builder().name("foo").numberOfLegs(10); Animal updated = zebra.updater().name("clara").done(); assertThat(zebra.name(), is("foo")); assertThat(zebra.numberOfLegs(), is(10)); assertThat(updated.name(), is("clara")); assertThat(updated.numberOfLegs(), is(10)); }