source: josm/trunk/src/org/openstreetmap/josm/data/osm/RelationMember.java@ 1930

Last change on this file since 1930 was 1930, checked in by jttt, 15 years ago

Replace RelationMember.role with RelationMember.getRole() and RelationMember.hasRole()

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1package org.openstreetmap.josm.data.osm;
2
3/**
4 * A linkage class that can be used by an relation to keep a list of
5 * members. Since membership may be qualified by a "role", a simple
6 * list is not sufficient.
7 *
8 * @author Frederik Ramm <frederik@remote.org>
9 */
10public class RelationMember {
11
12 public String role;
13 public OsmPrimitive member;
14
15 /**
16 *
17 * @return Role name or "". Never returns null
18 * @since 1930
19 */
20 public String getRole() {
21 if (role == null) {
22 return "";
23 } else {
24 return role;
25 }
26 }
27
28 /**
29 *
30 * @return True if role is set
31 * @since 1930
32 */
33 public boolean hasRole() {
34 return role != null && !"".equals(role);
35 }
36
37 /**
38 * Default constructor. Does nothing.
39 * @deprecated Use other constructors because RelationMember class will became immutable
40 * in the future
41 */
42 @Deprecated
43 public RelationMember() { }
44
45 public RelationMember(String role, OsmPrimitive member) {
46 this.role = role;
47 this.member = member;
48 }
49
50 /**
51 * Copy constructor.
52 * @param other relation member to be copied.
53 */
54 public RelationMember(RelationMember other) {
55 role = other.role;
56 member = other.member;
57 }
58
59 @Override public String toString() {
60 return '"' + role + "\"=" + member;
61 }
62
63 /**
64 * Replies true, if this relation member refers to the primitive
65 *
66 * @param primitive the primitive to check
67 * @return true, if this relation member refers to the primitive
68 */
69 public boolean refersTo(OsmPrimitive primitive) {
70 if (primitive == null) return false;
71 if (member == null) return false;
72 return member == primitive;
73 }
74
75 @Override
76 public int hashCode() {
77 final int prime = 31;
78 int result = 1;
79 result = prime * result + ((member == null) ? 0 : member.hashCode());
80 result = prime * result + ((role == null) ? 0 : role.hashCode());
81 return result;
82 }
83
84 @Override
85 public boolean equals(Object obj) {
86 if (this == obj)
87 return true;
88 if (obj == null)
89 return false;
90 if (getClass() != obj.getClass())
91 return false;
92 RelationMember other = (RelationMember) obj;
93 if (member == null) {
94 if (other.member != null)
95 return false;
96 } else if (!member.equals(other.member))
97 return false;
98 if (role == null) {
99 if (other.role != null)
100 return false;
101 } else if (!role.equals(other.role))
102 return false;
103 return true;
104 }
105}
Note: See TracBrowser for help on using the repository browser.