package org.openxdm.xcap.server.slee.resource.datasource;
import java.io.Serializable;
import org.openxdm.xcap.common.uri.DocumentSelector;
import org.w3c.dom.Document;
public final class DocumentUpdatedEvent implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* IMPORTANT: must sync with the event descriptor data!!!!
*/
public static final String EVENT_NAME = "DocumentUpdatedEvent";
public static final String EVENT_VENDOR = "org.openxdm";
public static final String EVENT_VERSION = "1.0";
private final String id;
private final DocumentSelector documentSelector;
private final String oldETag;
private final String newETag;
private final String documentAsString;
private final Document document;
public DocumentUpdatedEvent(DocumentSelector documentSelector,
String oldETag, String newETag, String documentAsString,
Document document) {
this.documentSelector = documentSelector;
this.oldETag = oldETag;
this.newETag = newETag;
this.documentAsString = documentAsString;
this.document = document;
// if doc was deleted add a non hex char to the old etag as event id
id = (newETag != null) ? newETag : oldETag + "g";
}
public Document getDocument() {
return document;
}
public String getDocumentAsString() {
return documentAsString;
}
public DocumentSelector getDocumentSelector() {
return documentSelector;
}
public String getNewETag() {
return newETag;
}
public String getOldETag() {
return oldETag;
}
public boolean equals(Object o) {
if (o != null && o.getClass() == this.getClass()) {
return ((DocumentUpdatedEvent)o).id.equals(id);
}
else {
return false;
}
}
public int hashCode() {
return id.hashCode();
}
}