SearchMethod.java

package gov.usgs.earthquake.indexer;

/**
 * Different types of searches that are supported.
 */
public enum SearchMethod {
	/** Summary for multiple events. */
	EVENTS_SUMMARY("getEventSummary"),

	/** Detail for one event. */
	EVENT_DETAIL("getEvent"),

	/** Summary for multiple products. */
	PRODUCTS_SUMMARY("getProductSummary"),

	/** Detail for one product. */
	PRODUCT_DETAIL("getProduct");

	private String xmlMethodName;

	private SearchMethod(final String xmlMethodName) {
		this.xmlMethodName = xmlMethodName;
	}

	/**
	 * @return The XML string used to represent this response type.
	 */
	public String getXmlMethodName() {
		return xmlMethodName;
	}

	/**
	 * Get the enumerated value for the given xml string.
	 * 
	 * @param xmlMethodName
	 *            the xml name.
	 * @return null if xmlMethodName is unknown.
	 */
	public static SearchMethod fromXmlMethodName(
			final String xmlMethodName) {
		if (xmlMethodName == null) {
			return null;
		}

		if (EVENTS_SUMMARY.getXmlMethodName().equals(xmlMethodName)) {
			return EVENTS_SUMMARY;
		} else if (EVENT_DETAIL.getXmlMethodName().equals(xmlMethodName)) {
			return EVENT_DETAIL;
		} else if (PRODUCTS_SUMMARY.getXmlMethodName().equals(xmlMethodName)) {
			return PRODUCTS_SUMMARY;
		} else if (PRODUCT_DETAIL.getXmlMethodName().equals(xmlMethodName)) {
			return PRODUCT_DETAIL;
		}

		return null;
	}
}