// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.xml.v0_6;
import org.openstreetmap.osmosis.core.pipeline.common.TaskConfiguration;
import org.openstreetmap.osmosis.core.pipeline.common.TaskManager;
import org.openstreetmap.osmosis.core.pipeline.v0_6.ChangeSinkManager;
import org.openstreetmap.osmosis.xml.common.XmlTaskManagerFactory;
/**
* The task manager factory for an {@link XmlChangeUploader}.
*
* @author Marcus Wolschon MArcus@Wolschon.biz
*/
public class XmlChangeUploaderFactory extends XmlTaskManagerFactory {
/**
* Argument-name for the username.
*/
private static final String ARG_USER_NAME = "user";
/**
* Argument-name for the password.
*/
private static final String ARG_PASSWORD = "password";
/**
* Argument-name for the baseurl.
*/
private static final String ARG_BASEURL = "server";
/**
* Argument-name for the comment for the changeset.
*/
private static final String ARG_COMMENT = "comment";
/**
* {@inheritDoc}
*/
@Override
protected final TaskManager createTaskManagerImpl(
final TaskConfiguration taskConfig) {
// Get the task arguments.
String userName = getStringArgument(
taskConfig,
ARG_USER_NAME
);
String password = getStringArgument(
taskConfig,
ARG_PASSWORD
);
String baseURL = getStringArgument(
taskConfig,
ARG_BASEURL,
null
);
String comment = getStringArgument(
taskConfig,
ARG_COMMENT,
""
);
// Build the task object.
XmlChangeUploader task = new XmlChangeUploader(
baseURL,
userName,
password,
comment);
return new ChangeSinkManager(taskConfig.getId(),
task, taskConfig.getPipeArgs());
}
}