DYFIIndexerWedge.java

package gov.usgs.earthquake.dyfi;

import gov.usgs.earthquake.distribution.ConfigurationException;
import gov.usgs.earthquake.distribution.ExternalNotificationListener;
import gov.usgs.earthquake.product.Product;
import gov.usgs.util.Config;

import java.util.logging.Logger;

/**
 * Legacy interface to trigger pre-Indexer ShakeMap processing.
 */
@Deprecated
public class DYFIIndexerWedge extends ExternalNotificationListener {

	private static final Logger LOGGER = Logger
			.getLogger("gov.usgs.earthquake.dyfi.DYFIIndexerWedge");

	/** Property for baseDirectory */
	public static final String BASE_DIRECTORY_PROPERTY = "baseDirectory";
	private String baseDirectory = null;

	/** Constructor */
	public DYFIIndexerWedge() {
		getIncludeTypes().add("dyfi");
	}

	/**
	 * Builds the command to index the product. Just appends the relative
	 * product directory (from the DYFILegacyStorage) to the configured index
	 * command.
	 *
	 * @param product
	 *            the Product used to build the indexing command.
	 * @throws Exception if error occurs
	 */
	@Override
	public String getProductCommand(final Product product) throws Exception {
		StringBuffer pc = new StringBuffer(getCommand());

		pc.append(" ").append("--directory=").append(baseDirectory)
				.append(getStorage().getProductPath(product.getId()));

		return pc.toString();
	}

	@Override
	public void configure(Config config) throws Exception {
		super.configure(config);

		// Base directory
		baseDirectory = config.getProperty(BASE_DIRECTORY_PROPERTY);
		if (baseDirectory == null) {
			throw new ConfigurationException("[" + getName()
					+ "] 'baseDirectory' is a required configuration property");
		}
		LOGGER.config("[" + getName() + "] baseDirectory is '" + baseDirectory
				+ "'");
	}
}