// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.data.osm;
public class RelationMemberData implements PrimitiveId {
private final String role;
private final long memberId;
private final OsmPrimitiveType memberType;
public RelationMemberData(String role, OsmPrimitiveType type, long id) {
this.role = role == null?"":role;
this.memberType = type;
this.memberId = id;
}
public RelationMemberData(String role, PrimitiveId primitive) {
this(role, primitive.getType(), primitive.getUniqueId());
}
public long getMemberId() {
return memberId;
}
public String getRole() {
return role;
}
public OsmPrimitiveType getMemberType() {
return memberType;
}
public boolean hasRole() {
return !"".equals(role);
}
@Override
public String toString() {
return memberType.getAPIName() + " " + memberId;
}
/**
* PrimitiveId implementation. Returns the same value as {@link #getMemberType()}
*/
public OsmPrimitiveType getType() {
return memberType;
}
/**
* PrimitiveId implementation. Returns the same value as {@link #getMemberId()()}
*/
public long getUniqueId() {
return memberId;
}
public boolean isNew() {
return memberId <= 0;
}
}