package se.kodapan.osm.domain; import se.kodapan.osm.domain.root.NotLoadedException; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * @author kalle * @since 2013-05-01 15:42 */ public class Way extends OsmObject implements Serializable { private static final long serialVersionUID = 1l; @Override public <R> R accept(OsmObjectVisitor<R> visitor) { return visitor.visit(this); } public Way() { } public Way(Long id) { setId(id); } private List<Node> nodes; /** * @return true if an enclosed polygon */ public boolean isPolygon() { if (!isLoaded()) { throw new NotLoadedException(this); } return getNodes().size() > 2 && getNodes().get(0).equals(getNodes().get(getNodes().size() - 1)); } public Way addNode(Node node) { if (nodes == null) { nodes = new ArrayList<Node>(50); } nodes.add(node); return this; } public List<Node> getNodes() { return nodes; } public void setNodes(List<Node> nodes) { this.nodes = nodes; } @Override public String toString() { return "Way{" + super.toString() + "nodes.size=" + (nodes == null ? "null" : nodes.size()) + '}'; } }