|
|||||||||||||||||||
Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
NodeModifiedEvent.java | - | - | - | - |
|
1 | package org.jboss.cache.notifications.event; | |
2 | ||
3 | import java.util.Map; | |
4 | ||
5 | /** | |
6 | * This event is passed in to any method annotated with {@link org.jboss.cache.notifications.annotation.NodeModified} | |
7 | * | |
8 | * @author <a href="mailto:manik@jboss.org">Manik Surtani</a> | |
9 | * @since 2.0.0 | |
10 | */ | |
11 | public interface NodeModifiedEvent extends NodeEvent | |
12 | { | |
13 | /** | |
14 | * Different cache modification types. | |
15 | */ | |
16 | enum ModificationType | |
17 | { | |
18 | PUT_DATA, REMOVE_DATA, PUT_MAP | |
19 | } | |
20 | ||
21 | /** | |
22 | * @return an instance of the {@link org.jboss.cache.notifications.event.NodeModifiedEvent.ModificationType} enumeration. | |
23 | */ | |
24 | ModificationType getModificationType(); | |
25 | ||
26 | /** | |
27 | * When called with <tt>isPre() == true</tt>, this is the initial state of the {@link org.jboss.cache.Node} | |
28 | * before modification. | |
29 | * <p/> | |
30 | * When called with <tt>isPre() == false</tt>, this depends on the value of <tt>getModificationType()</tt>: | |
31 | * <ul> | |
32 | * <li><b>{@link ModificationType#PUT_DATA}</b>: Map contains the single key/value pair that was added or modified.</li> | |
33 | * <li><b>{@link ModificationType#REMOVE_DATA}</b>: Map contains the key/value pairs that were removed.</li> | |
34 | * <li><b>{@link ModificationType#PUT_MAP}</b>: Map contains the new state of the {@link org.jboss.cache.Node} following modification. This map includes modified key/value | |
35 | * pairs as well as any that were not affected.</li> | |
36 | * </ul> | |
37 | * <p/> | |
38 | * Implementations interested in seeing the difference in the node data in the {@link ModificationType#PUT_MAP} case | |
39 | * can cache the value of <tt>getData()</tt> map passed when <tt>isPre() == true</tt>, and then when the | |
40 | * <tt>isPre() == false</tt> callback is received, pass the cached map and the new result of <tt>getData()</tt> to | |
41 | * {@link org.jboss.cache.util.Util#diffNodeData(java.util.Map,java.util.Map)} | |
42 | * | |
43 | * @return Unmodifiable {@link java.util.Map}; will not be <code>null</code>. See description above. | |
44 | */ | |
45 | Map getData(); | |
46 | } |
|