Index: topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvent.java diff -u topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvent.java:1.1 topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvent.java:1.2 --- topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvent.java:1.1 Fri Jan 6 12:15:20 2006 +++ topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvent.java Mon Oct 9 14:20:18 2006 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin Copyright Code Lutin * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2006/01/06 12:15:20 $ par : $Author: bpoussin $ + * Mise a jour: $Date: 2006/10/09 14:20:18 $ par : $Author: bpoussin $ */ package org.codelutin.topia.event; @@ -34,6 +34,7 @@ import java.util.EventObject; import org.apache.commons.lang.ObjectUtils; +import org.codelutin.topia.TopiaContext; /** * Permet de savoir que l'entite ayant l'id passé en parametre du constructeur @@ -50,9 +51,13 @@ */ public class TopiaTransactionEvent extends EventObject { // TopiaEntityEvent + public enum TYPE {CREATE, UPDATE, DELETE}; + /** */ private static final long serialVersionUID = 1L; + protected TYPE type; + protected long date = 0; protected Class entityClass; @@ -63,13 +68,40 @@ * @param source l'objet d'ou provient l'event * @param entity l'entity sur lequel porte l'event */ - public TopiaTransactionEvent(Object source, Class entityClass, Object id) { + protected TopiaTransactionEvent(TopiaContext source, TYPE type, Class entityClass, Object id) { super(source); this.entityClass = entityClass; + this.type = type; this.id = id; date = System.currentTimeMillis(); } + + static public TopiaTransactionEvent create( + TopiaContext source, Class entityClass, Object id) { + TopiaTransactionEvent result = new TopiaTransactionEvent( + source, TYPE.CREATE, entityClass, id); + return result; + } + + static public TopiaTransactionEvent update( + TopiaContext source, Class entityClass, Object id) { + TopiaTransactionEvent result = new TopiaTransactionEvent( + source, TYPE.UPDATE, entityClass, id); + return result; + } + + static public TopiaTransactionEvent delete( + TopiaContext source, Class entityClass, Object id) { + TopiaTransactionEvent result = new TopiaTransactionEvent( + source, TYPE.DELETE, entityClass, id); + return result; + } + public TopiaContext getTopiaContext() { + TopiaContext result = (TopiaContext)getSource(); + return result; + } + /** * @return Returns the entityClass. */ @@ -77,6 +109,14 @@ return this.entityClass; } + + /** + * @return the type + */ + public TYPE getType() { + return this.type; + } + /** * L'identifiant ou null si on a pas pu avoir d'identifiant, cela arrive par * exemple pour un create ou l'objet peu ne pas encore avoir d'idenfiant @@ -93,7 +133,7 @@ public Date getCreationDate() { return new Date(date); } - + /* * (non-Javadoc) * Index: topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvents.java diff -u topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvents.java:1.1 topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvents.java:1.2 --- topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvents.java:1.1 Thu Feb 23 14:20:36 2006 +++ topia2/src/java/org/codelutin/topia/event/TopiaTransactionEvents.java Mon Oct 9 14:20:18 2006 @@ -23,15 +23,16 @@ * Created: 20 févr. 2006 16:13:16 * * @author poussin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Last update: $Date: 2006/02/23 14:20:36 $ + * Last update: $Date: 2006/10/09 14:20:18 $ * by : $Author: bpoussin $ */ package org.codelutin.topia.event; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.EventObject; import java.util.List; @@ -55,11 +56,14 @@ public TopiaTransactionEvents(Object source, List events) { super(source); this.events = new ArrayList(events); + Collections.reverse(this.events); date = System.currentTimeMillis(); } /** + * Last modified is first in list + * * @return Returns the events. */ public List getEvents() {