[infinispan-commits] Infinispan SVN: r179 - in trunk/core/src/main/java/org/infinispan/commands: write and 1 other directory.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Mon Apr 27 15:35:39 EDT 2009


Author: manik.surtani at jboss.com
Date: 2009-04-27 15:35:39 -0400 (Mon, 27 Apr 2009)
New Revision: 179

Modified:
   trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
   trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
Log:
Clear command to notify

Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-04-27 17:22:25 UTC (rev 178)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-04-27 19:35:39 UTC (rev 179)
@@ -114,7 +114,7 @@
    }
 
    public ClearCommand buildClearCommand() {
-      return new ClearCommand();
+      return new ClearCommand(notifier);
    }
 
    public EvictCommand buildEvictCommand(Object key) {
@@ -190,6 +190,10 @@
             if (pc.getModifications() != null)
                for (ReplicableCommand nested : pc.getModifications()) initializeReplicableCommand(nested);
             break;
+         case ClearCommand.COMMAND_ID:
+            ClearCommand cc = (ClearCommand) c;
+            cc.init(notifier);
+            break;
          case ClusteredGetCommand.COMMAND_ID:
             ClusteredGetCommand clusteredGetCommand = (ClusteredGetCommand) c;
             clusteredGetCommand.initialize(dataContainer, cacheLoaderManager);

Modified: trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java	2009-04-27 17:22:25 UTC (rev 178)
+++ trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java	2009-04-27 19:35:39 UTC (rev 179)
@@ -25,6 +25,7 @@
 import org.infinispan.container.entries.CacheEntry;
 import org.infinispan.container.entries.MVCCEntry;
 import org.infinispan.context.InvocationContext;
+import org.infinispan.notifications.cachelistener.CacheNotifier;
 
 /**
  * @author Mircea.Markus at jboss.com
@@ -32,8 +33,20 @@
  */
 public class ClearCommand implements WriteCommand {
    private static final Object[] params = new Object[0];
-   public static final byte METHOD_ID = 17;
+   public static final byte COMMAND_ID = 17;
+   CacheNotifier notifier;
 
+   public ClearCommand() {
+   }
+
+   public ClearCommand(CacheNotifier notifier) {
+      this.notifier = notifier;
+   }
+
+   public void init(CacheNotifier notifier) {
+      this.notifier = notifier;
+   }
+
    public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
       return visitor.visitClearCommand(ctx, this);
    }
@@ -42,8 +55,11 @@
       for (CacheEntry e : ctx.getLookedUpEntries().values()) {
          if (e instanceof MVCCEntry) {
             MVCCEntry me = (MVCCEntry) e;
+            Object k = me.getKey(), v = me.getValue();
+            notifier.notifyCacheEntryRemoved(k, v, true, ctx);
             me.setRemoved(true);
             me.setValid(false);
+            notifier.notifyCacheEntryRemoved(k, null, false, ctx);
          }
       }
       return null;
@@ -54,11 +70,11 @@
    }
 
    public byte getCommandId() {
-      return METHOD_ID;
+      return COMMAND_ID;
    }
 
    public void setParameters(int commandId, Object[] parameters) {
-      if (commandId != METHOD_ID) throw new IllegalStateException("Invalid method id");
+      if (commandId != COMMAND_ID) throw new IllegalStateException("Invalid command id");
    }
 
    @Override




More information about the infinispan-commits mailing list