package com.ufund.api.ufundapi.model; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonProperty; public class User { @JsonProperty("name") private final String name; @JsonProperty("passwordHash") private int passwordHash; @JsonProperty("basket") private final List basket; /** * Create a new user * * @param name The name of the user */ public User(@JsonProperty("name") String name) { this.name = name; basket = new ArrayList<>(); } /** * Create a new user * * @param name The name of the user * @param basket A basket to copy from */ public User(@JsonProperty("name") String name, @JsonProperty("basket") List basket) { this.name = name; this.basket = basket; } /** * Create a deep copy of another user * * @param other The user to copy from */ public User(User other) { this.name = other.name; this.basket = other.basket; } public String getName() { return name; } public boolean verifyPassword(String password) { return password.hashCode() == passwordHash; } public void addToBasket(Need need) { basket.add(need); } public Need[] getBasketNeeds() { return basket.toArray(Need[]::new); } public void removeBasketNeed(Need need) { basket.remove(need); } }