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

Last change on this file since 13908 was 13908, checked in by Don-vip, 6 years ago

add IRelation.setMembers()

  • Property svn:eol-style set to native
File size: 2.2 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<RelationMemberData> {
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 @Override
44 public List<RelationMemberData> getMembers() {
45 return members;
46 }
47
48 @Override
49 public void setMembers(List<RelationMemberData> memberData) {
50 members = new ArrayList<>(memberData);
51 }
52
53 @Override
54 public int getMembersCount() {
55 return members.size();
56 }
57
58 @Override
59 public RelationMemberData getMember(int index) {
60 return members.get(index);
61 }
62
63 @Override
64 public long getMemberId(int idx) {
65 return getMember(idx).getMemberId();
66 }
67
68 @Override
69 public String getRole(int idx) {
70 return getMember(idx).getRole();
71 }
72
73 @Override
74 public OsmPrimitiveType getMemberType(int idx) {
75 return getMember(idx).getMemberType();
76 }
77
78 @Override
79 public RelationData makeCopy() {
80 return new RelationData(this);
81 }
82
83 @Override
84 public String toString() {
85 return super.toString() + " REL " + members;
86 }
87
88 @Override
89 public OsmPrimitiveType getType() {
90 return OsmPrimitiveType.RELATION;
91 }
92
93 @Override
94 public void accept(PrimitiveVisitor visitor) {
95 visitor.visit(this);
96 }
97
98 @Override
99 public BBox getBBox() {
100 throw new UnsupportedOperationException();
101 }
102}
Note: See TracBrowser for help on using the repository browser.