DirectoryList.java

package emissary.client.response;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.Serializable;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

@XmlAccessorType(XmlAccessType.NONE)
public class DirectoryList implements Serializable {
    private static final long serialVersionUID = -6660679929326876133L;

    private static final Logger logger = LoggerFactory.getLogger(DirectoryList.class);

    @XmlElement(name = "directoryPlace")
    private String directoryPlace;

    @XmlElement(name = "entries")
    private SortedSet<Directory> entries;

    public DirectoryList() {
        entries = new TreeSet<>();
    }

    public DirectoryList(String directoryPlace, SortedSet<Directory> entries) {
        this.directoryPlace = directoryPlace;
        this.entries = entries;
    }

    public String getDirectoryPlace() {
        return directoryPlace;
    }

    public void setDirectoryPlace(String directoryPlace) {
        this.directoryPlace = directoryPlace;
    }

    public Set<Directory> getEntries() {
        return entries;
    }

    public void setEntries(SortedSet<Directory> entries) {
        this.entries = entries;
    }

    public void addEntries(Directory entry) {
        this.entries.add(entry);
    }

    public void dumpToConsole() {
        if (getDirectoryPlace() != null) {
            StringBuilder sb = new StringBuilder();
            sb.append("DirectoryPlace: ").append("\n");
            sb.append("  ").append(getDirectoryPlace()).append("\n").append("Entries: ");
            for (Directory entry : getEntries()) {
                sb.append("\n  ").append(entry).append("$").append(entry.getExpense());
            }
            logger.info("{}", sb);
        }
    }
}