[infinispan-commits] Infinispan SVN: r1134 - trunk/core/src/main/java/org/infinispan/commands/write.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Nov 11 08:24:43 EST 2009
Author: manik.surtani at jboss.com
Date: 2009-11-11 08:24:43 -0500 (Wed, 11 Nov 2009)
New Revision: 1134
Added:
trunk/core/src/main/java/org/infinispan/commands/write/AbstractDataWriteCommand.java
Modified:
trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
trunk/core/src/main/java/org/infinispan/commands/write/PutKeyValueCommand.java
trunk/core/src/main/java/org/infinispan/commands/write/PutMapCommand.java
trunk/core/src/main/java/org/infinispan/commands/write/RemoveCommand.java
trunk/core/src/main/java/org/infinispan/commands/write/ReplaceCommand.java
trunk/core/src/main/java/org/infinispan/commands/write/WriteCommand.java
Log:
Introduced a getAffectedKeys() method on WriteCommand and an abstract superclass for common impls of this method
Added: trunk/core/src/main/java/org/infinispan/commands/write/AbstractDataWriteCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/AbstractDataWriteCommand.java (rev 0)
+++ trunk/core/src/main/java/org/infinispan/commands/write/AbstractDataWriteCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -0,0 +1,26 @@
+package org.infinispan.commands.write;
+
+import org.infinispan.commands.read.AbstractDataCommand;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Stuff common to WriteCommands
+ *
+ * @author Manik Surtani
+ * @since 4.0
+ */
+public abstract class AbstractDataWriteCommand extends AbstractDataCommand implements DataWriteCommand {
+
+ protected AbstractDataWriteCommand() {
+ }
+
+ protected AbstractDataWriteCommand(Object key) {
+ super(key);
+ }
+
+ public Collection<Object> getAffectedKeys() {
+ return Collections.singleton(key);
+ }
+}
Property changes on: trunk/core/src/main/java/org/infinispan/commands/write/AbstractDataWriteCommand.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -30,6 +30,9 @@
import org.infinispan.marshall.exts.ReplicableCommandExternalizer;
import org.infinispan.notifications.cachelistener.CacheNotifier;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* @author Mircea.Markus at jboss.com
* @since 4.0
@@ -93,4 +96,8 @@
public boolean isConditional() {
return false;
}
+
+ public Collection<Object> getAffectedKeys() {
+ return Collections.emptySet();
+ }
}
Modified: trunk/core/src/main/java/org/infinispan/commands/write/PutKeyValueCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/PutKeyValueCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/PutKeyValueCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -24,7 +24,6 @@
import org.infinispan.atomic.Delta;
import org.infinispan.atomic.DeltaAware;
import org.infinispan.commands.Visitor;
-import org.infinispan.commands.read.AbstractDataCommand;
import org.infinispan.container.entries.MVCCEntry;
import org.infinispan.context.InvocationContext;
import org.infinispan.marshall.Ids;
@@ -39,7 +38,7 @@
* @since 4.0
*/
@Marshallable(externalizer = ReplicableCommandExternalizer.class, id = Ids.PUT_KEY_VALUE_COMMAND)
-public class PutKeyValueCommand extends AbstractDataCommand implements DataWriteCommand {
+public class PutKeyValueCommand extends AbstractDataWriteCommand {
public static final byte COMMAND_ID = 8;
Object value;
Modified: trunk/core/src/main/java/org/infinispan/commands/write/PutMapCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/PutMapCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/PutMapCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -30,6 +30,7 @@
import org.infinispan.notifications.cachelistener.CacheNotifier;
import java.util.Map;
+import java.util.Collection;
import java.util.Map.Entry;
/**
@@ -139,6 +140,10 @@
return false;
}
+ public Collection<Object> getAffectedKeys() {
+ return map.keySet();
+ }
+
public long getLifespanMillis() {
return lifespanMillis;
}
Modified: trunk/core/src/main/java/org/infinispan/commands/write/RemoveCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/RemoveCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/RemoveCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -22,7 +22,6 @@
package org.infinispan.commands.write;
import org.infinispan.commands.Visitor;
-import org.infinispan.commands.read.AbstractDataCommand;
import org.infinispan.container.entries.MVCCEntry;
import org.infinispan.context.InvocationContext;
import org.infinispan.marshall.Ids;
@@ -39,7 +38,7 @@
* @since 4.0
*/
@Marshallable(externalizer = ReplicableCommandExternalizer.class, id = Ids.REMOVE_COMMAND)
-public class RemoveCommand extends AbstractDataCommand implements DataWriteCommand {
+public class RemoveCommand extends AbstractDataWriteCommand {
private static final Log log = LogFactory.getLog(RemoveCommand.class);
private static final boolean trace = log.isTraceEnabled();
public static final byte COMMAND_ID = 10;
Modified: trunk/core/src/main/java/org/infinispan/commands/write/ReplaceCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/ReplaceCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/ReplaceCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -22,7 +22,6 @@
package org.infinispan.commands.write;
import org.infinispan.commands.Visitor;
-import org.infinispan.commands.read.AbstractDataCommand;
import org.infinispan.container.entries.MVCCEntry;
import org.infinispan.context.InvocationContext;
import org.infinispan.marshall.Ids;
@@ -35,7 +34,7 @@
* @since 4.0
*/
@Marshallable(externalizer = ReplicableCommandExternalizer.class, id = Ids.REPLACE_COMMAND)
-public class ReplaceCommand extends AbstractDataCommand implements DataWriteCommand {
+public class ReplaceCommand extends AbstractDataWriteCommand {
public static final byte COMMAND_ID = 11;
Object oldValue;
Modified: trunk/core/src/main/java/org/infinispan/commands/write/WriteCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/WriteCommand.java 2009-11-11 12:33:40 UTC (rev 1133)
+++ trunk/core/src/main/java/org/infinispan/commands/write/WriteCommand.java 2009-11-11 13:24:43 UTC (rev 1134)
@@ -2,6 +2,8 @@
import org.infinispan.commands.VisitableCommand;
+import java.util.Collection;
+
/**
* A command that modifies the cache in some way
*
@@ -26,4 +28,11 @@
* @return true if the command is conditional, false otherwise
*/
boolean isConditional();
+
+ /**
+ *
+ * @return a collection of keys affected by this write command. Some commands - such as ClearCommand - may return
+ * an empty collection for this method.
+ */
+ Collection<Object> getAffectedKeys();
}
More information about the infinispan-commits
mailing list