001    /**
002     * Created on 24-feb-2005
003     * Created by jh
004     */
005    package org.springframework.richclient.widget.editor.provider;
006    
007    public class DataProviderEvent
008    {
009    
010        /**
011         * Type of event: New, Update or Delete.
012         */
013        private final int eventType;
014    
015        /**
016         * The new entity: result of update event or created object of new event.
017         */
018        private final Object newEntity;
019    
020        /**
021         * The old entity: object that was deleted or previous value of update
022         * event.
023         */
024        private final Object oldEntity;
025    
026        /**
027         * New object created event. Should have a newEntity.
028         */
029        public static final int EVENT_TYPE_NEW = 1;
030    
031        /**
032         * Object updated event. Should have both: a newEntity and an oldEntity.
033         */
034        public static final int EVENT_TYPE_UPDATE = 2;
035    
036        /**
037         * Object deleted event. Should have an oldEntity.
038         */
039        public static final int EVENT_TYPE_DELETE = 3;
040    
041        /**
042         * Constructor. Maak een nieuw event aan met de correcte nieuwe en oude
043         * entiteit waarden.
044         * 
045         * @param eventType
046         *            Type van event.
047         * @param oldEntity
048         *            Oude waarde van de entiteit.
049         * @param newEntity
050         *            Nieuwe waarde van de entiteit.
051         */
052        public DataProviderEvent(final int eventType, Object oldEntity, Object newEntity)
053        {
054            this.eventType = eventType;
055            this.oldEntity = oldEntity;
056            this.newEntity = newEntity;
057        }
058    
059        public Object getNewEntity()
060        {
061            return this.newEntity;
062        }
063    
064        public Object getOldEntity()
065        {
066            return oldEntity;
067        }
068    
069        public int getEventType()
070        {
071            return this.eventType;
072        }
073    
074        public static final DataProviderEvent newEntityEvent(Object newEntity)
075        {
076            return new DataProviderEvent(EVENT_TYPE_NEW, null, newEntity);
077        }
078    
079        public static final DataProviderEvent updateEntityEvent(Object oldEntity, Object newEntity)
080        {
081            return new DataProviderEvent(EVENT_TYPE_UPDATE, oldEntity, newEntity);
082        }
083        
084        public static final DataProviderEvent deleteEntityEvent(Object oldEntity)
085        {
086            return new DataProviderEvent(EVENT_TYPE_DELETE, oldEntity, null);
087        }
088    }