package org.osmtools.api;
import java.util.Collection;
import java.util.List;
import org.osm.schema.Osm;
import org.osm.schema.OsmNode;
import org.osm.schema.OsmRelation;
import org.osm.schema.OsmWay;
import org.osmtools.oauth.OauthTokens;
public interface OsmOperations {
/**
* The following command returns:
* <ul>
* <li>All nodes that are inside a given bounding box and any relations that reference them.</li>
* <li>All ways that reference at least one node that is inside a given bounding box, any relations that reference
* them [the ways], and any nodes outside the bounding box that the ways may reference.</li>
* <li>All relations that reference one of the nodes, ways or relations included due to the above rules. (Does not
* apply recursively, see explanation below.)</li>
* </ul>
*
* @see <a
* href="http://wiki.openstreetmap.org/wiki/Api06#Retrieving_map_data_by_bounding_box:_GET_.2Fapi.2F0.6.2Fmap">OSM
* API Wiki</a>
*
* @param boundingBox
* @return
*/
Osm getBBox(BoundingBox boundingBox);
OsmNode getForNode(long nodeId);
OsmWay getForWay(long wayId);
List<OsmRelation> getForRelation(long relationId);
List<OsmWay> getForManyWays(Collection<Long> wayIds);
ChangesetOperations openChangeset(String comment, OauthTokens oauthTokens);
UserOperations userOperations(OauthTokens oauthTokens);
}