source: josm/trunk/src/org/openstreetmap/josm/data/osm/RelationMemberData.java@ 9970

Last change on this file since 9970 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
  • Property svn:mime-type set to text/x-java
File size: 2.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import java.io.Serializable;
5import java.util.Objects;
6
7public class RelationMemberData implements PrimitiveId, Serializable {
8
9 private static final long serialVersionUID = 381392198209333319L;
10 private final String role;
11 private final long memberId;
12 private final OsmPrimitiveType memberType;
13
14 public RelationMemberData(String role, OsmPrimitiveType type, long id) {
15 this.role = role == null ? "" : role;
16 this.memberType = type;
17 this.memberId = id;
18 }
19
20 public RelationMemberData(String role, PrimitiveId primitive) {
21 this(role, primitive.getType(), primitive.getUniqueId());
22 }
23
24 public long getMemberId() {
25 return memberId;
26 }
27
28 public String getRole() {
29 return role;
30 }
31
32 public OsmPrimitiveType getMemberType() {
33 return memberType;
34 }
35
36 public boolean hasRole() {
37 return !"".equals(role);
38 }
39
40 @Override
41 public String toString() {
42 return (memberType != null ? memberType.getAPIName() : "undefined") + ' ' + memberId;
43 }
44
45 /**
46 * PrimitiveId implementation. Returns the same value as {@link #getMemberType()}
47 */
48 @Override
49 public OsmPrimitiveType getType() {
50 return memberType;
51 }
52
53 /**
54 * PrimitiveId implementation. Returns the same value as {@link #getMemberId()}
55 */
56 @Override
57 public long getUniqueId() {
58 return memberId;
59 }
60
61 @Override
62 public boolean isNew() {
63 return memberId <= 0;
64 }
65
66 @Override
67 public int hashCode() {
68 return Objects.hash(role, memberId, memberType);
69 }
70
71 @Override
72 public boolean equals(Object obj) {
73 if (this == obj) return true;
74 if (obj == null || getClass() != obj.getClass()) return false;
75 RelationMemberData that = (RelationMemberData) obj;
76 return memberId == that.memberId &&
77 Objects.equals(role, that.role) &&
78 memberType == that.memberType;
79 }
80}
Note: See TracBrowser for help on using the repository browser.