Skip to content
Snippets Groups Projects
ZoneInfo.java 2.55 KiB
package Structures;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ZoneInfo implements Serializable {
    String name = "X";
    Date date;
    MeteoInfo meteo;
    List<PhotoInfo> photos = new ArrayList<>();
    List<WalkInfo> walks = new ArrayList<>();

    public ZoneInfo() {

    }

    public ZoneInfo(String name) {
        this.name = name;
    }

    public ZoneInfo(String name, Date date, MeteoInfo meteo) {
        this.name = name;
        this.date = date;
        this.meteo = meteo;
    }

    public String getName() {
        return name;
    }

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

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public List<PhotoInfo> getPhotos() {
        return photos;
    }

    public PhotoInfo getPhoto(int i) {
        return photos.get(i);
    }

    public PhotoInfo getPhoto(Orientation orientation) {
        for (PhotoInfo pi: this.photos)
            if (pi.getOrientation() == orientation)
                return pi;
        return null;
    }

    public void addPhoto(PhotoInfo photo) {
        PhotoInfo existingPhoto = this.getPhoto(photo.getOrientation());
        // remove the existing photo for this orientation if exists
        if (existingPhoto != null) {
            this.removePhoto(existingPhoto);
        }
        this.photos.add(photo);
    }

    public void removePhoto(PhotoInfo photo) {
        this.photos.remove(photo);
    }

    public MeteoInfo getMeteo() {
        return meteo;
    }

    public void setMeteo(MeteoInfo meteo) {
        this.meteo = meteo;
    }

    public List<WalkInfo> getWalks() {
        return walks;
    }

    public WalkInfo getWalk(int i) {
        return this.walks.get(i);
    }

    public WalkInfo getWalk(Orientation orientation) {
        for (WalkInfo wi : this.walks)
            if (wi.getOrientation() == orientation)
                return wi;
        return null;
    }

    public void addWalk(WalkInfo walk) {
        WalkInfo existingWalk = this.getWalk(walk.getOrientation());
        // remove the existing walk for this orientation if exists
        if (existingWalk != null) {
            this.removeWalk(existingWalk);
        }
        this.walks.add(walk);
    }

    public void removeWalk(WalkInfo walk) {
        this.walks.remove(walk);
    }

    @Override
    public String toString() {
        return "ZoneInfo{" +
                "name='" + name + '\'' +
                '}';
    }
}