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

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

API alignment between Relation/RelationData and RelationMember/RelationMemberData: update of IRelation/IRelationMember interfaces

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