All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osmtools.api.OsmApiBinding Maven / Gradle / Ivy

package org.osmtools.api;

import java.util.ArrayList;
import java.util.List;

import org.osm.schema.Osm;
import org.osmtools.oauth.OauthCredentials;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter;
import org.springframework.social.oauth1.AbstractOAuth1ApiBinding;

public abstract class OsmApiBinding extends AbstractOAuth1ApiBinding {

	protected String osmApiBaseUrl;

	public OsmApiBinding(String osmApiBaseUrl, OauthCredentials oauthCredentials) {
		super(oauthCredentials.getConsumerKey(), oauthCredentials.getConsumerSecret(), oauthCredentials
				.getAccessToken(), oauthCredentials.getAccessTokenSecret());
		this.osmApiBaseUrl = osmApiBaseUrl;
	}

	@Override
	protected List> getMessageConverters() {
		List> messageConverters = new ArrayList>();
		messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
		messageConverters.add(new StringHttpMessageConverter());
		return messageConverters;
	}

	protected long putForId(String url, Osm osm) {
		HttpEntity entity = new HttpEntity(osm);

		ResponseEntity response = getRestTemplate().exchange(url, HttpMethod.PUT, entity, String.class);
		if (response.getStatusCode() == HttpStatus.OK) {
			return Long.parseLong(response.getBody());
		}
		else {
			throw new OsmApiException(response.getStatusCode().getReasonPhrase());
		}
	}
	
	protected void deleteForId(String url) {
		getRestTemplate().delete(url);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy