test_class.file: examples/autovalue/src/test/java/net/zerobuilder/examples/autovalue/AnimalTest.java
test_class.identifier: AnimalTest
test_case.body: @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));
    }
test_case.class_method_signature: AnimalTest.builder()
test_case.full_signature: @Test public void builder()
test_case.identifier: builder
test_case.invocations: numberOfLegs name builder done name updater assertThat name is assertThat numberOfLegs is assertThat name is assertThat numberOfLegs is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void builder()
focal_class.file: examples/autovalue/src/main/java/net/zerobuilder/examples/autovalue/Animal.java
focal_class.identifier: Animal
focal_class.class_method_signature: Animal.create(String name, int numberOfLegs)
focal_class.full_signature: @Builder @Updater static Animal create(String name, int numberOfLegs)
focal_class.identifier: create
focal_class.modifiers: @Builder @Updater static
focal_class.parameters: (String name, int numberOfLegs)
focal_class.return: Animal
focal_class.signature: Animal create(String name, int numberOfLegs)
focal_class.class_method_signature: Animal.builder()
focal_class.full_signature: static AnimalBuilders.AnimalBuilder.Name builder()
focal_class.identifier: builder
focal_class.modifiers: static
focal_class.parameters: ()
focal_class.return: AnimalBuilders.AnimalBuilder.Name
focal_class.signature: AnimalBuilders.AnimalBuilder.Name builder()
focal_class.class_method_signature: Animal.updater()
focal_class.full_signature:  AnimalBuilders.AnimalUpdater updater()
focal_class.identifier: updater
focal_class.parameters: ()
focal_class.return: AnimalBuilders.AnimalUpdater
focal_class.signature: AnimalBuilders.AnimalUpdater updater()
focal_class.class_method_signature: Animal.name()
focal_class.full_signature: abstract String name()
focal_class.identifier: name
focal_class.modifiers: abstract
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String name()
focal_class.class_method_signature: Animal.numberOfLegs()
focal_class.full_signature: abstract int numberOfLegs()
focal_class.identifier: numberOfLegs
focal_class.modifiers: abstract
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int numberOfLegs()
focal_method.body: static AnimalBuilders.AnimalBuilder.Name builder() {
      return AnimalBuilders.animalBuilder();
    }
focal_method.class_method_signature: Animal.builder()
focal_method.full_signature: static AnimalBuilders.AnimalBuilder.Name builder()
focal_method.identifier: builder
focal_method.invocations: animalBuilder
focal_method.modifiers: static
focal_method.parameters: ()
focal_method.return: AnimalBuilders.AnimalBuilder.Name
focal_method.signature: AnimalBuilders.AnimalBuilder.Name builder()