mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-07-19 21:04:36 +02:00
Implement hashCode/equals on ID for Entities
This also drops an angry comment that was the result of not being able to fathom the default behaviour. Fixes #87.
This commit is contained in:
parent
baafd768ec
commit
90d368a95b
|
@ -2,6 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 swt23w23
|
// SPDX-FileCopyrightText: 2023 swt23w23
|
||||||
package catering.catalog;
|
package catering.catalog;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -60,4 +61,16 @@ public class Consumable extends Product {
|
||||||
wholesalePrice = price;
|
wholesalePrice = price;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(Consumable.class, getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (obj instanceof Consumable other) {
|
||||||
|
return getId().equals(other.getId());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 swt23w23
|
// SPDX-FileCopyrightText: 2023 swt23w23
|
||||||
package catering.catalog;
|
package catering.catalog;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.money.MonetaryAmount;
|
import javax.money.MonetaryAmount;
|
||||||
|
@ -48,4 +49,17 @@ public class Rentable extends Product {
|
||||||
public MonetaryAmount getPriceForTime(int hours) {
|
public MonetaryAmount getPriceForTime(int hours) {
|
||||||
return getPrice().multiply(hours).add(getPrice());
|
return getPrice().multiply(hours).add(getPrice());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(Rentable.class, getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (obj instanceof Rentable other) {
|
||||||
|
return getId().equals(other.getId());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import java.time.LocalDateTime;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@ -127,4 +128,17 @@ public class CustomOrder extends Order {
|
||||||
public void setInvoiceAvailable(boolean available) {
|
public void setInvoiceAvailable(boolean available) {
|
||||||
this.invoiceAvailable = available;
|
this.invoiceAvailable = available;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(CustomOrder.class, getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (obj instanceof CustomOrder other) {
|
||||||
|
return getId().equals(other.getId());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.salespointframework.quantity.Quantity;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class CustomCatalogEntry {
|
public class CustomCatalogEntry {
|
||||||
|
@ -77,4 +78,17 @@ public class CustomCatalogEntry {
|
||||||
public void setTotalCost(int totalCost) {
|
public void setTotalCost(int totalCost) {
|
||||||
this.totalCost = totalCost;
|
this.totalCost = totalCost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(CustomCatalogEntry.class, getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (obj instanceof CustomCatalogEntry other) {
|
||||||
|
return getId() == other.getId();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ package catering.staff;
|
||||||
|
|
||||||
import static org.salespointframework.core.Currencies.EURO;
|
import static org.salespointframework.core.Currencies.EURO;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.money.MonetaryAmount;
|
import javax.money.MonetaryAmount;
|
||||||
|
|
||||||
import org.javamoney.moneta.Money;
|
import org.javamoney.moneta.Money;
|
||||||
|
@ -58,6 +60,11 @@ public class Employee {
|
||||||
this.wage = Money.of(wage, EURO);
|
this.wage = Money.of(wage, EURO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(Employee.class, getId());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (obj instanceof Employee other) {
|
if (obj instanceof Employee other) {
|
||||||
|
|
|
@ -7,6 +7,8 @@ import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import jakarta.persistence.OneToOne;
|
import jakarta.persistence.OneToOne;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.salespointframework.core.AbstractAggregateRoot;
|
import org.salespointframework.core.AbstractAggregateRoot;
|
||||||
import org.salespointframework.useraccount.Role;
|
import org.salespointframework.useraccount.Role;
|
||||||
import org.salespointframework.useraccount.UserAccount;
|
import org.salespointframework.useraccount.UserAccount;
|
||||||
|
@ -74,23 +76,15 @@ public class User {
|
||||||
return userAccount.getRoles().stream().toList().contains(Role.of(role));
|
return userAccount.getRoles().stream().toList().contains(Role.of(role));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Der Ficker muss so. -- sbruder
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
return Objects.hash(User.class, getId());
|
||||||
int result = 1;
|
|
||||||
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
|
||||||
result = prime * result + ((address == null) ? 0 : address.hashCode());
|
|
||||||
result = prime * result + ((fullName == null) ? 0 : fullName.hashCode());
|
|
||||||
result = prime * result + ((userAccount == null) ? 0 : userAccount.getId().hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (obj instanceof User other) {
|
if (obj instanceof User other) {
|
||||||
return address.equals(other.address) && fullName.equals(other.fullName)
|
return getId().equals(other.getId());
|
||||||
&& userAccount.getPassword().equals(other.userAccount.getPassword());
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue