/*
* Copyright 2016 Nicolas Morel
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.nmorel.gwtjackson.shared.model;
final class AutoValue_Animal extends Animal {
private final String name;
private final int numberOfLegs;
private AutoValue_Animal(
String name,
int numberOfLegs ) {
if ( name == null ) {
throw new NullPointerException( "Null name" );
}
this.name = name;
this.numberOfLegs = numberOfLegs;
}
@com.fasterxml.jackson.annotation.JsonProperty( value = "name" )
@Override
public String name() {
return name;
}
@com.fasterxml.jackson.annotation.JsonProperty( value = "numberOfLegs" )
@Override
public int numberOfLegs() {
return numberOfLegs;
}
@Override
public String toString() {
return "Animal{"
+ "name=" + name + ", "
+ "numberOfLegs=" + numberOfLegs
+ "}";
}
@Override
public boolean equals( Object o ) {
if ( o == this ) {
return true;
}
if ( o instanceof Animal ) {
Animal that = (Animal) o;
return (this.name.equals( that.name() ))
&& (this.numberOfLegs == that.numberOfLegs());
}
return false;
}
@Override
public int hashCode() {
int h = 1;
h *= 1000003;
h ^= name.hashCode();
h *= 1000003;
h ^= numberOfLegs;
return h;
}
static final class Builder extends Animal.Builder {
private String name;
private Integer numberOfLegs;
Builder() {
}
Builder( Animal source ) {
this.name = source.name();
this.numberOfLegs = source.numberOfLegs();
}
@Override
public Animal.Builder name( String name ) {
this.name = name;
return this;
}
@Override
public Animal.Builder numberOfLegs( int numberOfLegs ) {
this.numberOfLegs = numberOfLegs;
return this;
}
@Override
public Animal build() {
String missing = "";
if ( name == null ) {
missing += " name";
}
if ( numberOfLegs == null ) {
missing += " numberOfLegs";
}
if ( !missing.isEmpty() ) {
throw new IllegalStateException( "Missing required properties:" + missing );
}
return new AutoValue_Animal(
this.name,
this.numberOfLegs );
}
}
}