package com.noticeditorteam.noticeditor.model;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public final class Attachments implements Iterable<Attachment> {
private final Map<String, Attachment> attachments;
public Attachments() {
attachments = new HashMap<>();
}
public Attachments(Map<String, Attachment> map) {
attachments = new HashMap<>(map);
}
public Attachments(List<Attachment> list) {
attachments = new HashMap<>(list.size());
for (Attachment attachment : list) {
attachments.put(attachment.getName(), attachment);
}
}
public Attachments(Attachments other) {
this(other.attachments);
}
public int size() {
return attachments.size();
}
public boolean isEmpty() {
return attachments.isEmpty();
}
public void add(Attachment e) {
attachments.put(e.getName(), e);
}
public void remove(Attachment att) {
attachments.remove(att.getName());
}
public void clear() {
attachments.clear();
}
public Attachment get(String name) {
return attachments.get(name);
}
public Attachment getOrEmpty(String name) {
return attachments.getOrDefault(name, Attachment.EMPTY);
}
public boolean contains(String key) {
return attachments.containsKey(key);
}
@Override
public Iterator<Attachment> iterator() {
return attachments.values().iterator();
}
}