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

org.openstreetmap.osmosis.xml.common.XmlTimestampFormat Maven / Gradle / Ivy

// This software is released into the Public Domain.  See copying.txt for details.
package org.openstreetmap.osmosis.xml.common;

import java.util.Date;

import org.openstreetmap.osmosis.core.domain.common.TimestampFormat;
import org.openstreetmap.osmosis.core.time.DateFormatter;
import org.openstreetmap.osmosis.core.time.DateParser;


/**
 * A timestamp format implementation for dates read and stored from osm xml
 * files.
 * 
 * @author Brett Henderson
 */
public class XmlTimestampFormat extends TimestampFormat {
	
	private ThreadLocal dateFormatterStore;
	private ThreadLocal dateParserStore;
	
	
	/**
	 * Creates a new instance.
	 */
	public XmlTimestampFormat() {
		dateFormatterStore = new ThreadLocal();
		dateParserStore = new ThreadLocal();
	}
	
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public String formatTimestamp(Date timestamp) {
		DateFormatter dateFormatter;
		
		dateFormatter = dateFormatterStore.get();
		if (dateFormatter == null) {
			dateFormatter = new DateFormatter();
			dateFormatterStore.set(dateFormatter);
		}
		
		return dateFormatter.format(timestamp);
	}
	
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public Date parseTimestamp(String timestamp) {
		DateParser dateParser;
		
		dateParser = dateParserStore.get();
		if (dateParser == null) {
			dateParser = new DateParser();
			dateParserStore.set(dateParser);
		}
		
		return dateParser.parse(timestamp);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy