/* Copyright (c) 2011 GeoSolutions - http://www.geo-solutions.it/. All rights reserved.
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package it.geosolutions.geoserver.jms.impl.handlers;
import it.geosolutions.geoserver.jms.JMSEventHandler;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
import com.thoughtworks.xstream.XStream;
/**
* XML file handler:<br>
* This class can be used to handle small XML files using JDOM
*
* @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it
*
*/
public class DocumentFileHandler extends
JMSEventHandler<String, DocumentFile> {
public DocumentFileHandler(XStream xstream, Class clazz) {
super(xstream, clazz);
}
@Override
public boolean synchronize(DocumentFile event) throws Exception {
FileOutputStream fout = null;
try {
fout = new FileOutputStream(event.getPath());
xstream.toXML(event.getBody(), fout);
return true;
} catch (IOException e) {
if (LOGGER.isLoggable(java.util.logging.Level.SEVERE))
LOGGER.severe(e.getLocalizedMessage());
throw e;
} finally {
IOUtils.closeQuietly(fout);
}
}
@Override
public String serialize(DocumentFile o) throws Exception {
return xstream.toXML(o);
}
@Override
public DocumentFile deserialize(String o) throws Exception {
return (DocumentFile) xstream.fromXML(o);
}
}