[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