54 lines
1.3 KiB
Java
54 lines
1.3 KiB
Java
|
|
package com.baeldung.autovalue;
|
||
|
|
|
||
|
|
public final class ImmutableMoney {
|
||
|
|
private final long amount;
|
||
|
|
private final String currency;
|
||
|
|
|
||
|
|
public ImmutableMoney(long amount, String currency) {
|
||
|
|
this.amount = amount;
|
||
|
|
this.currency = currency;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public int hashCode() {
|
||
|
|
final int prime = 31;
|
||
|
|
int result = 1;
|
||
|
|
result = prime * result + (int) (amount ^ (amount >>> 32));
|
||
|
|
result = prime * result + ((currency == null) ? 0 : currency.hashCode());
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public boolean equals(Object obj) {
|
||
|
|
if (this == obj)
|
||
|
|
return true;
|
||
|
|
if (obj == null)
|
||
|
|
return false;
|
||
|
|
if (getClass() != obj.getClass())
|
||
|
|
return false;
|
||
|
|
ImmutableMoney other = (ImmutableMoney) obj;
|
||
|
|
if (amount != other.amount)
|
||
|
|
return false;
|
||
|
|
if (currency == null) {
|
||
|
|
if (other.currency != null)
|
||
|
|
return false;
|
||
|
|
} else if (!currency.equals(other.currency))
|
||
|
|
return false;
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
public long getAmount() {
|
||
|
|
return amount;
|
||
|
|
}
|
||
|
|
|
||
|
|
public String getCurrency() {
|
||
|
|
return currency;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public String toString() {
|
||
|
|
return "ImmutableMoney [amount=" + amount + ", currency=" + currency + "]";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|