// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.graphview.core.data; /** * represents a group of OSM tags (e.g. all tags of a way). * TagGroups are expected to be immutable, so modifying the tags means creation of a new group. * This interface requires that keys are unique, which is guaranteed since OSM API 0.6. */ public interface TagGroup extends Iterable<Tag> { /** * returns the value for the given key or null if no tag in this group uses that key * @param key key whose value will be returned; != null */ String getValue(String key); /** * returns true if this tag group contains a tag with the given key * @param key key to check for; != null */ boolean containsKey(String key); /** * returns true if this tag group contains at least one tag with the given value * @param value value to check for; != null */ boolean containsValue(String value); /** * returns true if this tag group contains the given tag * @param tag tag to check for; != null */ boolean contains(Tag tag); /** * returns the number of tags in this group */ int size(); }