001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm; 003 004/** 005 * IRelation captures the common functions of {@link Relation} and {@link RelationData}. 006 * @since 4098 007 */ 008public interface IRelation extends IPrimitive { 009 010 /** 011 * Returns the number of members. 012 * @return number of members 013 */ 014 int getMembersCount(); 015 016 /** 017 * Returns id of the member at given index. 018 * @param idx member index 019 * @return id of the member at given index 020 */ 021 long getMemberId(int idx); 022 023 /** 024 * Returns role of the member at given index. 025 * @param idx member index 026 * @return role of the member at given index 027 */ 028 String getRole(int idx); 029 030 /** 031 * Returns type of the member at given index. 032 * @param idx member index 033 * @return type of the member at given index 034 */ 035 OsmPrimitiveType getMemberType(int idx); 036}