//$Id$ package org.exist.cluster; import org.apache.log4j.Logger; import org.xmldb.api.base.Collection; import org.xmldb.api.modules.XMLResource; /** * Created by Francesco Mondora. * * @author Francesco Mondora aka Makkina * Date: Aug 30, 2004 * Time: 3:45:03 PM * Revision $Revision$ */ public class StoreClusterEvent extends ClusterEvent { static Logger log = Logger.getLogger( StoreClusterEvent.class ) ; private String content; private static final long serialVersionUID = 0L; public StoreClusterEvent(String content, String collectionName, String documentName) { super( documentName, collectionName ); this.content = content; } /** * Execute the current command. */ public void execute() throws ClusterException { try { Collection collection = getCollection(); XMLResource document = (XMLResource) collection.createResource(documentName, "XMLResource"); document.setContent(content); /** * Silent premature end of file */ //if(!ClusterChannel.hasToBePublished(String.valueOf(this.hashCode()))) // return; log.info("Storing document " + document.getId() + "..."); collection.storeResource(document); //todo: send an ACK to the master } catch (Exception e) { log.error(e); throw new ClusterException( e ); } } public String toString() { return "StoreClusterEvent: [content: "+ content + "] [collection:"+ collectionName+"] [documentname:"+documentName+"]"; } public int hashCode() { int e = documentName.hashCode(); e = e ^ content.hashCode(); e = e ^ collectionName.hashCode(); e = e ^ this.getClass().getName().hashCode(); return e; } }