Package org.openstreetmap.osmosis.xml.common

Source Code of org.openstreetmap.osmosis.xml.common.XmlTaskManagerFactory

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

import org.openstreetmap.osmosis.core.OsmosisRuntimeException;
import org.openstreetmap.osmosis.core.pipeline.common.TaskConfiguration;
import org.openstreetmap.osmosis.core.pipeline.common.TaskManagerFactory;


/**
* Extends the basic task manager factory functionality with xml task specific common methods.
*
* @author Brett Henderson
*/
public abstract class XmlTaskManagerFactory extends TaskManagerFactory {
  private static final String ARG_COMPRESSION_METHOD = "compressionMethod";
  private static final String ARG_ENCODING_HACK = "encodingHack";
  private static final boolean DEFAULT_ENCODING_HACK = false;
 
 
  /**
   * Utility method for retrieving a CompressionMethod argument value from a
   * Map of task arguments.
   *
   * @param taskConfig
   *            Contains all information required to instantiate and configure
   *            the task.
   * @param fileName
   *            The file name used to determine the default compression
   *            method.
   * @return The value of the argument.
   */
  protected CompressionMethod getCompressionMethodArgument(
      TaskConfiguration taskConfig, String fileName) {
    CompressionMethod result;
   
    String rawValue = getStringArgument(taskConfig, ARG_COMPRESSION_METHOD, "auto").toLowerCase();
   
    if ("none".equals(rawValue)) {
      result = CompressionMethod.None;
    } else if ("gzip".equals(rawValue)) {
      result = CompressionMethod.GZip;
    } else if ("bzip2".equals(rawValue)) {
      result = CompressionMethod.BZip2;
    } else if ("auto".equals(rawValue)) {
      result = new CompressionMethodDeriver().deriveCompressionMethod(fileName);
    } else {
      throw new OsmosisRuntimeException(
        "Argument " + ARG_COMPRESSION_METHOD + " for task " + taskConfig.getId()
        + " must be one of none, gzip, bzip2 or auto.");
    }   
    return result;
  }
 
 
  /**
   * Utility method for retrieving the argument specifying whether to enable
   * the production file encoding hack to work around a bug in the current
   * production configuration.
   *
   * @param taskConfig
   *            Contains all information required to instantiate and configure
   *            the task.
   * @return The value of the argument.
   */
  protected boolean getProdEncodingHackArgument(
      TaskConfiguration taskConfig) {
    return getBooleanArgument(taskConfig, ARG_ENCODING_HACK, DEFAULT_ENCODING_HACK);
  }
}
TOP

Related Classes of org.openstreetmap.osmosis.xml.common.XmlTaskManagerFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.