// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.replication.v0_6.impl; import java.io.File; import java.util.Properties; import org.openstreetmap.osmosis.core.util.PropertiesPersister; /** * Loads and exposes the extraction configuration properties. * * @author Brett Henderson */ public class IntervalDownloaderConfiguration { private static final String KEY_BASE_URL = "baseUrl"; private static final String KEY_CHANGE_FILE_BEGIN_FORMAT = "changeFileBeginFormat"; private static final String KEY_CHANGE_FILE_END_FORMAT = "changeFileEndFormat"; private static final String KEY_INTERVAL_LENGTH = "intervalLength"; private static final String KEY_MAX_DOWNLOAD_COUNT = "maxDownloadCount"; private Properties properties; /** * Creates a new instance. * * @param configFile * The configuration file to read from. */ public IntervalDownloaderConfiguration(File configFile) { properties = new PropertiesPersister(configFile).load(); } /** * Returns the URL that change files should be downloaded from. * * @return The download URL. */ public String getBaseUrl() { String baseUrl; baseUrl = properties.getProperty(KEY_BASE_URL); if (!baseUrl.substring(baseUrl.length() - 1).equals("/")) { baseUrl += "/"; } return baseUrl; } /** * Returns the begin time portion of the changeset filename. * * @return The format. */ public String getChangeFileBeginFormat() { return properties.getProperty(KEY_CHANGE_FILE_BEGIN_FORMAT); } /** * Returns the end time portion of the changeset filename. * * @return The format. */ public String getChangeFileEndFormat() { return properties.getProperty(KEY_CHANGE_FILE_END_FORMAT); } /** * Returns the duration of each changeset interval. * * @return The interval length in milliseconds. */ public int getIntervalLength() { return Integer.parseInt(properties.getProperty(KEY_INTERVAL_LENGTH)) * 1000; } /** * Returns the maximum number of files to download in a single invocation. * * @return The maximum download count. */ public int getMaxDownloadCount() { return Integer.parseInt(properties.getProperty(KEY_MAX_DOWNLOAD_COUNT)); } }