// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.mappaint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
/**
* List of {@link StyleElement}s, immutable.
*/
public class StyleElementList implements Iterable<StyleElement> {
private final List<StyleElement> lst;
/**
* Constructs a new {@code StyleList}.
*/
public StyleElementList() {
lst = new ArrayList<>();
}
public StyleElementList(StyleElement... init) {
lst = new ArrayList<>(Arrays.asList(init));
}
public StyleElementList(Collection<StyleElement> sl) {
lst = new ArrayList<>(sl);
}
public StyleElementList(StyleElementList sl, StyleElement s) {
lst = new ArrayList<>(sl.lst);
lst.add(s);
}
@Override
public Iterator<StyleElement> iterator() {
return lst.iterator();
}
public boolean isEmpty() {
return lst.isEmpty();
}
public int size() {
return lst.size();
}
@Override
public String toString() {
return lst.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
StyleElementList that = (StyleElementList) obj;
return Objects.equals(lst, that.lst);
}
@Override
public int hashCode() {
return Objects.hash(lst);
}
}