source: josm/trunk/src/org/openstreetmap/josm/data/osm/RelationData.java@ 11710

Last change on this file since 11710 was 9891, checked in by simon04, 8 years ago

see #12300 - Make Drag and Drop work between different JOSM instances

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import java.util.ArrayList;
5import java.util.List;
6
7import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
8
9public class RelationData extends PrimitiveData implements IRelation {
10
11 private static final long serialVersionUID = 1163664954890478565L;
12 private List<RelationMemberData> members = new ArrayList<>();
13
14 /**
15 * Constructs a new {@code RelationData}.
16 */
17 public RelationData() {
18 // contents can be set later with setters
19 }
20
21 /**
22 * Constructs a new {@code RelationData}.
23 * @param data relation data to copy
24 */
25 public RelationData(RelationData data) {
26 super(data);
27 members.addAll(data.members);
28 }
29
30 public List<RelationMemberData> getMembers() {
31 return members;
32 }
33
34 public void setMembers(List<RelationMemberData> memberData) {
35 members = new ArrayList<>(memberData);
36 }
37
38 @Override
39 public int getMembersCount() {
40 return members.size();
41 }
42
43 @Override
44 public long getMemberId(int idx) {
45 return members.get(idx).getMemberId();
46 }
47
48 @Override
49 public String getRole(int idx) {
50 return members.get(idx).getRole();
51 }
52
53 @Override
54 public OsmPrimitiveType getMemberType(int idx) {
55 return members.get(idx).getMemberType();
56 }
57
58 @Override
59 public RelationData makeCopy() {
60 return new RelationData(this);
61 }
62
63 @Override
64 public String toString() {
65 return super.toString() + " REL " + members;
66 }
67
68 @Override
69 public OsmPrimitiveType getType() {
70 return OsmPrimitiveType.RELATION;
71 }
72
73 @Override
74 public void accept(PrimitiveVisitor visitor) {
75 visitor.visit(this);
76 }
77
78}
Note: See TracBrowser for help on using the repository browser.