Untitled

 avatar
unknown
plain_text
5 months ago
3.1 kB
3
Indexable
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class FoodResource {
    private String name;
    private String address;
    private String type;
    private String operatingHours;
    private boolean isAvailable;
    private List<String> availableFoods = new ArrayList<String>();


    // Constructor
    public FoodResource(String name, String address, String type, String operatingHours, boolean isAvailable, List<String> availableFoods) {
        this.name = name;
        this.address = address;
        this.type = type;
        this.operatingHours = operatingHours;
        this.isAvailable = isAvailable;
        this.availableFoods = availableFoods;

    }

    // Getters
    public String getName() {
        return name;
    }


    public String getAddress() {
        return address;
    }

    public String getType() {
        return type;
    }

    public String getOperatingHours() {
        return operatingHours;
    }

    public boolean isAvailable() {
        return isAvailable;
    }

    public List<String> getAvailableFoods() {
        return availableFoods;
    }

    // Setters
    public void setName(String name) {
        this.name = name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setOperatingHours(String operatingHours) {
        this.operatingHours = operatingHours;
    }

    public void setAvailable(boolean available) {
        isAvailable = available;
    }

    public void setAvaliableFoods(List<String> avaliableFoods) {
        this.availableFoods = availableFoods;
    }

    // toString Method
    @Override
    public String toString() {
        return name + " (" + type + ") - " + (isAvailable ? "Open" : "Closed") +
               "\nAddress: " + address +
               "\nHours: " + operatingHours;
    }

    // equals Method
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        FoodResource that = (FoodResource) o;
        return isAvailable == that.isAvailable &&
               Objects.equals(name, that.name) &&
               Objects.equals(address, that.address) &&
               Objects.equals(type, that.type) &&
               Objects.equals(operatingHours, that.operatingHours);
    }

    // hashCode Method
    @Override
    public int hashCode() {
        return Objects.hash(name, address, type, operatingHours, isAvailable);
    }

    public boolean isOpen() {
        String[] hours = operatingHours.split("-");
        LocalTime openTime = LocalTime.parse(hours[0]);
        LocalTime closeTime = LocalTime.parse(hours[1]);
        LocalTime currentTime = LocalTime.now();

        return currentTime.isAfter(openTime) && currentTime.isBefore(closeTime);
    }
}
Editor is loading...
Leave a Comment