xref: /aosp_15_r20/external/auto/value/userguide/generated-example.md (revision 1c2bbba85eccddce6de79cbbf1645fda32e723f0)
1*1c2bbba8SAndroid Build Coastguard Worker# Generated example
2*1c2bbba8SAndroid Build Coastguard Worker
3*1c2bbba8SAndroid Build Coastguard Worker
4*1c2bbba8SAndroid Build Coastguard WorkerFor the code shown in the [introduction](index.md), the following is typical
5*1c2bbba8SAndroid Build Coastguard Workercode 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  AutoValue_Animal(String name, int numberOfLegs) {
16*1c2bbba8SAndroid Build Coastguard Worker    if (name == null) {
17*1c2bbba8SAndroid Build Coastguard Worker      throw new NullPointerException("Null name");
18*1c2bbba8SAndroid Build Coastguard Worker    }
19*1c2bbba8SAndroid Build Coastguard Worker    this.name = name;
20*1c2bbba8SAndroid Build Coastguard Worker    this.numberOfLegs = numberOfLegs;
21*1c2bbba8SAndroid Build Coastguard Worker  }
22*1c2bbba8SAndroid Build Coastguard Worker
23*1c2bbba8SAndroid Build Coastguard Worker  @Override
24*1c2bbba8SAndroid Build Coastguard Worker  String name() {
25*1c2bbba8SAndroid Build Coastguard Worker    return name;
26*1c2bbba8SAndroid Build Coastguard Worker  }
27*1c2bbba8SAndroid Build Coastguard Worker
28*1c2bbba8SAndroid Build Coastguard Worker  @Override
29*1c2bbba8SAndroid Build Coastguard Worker  int numberOfLegs() {
30*1c2bbba8SAndroid Build Coastguard Worker    return numberOfLegs;
31*1c2bbba8SAndroid Build Coastguard Worker  }
32*1c2bbba8SAndroid Build Coastguard Worker
33*1c2bbba8SAndroid Build Coastguard Worker  @Override
34*1c2bbba8SAndroid Build Coastguard Worker  public String toString() {
35*1c2bbba8SAndroid Build Coastguard Worker    return "Animal{"
36*1c2bbba8SAndroid Build Coastguard Worker        + "name=" + name + ", "
37*1c2bbba8SAndroid Build Coastguard Worker        + "numberOfLegs=" + numberOfLegs + "}";
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```
64