01: /**
02: * MarkerSet.java
03: *
04: */package org.wfp.vam.intermap.kernel.marker;
05:
06: import java.util.ArrayList;
07: import java.util.Iterator;
08: import java.util.List;
09: import org.jdom.Element;
10: import org.wfp.vam.intermap.kernel.map.mapServices.BoundingBox;
11: import org.wfp.vam.intermap.kernel.marker.Marker;
12:
13: /**
14: * A set of Markers
15: *
16: * @author ETj
17: */
18: public class MarkerSet implements Iterable<Marker> {
19: private List<Marker> _list = new ArrayList<Marker>();
20:
21: public MarkerSet() {
22: }
23:
24: public void add(Marker m) {
25: _list.add(m);
26: }
27:
28: public Marker get(long id) {
29: for (Marker marker : _list) {
30: if (marker.getId() == id)
31: return marker;
32: }
33:
34: return null;
35: }
36:
37: public boolean isEmpty() {
38: return _list.isEmpty();
39: }
40:
41: public boolean remove(long id) {
42: for (Iterator i = _list.iterator(); i.hasNext();) {
43: Marker marker = (Marker) i.next();
44: if (marker.getId() == id) {
45: i.remove();
46: return true;
47: }
48: }
49:
50: return false;
51: }
52:
53: public Element toElement() {
54: Element ret = new Element("markers");
55:
56: for (Marker m : _list)
57: ret.addContent(m.toElement());
58:
59: return ret;
60: }
61:
62: public MarkerSet select(BoundingBox bb) {
63: return select(bb.getSouth(), bb.getNorth(), bb.getWest(), bb
64: .getEast());
65: }
66:
67: public MarkerSet select(float minlat, float maxlat, float minlon,
68: float maxlon) {
69: MarkerSet ret = new MarkerSet();
70:
71: for (Marker m : _list)
72: if (m.isIn(minlat, maxlat, minlon, maxlon))
73: ret.add(m);
74:
75: return ret;
76: }
77:
78: /**
79: * Returns an iterator over a set of elements of type T.
80: *
81: * @return an Iterator.
82: */
83: public Iterator<Marker> iterator() {
84: return _list.iterator();
85: }
86:
87: }
|