// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm; import java.util.ArrayList; import java.util.List; import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; public class WayData extends PrimitiveData implements IWay { private static final long serialVersionUID = 106944939313286415L; private List<Long> nodes = new ArrayList<>(); /** * Constructs a new {@code NodeData}. */ public WayData() { // contents can be set later with setters } /** * Constructs a new {@code WayData}. * @param data way data to copy */ public WayData(WayData data) { super(data); nodes.addAll(data.getNodes()); } public List<Long> getNodes() { return nodes; } @Override public int getNodesCount() { return nodes.size(); } @Override public long getNodeId(int idx) { return nodes.get(idx); } @Override public boolean isClosed() { if (isIncomplete()) return false; return nodes.get(0).equals(nodes.get(nodes.size() - 1)); } public void setNodes(List<Long> nodes) { this.nodes = new ArrayList<>(nodes); } @Override public WayData makeCopy() { return new WayData(this); } @Override public String toString() { return super.toString() + " WAY" + nodes; } @Override public OsmPrimitiveType getType() { return OsmPrimitiveType.WAY; } @Override public void accept(PrimitiveVisitor visitor) { visitor.visit(this); } }