URLNotificationXMLConverter.java
- package gov.usgs.earthquake.distribution;
- import gov.usgs.util.XmlUtils;
- import java.io.InputStream;
- public class URLNotificationXMLConverter {
- /** Namespace for product XML */
- public static final String PRODUCT_XML_NAMESPACE = "http://earthquake.usgs.gov/distribution/product";
- /** static var for notification element */
- public static final String NOTIFICATION_ELEMENT = "notification";
- /** attribute for product id */
- public static final String ATTRIBUTE_PRODUCT_ID = "id";
- /** attribute for updated */
- public static final String ATTRIBUTE_PRODUCT_UPDATED = "updated";
- /** attribute for trackerURL */
- public static final String ATTRIBUTE_TRACKER_URL = "trackerURL";
- /** attribute for expires */
- public static final String ATTRIBUTE_EXPIRES = "expires";
- /** attribute for url */
- public static final String ATTRIBUTE_URL = "url";
- /**
- * Converts a URLNotification to XML
- *
- * @param notification
- * The URLNotification to be converted
- * @return an XML-formatted string
- */
- public static String toXML(final URLNotification notification) {
- StringBuffer buf = new StringBuffer();
- buf.append("<?xml version=\"1.0\"?>\n");
- // start element
- buf.append("<").append(NOTIFICATION_ELEMENT);
- buf.append(" xmlns=\"").append(
- PRODUCT_XML_NAMESPACE).append("\"");
- // add attributes
- buf.append(" ").append(ATTRIBUTE_PRODUCT_ID)
- .append("=\"").append(notification.getProductId().toString()).append(
- "\"");
- buf
- .append(" ")
- .append(ATTRIBUTE_PRODUCT_UPDATED)
- .append("=\"")
- .append(
- XmlUtils
- .formatDate(notification.getProductId().getUpdateTime()))
- .append("\"");
- buf.append(" ").append(ATTRIBUTE_TRACKER_URL)
- .append("=\"").append(notification.getTrackerURL().toString()).append(
- "\"");
- buf.append(" ").append(ATTRIBUTE_EXPIRES).append(
- "=\"").append(XmlUtils.formatDate(notification.getExpirationDate()))
- .append("\"");
- buf.append(" ").append(ATTRIBUTE_URL).append(
- "=\"").append(notification.getProductURL().toString()).append("\"");
- // end element
- buf.append("/>");
- return buf.toString();
- }
- /**
- * Parses an XML message into a URLNotification
- *
- * @param message
- * The convertee
- *
- * @return A parsed URL notification
- * @throws Exception If parse goes wrong
- */
- public static URLNotification parseXML(final InputStream message) throws Exception{
- URLNotificationParser parser = new URLNotificationParser();
- parser.parse(message);
- return parser.getNotification();
- }
- }