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

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

package org.osmtools.api;

import java.math.BigDecimal;

import org.osm.schema.ObjectFactory;
import org.osm.schema.Osm;
import org.osm.schema.OsmChangeset;
import org.osm.schema.OsmTag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

@Service
public class OsmSchemaService {

	private ObjectFactory of = new ObjectFactory();
	private String applicationName;

	@Autowired
	public OsmSchemaService(@Value("${applicationName}") String applicationName) {
		this.applicationName = applicationName;
	}

	public Osm createOsmNode() {
		Osm osm = of.createOsm();
		osm.setVersion(BigDecimal.valueOf(0.6));
		osm.setGenerator(applicationName);
		return osm;
	}

	public Osm createChangeset(String comment) {
		Osm osm = createOsmNode();
		OsmChangeset changeset = of.createOsmChangeset();
		osm.getChangeset().add(changeset);
		addTagValue("comment", comment, changeset);
		if (StringUtils.hasText(applicationName)) {
			addTagValue("created_by", applicationName, changeset);
		}

		return osm;
	}

	private void addTagValue(String key, String value, OsmChangeset changeset) {
		OsmTag tag = of.createOsmTag();
		tag.setK(key);
		tag.setV(value);
		changeset.getTag().add(tag);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy