1*1c2bbba8SAndroid Build Coastguard Worker# Generated builder example 2*1c2bbba8SAndroid Build Coastguard Worker 3*1c2bbba8SAndroid Build Coastguard Worker 4*1c2bbba8SAndroid Build Coastguard WorkerFor the code shown in the [builder documentation](builders.md), the following is 5*1c2bbba8SAndroid Build Coastguard Workertypical code AutoValue might generate: 6*1c2bbba8SAndroid Build Coastguard Worker 7*1c2bbba8SAndroid Build Coastguard Worker```java 8*1c2bbba8SAndroid Build Coastguard Workerimport javax.annotation.Generated; 9*1c2bbba8SAndroid Build Coastguard Worker 10*1c2bbba8SAndroid Build Coastguard Worker@Generated("com.google.auto.value.processor.AutoValueProcessor") 11*1c2bbba8SAndroid Build Coastguard Workerfinal class AutoValue_Animal extends Animal { 12*1c2bbba8SAndroid Build Coastguard Worker private final String name; 13*1c2bbba8SAndroid Build Coastguard Worker private final int numberOfLegs; 14*1c2bbba8SAndroid Build Coastguard Worker 15*1c2bbba8SAndroid Build Coastguard Worker private AutoValue_Animal( 16*1c2bbba8SAndroid Build Coastguard Worker String name, 17*1c2bbba8SAndroid Build Coastguard Worker int numberOfLegs) { 18*1c2bbba8SAndroid Build Coastguard Worker this.name = name; 19*1c2bbba8SAndroid Build Coastguard Worker this.numberOfLegs = numberOfLegs; 20*1c2bbba8SAndroid Build Coastguard Worker } 21*1c2bbba8SAndroid Build Coastguard Worker 22*1c2bbba8SAndroid Build Coastguard Worker @Override 23*1c2bbba8SAndroid Build Coastguard Worker String name() { 24*1c2bbba8SAndroid Build Coastguard Worker return name; 25*1c2bbba8SAndroid Build Coastguard Worker } 26*1c2bbba8SAndroid Build Coastguard Worker 27*1c2bbba8SAndroid Build Coastguard Worker @Override 28*1c2bbba8SAndroid Build Coastguard Worker int numberOfLegs() { 29*1c2bbba8SAndroid Build Coastguard Worker return numberOfLegs; 30*1c2bbba8SAndroid Build Coastguard Worker } 31*1c2bbba8SAndroid Build Coastguard Worker 32*1c2bbba8SAndroid Build Coastguard Worker @Override 33*1c2bbba8SAndroid Build Coastguard Worker public String toString() { 34*1c2bbba8SAndroid Build Coastguard Worker return "Animal{" 35*1c2bbba8SAndroid Build Coastguard Worker + "name=" + name + ", " 36*1c2bbba8SAndroid Build Coastguard Worker + "numberOfLegs=" + numberOfLegs 37*1c2bbba8SAndroid Build Coastguard Worker + "}"; 38*1c2bbba8SAndroid Build Coastguard Worker } 39*1c2bbba8SAndroid Build Coastguard Worker 40*1c2bbba8SAndroid Build Coastguard Worker @Override 41*1c2bbba8SAndroid Build Coastguard Worker public boolean equals(Object o) { 42*1c2bbba8SAndroid Build Coastguard Worker if (o == this) { 43*1c2bbba8SAndroid Build Coastguard Worker return true; 44*1c2bbba8SAndroid Build Coastguard Worker } 45*1c2bbba8SAndroid Build Coastguard Worker if (o instanceof Animal) { 46*1c2bbba8SAndroid Build Coastguard Worker Animal that = (Animal) o; 47*1c2bbba8SAndroid Build Coastguard Worker return (this.name.equals(that.name())) 48*1c2bbba8SAndroid Build Coastguard Worker && (this.numberOfLegs == that.numberOfLegs()); 49*1c2bbba8SAndroid Build Coastguard Worker } 50*1c2bbba8SAndroid Build Coastguard Worker return false; 51*1c2bbba8SAndroid Build Coastguard Worker } 52*1c2bbba8SAndroid Build Coastguard Worker 53*1c2bbba8SAndroid Build Coastguard Worker @Override 54*1c2bbba8SAndroid Build Coastguard Worker public int hashCode() { 55*1c2bbba8SAndroid Build Coastguard Worker int h = 1; 56*1c2bbba8SAndroid Build Coastguard Worker h *= 1000003; 57*1c2bbba8SAndroid Build Coastguard Worker h ^= this.name.hashCode(); 58*1c2bbba8SAndroid Build Coastguard Worker h *= 1000003; 59*1c2bbba8SAndroid Build Coastguard Worker h ^= this.numberOfLegs; 60*1c2bbba8SAndroid Build Coastguard Worker return h; 61*1c2bbba8SAndroid Build Coastguard Worker } 62*1c2bbba8SAndroid Build Coastguard Worker 63*1c2bbba8SAndroid Build Coastguard Worker static final class Builder extends Animal.Builder { 64*1c2bbba8SAndroid Build Coastguard Worker private String name; 65*1c2bbba8SAndroid Build Coastguard Worker private Integer numberOfLegs; 66*1c2bbba8SAndroid Build Coastguard Worker 67*1c2bbba8SAndroid Build Coastguard Worker Builder() { 68*1c2bbba8SAndroid Build Coastguard Worker } 69*1c2bbba8SAndroid Build Coastguard Worker 70*1c2bbba8SAndroid Build Coastguard Worker @Override 71*1c2bbba8SAndroid Build Coastguard Worker Animal.Builder setName(String name) { 72*1c2bbba8SAndroid Build Coastguard Worker if (name == null) { 73*1c2bbba8SAndroid Build Coastguard Worker throw new NullPointerException("Null name"); 74*1c2bbba8SAndroid Build Coastguard Worker } 75*1c2bbba8SAndroid Build Coastguard Worker this.name = name; 76*1c2bbba8SAndroid Build Coastguard Worker return this; 77*1c2bbba8SAndroid Build Coastguard Worker } 78*1c2bbba8SAndroid Build Coastguard Worker 79*1c2bbba8SAndroid Build Coastguard Worker @Override 80*1c2bbba8SAndroid Build Coastguard Worker Animal.Builder setNumberOfLegs(int numberOfLegs) { 81*1c2bbba8SAndroid Build Coastguard Worker this.numberOfLegs = numberOfLegs; 82*1c2bbba8SAndroid Build Coastguard Worker return this; 83*1c2bbba8SAndroid Build Coastguard Worker } 84*1c2bbba8SAndroid Build Coastguard Worker 85*1c2bbba8SAndroid Build Coastguard Worker @Override 86*1c2bbba8SAndroid Build Coastguard Worker Animal build() { 87*1c2bbba8SAndroid Build Coastguard Worker String missing = ""; 88*1c2bbba8SAndroid Build Coastguard Worker if (this.name == null) { 89*1c2bbba8SAndroid Build Coastguard Worker missing += " name"; 90*1c2bbba8SAndroid Build Coastguard Worker } 91*1c2bbba8SAndroid Build Coastguard Worker if (this.numberOfLegs == null) { 92*1c2bbba8SAndroid Build Coastguard Worker missing += " numberOfLegs"; 93*1c2bbba8SAndroid Build Coastguard Worker } 94*1c2bbba8SAndroid Build Coastguard Worker if (!missing.isEmpty()) { 95*1c2bbba8SAndroid Build Coastguard Worker throw new IllegalStateException("Missing required properties:" + missing); 96*1c2bbba8SAndroid Build Coastguard Worker } 97*1c2bbba8SAndroid Build Coastguard Worker return new AutoValue_Animal( 98*1c2bbba8SAndroid Build Coastguard Worker this.name, 99*1c2bbba8SAndroid Build Coastguard Worker this.numberOfLegs); 100*1c2bbba8SAndroid Build Coastguard Worker } 101*1c2bbba8SAndroid Build Coastguard Worker } 102*1c2bbba8SAndroid Build Coastguard Worker} 103*1c2bbba8SAndroid Build Coastguard Worker``` 104