source: josm/trunk/src/org/openstreetmap/josm/data/osm/IRelationMember.java@ 13804

Last change on this file since 13804 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: 1.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import java.util.Arrays;
5
6/**
7 * IRelationMember captures the common functions of {@link RelationMember} and {@link RelationMemberData}.
8 * @param <P> the base type of OSM primitives
9 * @since 13677
10 */
11public interface IRelationMember<P extends IPrimitive> extends PrimitiveId {
12
13 /**
14 * Returns the role of this relation member.
15 * @return Role name or "". Never returns null
16 */
17 String getRole();
18
19 /**
20 * Determines if this relation member has a role.
21 * @return True if role is set
22 */
23 default boolean hasRole() {
24 return !"".equals(getRole());
25 }
26
27 /**
28 * Determines if this relation member's role is in the given list.
29 * @param roles The roles to look after
30 * @return True if role is in the given list
31 */
32 default boolean hasRole(String... roles) {
33 return Arrays.asList(roles).contains(getRole());
34 }
35
36 /**
37 * Determines if this relation member is a node.
38 * @return True if member is node
39 */
40 boolean isNode();
41
42 /**
43 * Determines if this relation member is a way.
44 * @return True if member is way
45 */
46 boolean isWay();
47
48 /**
49 * Determines if this relation member is a relation.
50 * @return True if member is relation
51 */
52 boolean isRelation();
53
54 /**
55 * Returns type of member for icon display.
56 * @return type of member for icon display
57 * @since 13766 (IRelationMember)
58 */
59 default OsmPrimitiveType getDisplayType() {
60 return getMember().getDisplayType();
61 }
62
63 /**
64 * Returns the relation member.
65 * @return Member. Returned value is never null.
66 * @since 13766 (IRelationMember)
67 */
68 P getMember();
69}
Note: See TracBrowser for help on using the repository browser.