import lombok.NonNull;

public class WitherExample {
	private final int age;
	private @NonNull final String name;
	
	public WitherExample(String name, int age) {
		if (name == null) throw new NullPointerException();
		this.name = name;
		this.age = age;
	}
	
	public WitherExample withAge(int age) {
		return this.age == age ? this : new WitherExample(age, name);
	}
	
	protected WitherExample withName(@NonNull String name) {
		if (name == null) throw new java.lang.NullPointerException("name");
		return this.name == name ? this : new WitherExample(age, name);
	}
}