Author: genman
Date: 2008-12-05 19:47:32 -0500 (Fri, 05 Dec 2008)
New Revision: 7260
Modified:
core/trunk/src/main/java/org/jboss/cache/commands/write/PutDataMapCommand.java
Log:
JBCACHE-1442 - Add "setData()" call
Modified: core/trunk/src/main/java/org/jboss/cache/commands/write/PutDataMapCommand.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/commands/write/PutDataMapCommand.java 2008-12-06
00:45:08 UTC (rev 7259)
+++
core/trunk/src/main/java/org/jboss/cache/commands/write/PutDataMapCommand.java 2008-12-06
00:47:32 UTC (rev 7260)
@@ -53,6 +53,9 @@
/* parameters*/
protected Map data;
+
+ /* true to erase existing data */
+ protected boolean erase;
public PutDataMapCommand(GlobalTransaction globalTransaction, Fqn fqn, Map data)
{
@@ -84,6 +87,10 @@
notifier.notifyNodeModified(fqn, true,
NodeModifiedEvent.ModificationType.PUT_MAP, existingData == null ? Collections.emptyMap()
: existingData, ctx);
}
+ if (erase)
+ {
+ nodeSPI.clearDataDirect();
+ }
nodeSPI.putAllDirect(data);
if (notifier.shouldNotifyOnNodeModified())
{
@@ -111,11 +118,11 @@
{
if (isVersioned())
{
- return VERSIONED_METHOD_ID;
+ return erase ? ERASE_VERSIONED_METHOD_ID : VERSIONED_METHOD_ID;
}
else
{
- return METHOD_ID;
+ return erase ? ERASE_METHOD_ID : METHOD_ID;
}
}
@@ -151,6 +158,7 @@
if (!super.equals(o)) return false;
PutDataMapCommand that = (PutDataMapCommand) o;
if (data != null ? !data.equals(that.data) : that.data != null) return false;
+ if (erase != that.erase) return false;
if (globalTransaction != null ? !globalTransaction.equals(that.globalTransaction) :
that.globalTransaction != null)
return false;
@@ -163,9 +171,27 @@
int result = super.hashCode();
result = 31 * result + (globalTransaction != null ? globalTransaction.hashCode() :
0);
result = 31 * result + (data != null ? data.hashCode() : 0);
+ if (erase)
+ result++;
return result;
}
+ /**
+ * Sets a flag indicating the node data should be erased.
+ */
+ public void setErase(boolean erase)
+ {
+ this.erase = erase;
+ }
+
+ /**
+ * Returns a flag indicating the node data should be erased.
+ */
+ public boolean isErase()
+ {
+ return erase;
+ }
+
@Override
public String toString()
{
@@ -174,6 +200,8 @@
", dataVersion=" + dataVersion +
", data=" + data +
", globalTransaction=" + globalTransaction +
+ ", erase=" + erase +
'}';
}
+
}
Show replies by date