/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.utils.sql.event;
import java.util.EventObject;
import java.util.Map;
/**
* Evenement de changement dans la base.
*
* @author $Author: blazart $
* @version $Revision: 1.5 $
*
*/
public class DbChangeEvent extends EventObject {
public static final int ADD_EVENT = 0;
public static final int MODIFY_EVENT = 1;
public static final int DELETE_EVENT = 2;
public static final int DUPLICATE_EVENT = 3;
public static final int FORCE_EVENT = 4;
private int eventType;
private java.util.Map primaryKey;
/**
* Constructor for the DbChangeEvent object
*
* @param source
* @param eventType
* @param key Map (column Name / value)
*
* @throws IllegalArgumentException TODO
*/
public DbChangeEvent(Object source, int eventType, Map key) {
super(source);
if (eventType < 0 || eventType > 4) {
throw new IllegalArgumentException();
}
this.eventType = eventType;
this.primaryKey = key;
}
/**
* Retourne le type de l'evenement.
*
* @return
*/
public int getEventType() {
return eventType;
}
/**
* Retourne la clef primaire de l'objet impacte par l'evenement.
*
* @return Map (column Name / value)
*/
public java.util.Map getPrimaryKey() {
return primaryKey;
}
/**
* DOCUMENT ME!
*
* @return
*/
public String toString() {
return "DbChangeEvent(" + typeToString(getEventType()) + "," + getPrimaryKey()
+ ")";
}
/**
* DOCUMENT ME!
*
* @param eventType
*
* @return
*/
private static final String typeToString(int eventType) {
switch (eventType) {
case DbChangeEvent.ADD_EVENT:
return "ADD_EVENT";
case DbChangeEvent.DUPLICATE_EVENT:
return "DUPLICATE_EVENT";
case DbChangeEvent.DELETE_EVENT:
return "DELETE_EVENT";
case DbChangeEvent.MODIFY_EVENT:
return "MODIFY_EVENT";
case DbChangeEvent.FORCE_EVENT:
return "FORCE_EVENT";
default:
return "UNKNOWN";
}
}
}