package org.hypergraphdb.event; import org.hypergraphdb.HGHandle; import org.hypergraphdb.HGReplaceRefusedException; /** * <p> * A <code>HGAtomReplaceRequestEvent</code> is triggered when an attempt is made to replace * the value of an existing atom within the HyperGraph, but before the replacement process proceeds. * This event gives a chance to * an application to cancel the replacement of the atom. A listener to this event may return * the <code>HGListener.Result.cancel</code> code which will prevent the change from happening. * On the other hand, if an application needs to perform some action as a result to an already * completed replacement, the application should then listen to the <code>HGAtomReplacedEvent</code>. * </p> * * <p> * A listener may also throw a {@link HGReplaceRefusedException} which will fail the current * transaction and must be caught at the application level. * </p> * * @author Borislav Iordanov */ public class HGAtomReplaceRequestEvent extends HGAtomEvent { private HGHandle type; private Object newValue; /** * <p>Construct a new <code>HGAtomReplaceRequestEvent</code> for the * given atom.</p> * * @param handle The <code>HGHandle</code> of the atom. */ public HGAtomReplaceRequestEvent(HGHandle handle, HGHandle type, Object newValue) { super(handle); this.type = type; this.newValue = newValue; } public Object getNewValue() { return newValue; } public void setNewValue(Object newValue) { this.newValue = newValue; } public HGHandle getType() { return type; } public void setType(HGHandle type) { this.type = type; } }