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

Last change on this file since 12188 was 12017, checked in by Don-vip, 7 years ago

*Data: new constructors with a given id

  • Property svn:eol-style set to native
File size: 2.1 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
9/**
10 * Relation data.
11 * @since 2284
12 */
13public class RelationData extends PrimitiveData implements IRelation {
14
15 private static final long serialVersionUID = 1163664954890478565L;
16 private List<RelationMemberData> members = new ArrayList<>();
17
18 /**
19 * Constructs a new {@code RelationData}.
20 */
21 public RelationData() {
22 // contents can be set later with setters
23 }
24
25 /**
26 * Constructs a new {@code RelationData} with given id.
27 * @param id id
28 * @since 12017
29 */
30 public RelationData(long id) {
31 super(id);
32 }
33
34 /**
35 * Constructs a new {@code RelationData}.
36 * @param data relation data to copy
37 */
38 public RelationData(RelationData data) {
39 super(data);
40 members.addAll(data.members);
41 }
42
43 /**
44 * Returns relation members.
45 * @return relation members
46 */
47 public List<RelationMemberData> getMembers() {
48 return members;
49 }
50
51 /**
52 * Sets relation members.
53 * @param memberData relation members
54 */
55 public void setMembers(List<RelationMemberData> memberData) {
56 members = new ArrayList<>(memberData);
57 }
58
59 @Override
60 public int getMembersCount() {
61 return members.size();
62 }
63
64 @Override
65 public long getMemberId(int idx) {
66 return members.get(idx).getMemberId();
67 }
68
69 @Override
70 public String getRole(int idx) {
71 return members.get(idx).getRole();
72 }
73
74 @Override
75 public OsmPrimitiveType getMemberType(int idx) {
76 return members.get(idx).getMemberType();
77 }
78
79 @Override
80 public RelationData makeCopy() {
81 return new RelationData(this);
82 }
83
84 @Override
85 public String toString() {
86 return super.toString() + " REL " + members;
87 }
88
89 @Override
90 public OsmPrimitiveType getType() {
91 return OsmPrimitiveType.RELATION;
92 }
93
94 @Override
95 public void accept(PrimitiveVisitor visitor) {
96 visitor.visit(this);
97 }
98
99}
Note: See TracBrowser for help on using the repository browser.