com.bigdata.sparse
Class AtomicRowDelete

java.lang.Object
  extended by com.bigdata.btree.proc.AbstractIndexProcedure
      extended by com.bigdata.sparse.AbstractAtomicRowReadOrWrite
          extended by com.bigdata.sparse.AtomicRowDelete
All Implemented Interfaces:
IIndexProcedure, ISimpleIndexProcedure, IRowStoreConstants, Externalizable, Serializable

public class AtomicRowDelete
extends AbstractAtomicRowReadOrWrite

Atomic delete of a logical row. All property values written will have the same timestamp. An atomic read is performed as part of the procedure so that the caller may obtain a consistent view of the post-update state of the logical row. The server-assigned timestamp written may be obtained from the returned ITPS object.

Version:
$Id: AtomicRowDelete.java 2265 2009-10-26 12:51:06Z thompsonbry $
Author:
Bryan Thompson
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.bigdata.sparse.AbstractAtomicRowReadOrWrite
DEBUG, filter, fromTime, INFO, log, primaryKey, schema, toTime
 
Fields inherited from interface com.bigdata.sparse.IRowStoreConstants
AUTO_TIMESTAMP, AUTO_TIMESTAMP_UNIQUE, CURRENT_ROW, MAX_TIMESTAMP, MIN_TIMESTAMP
 
Constructor Summary
AtomicRowDelete()
          De-serialization ctor.
AtomicRowDelete(Schema schema, Object primaryKey, long fromTime, long toTime, long writeTime, INameFilter filter)
          Constructor for an atomic read+delete operation.
 
Method Summary
 TPS apply(IIndex ndx)
          An atomic read of the matching properties is performed and those properties are then deleted atomically.
 boolean isReadOnly()
          Return true iff the procedure asserts that it will not write on the index.
 void readExternal(ObjectInput in)
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class com.bigdata.sparse.AbstractAtomicRowReadOrWrite
atomicRead, atomicRead, getCurrentValue
 
Methods inherited from class com.bigdata.btree.proc.AbstractIndexProcedure
getKeyBuilder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AtomicRowDelete

public AtomicRowDelete()
De-serialization ctor.


AtomicRowDelete

public AtomicRowDelete(Schema schema,
                       Object primaryKey,
                       long fromTime,
                       long toTime,
                       long writeTime,
                       INameFilter filter)
Constructor for an atomic read+delete operation.

Parameters:
schema - The schema governing the property set.
primaryKey - The primary key for the logical row.
writeTime - The timestamp to be assigned to the property values by an atomic write -or- IRowStoreConstants.AUTO_TIMESTAMP if a timestamp will be assigned by the server -or- IRowStoreConstants.AUTO_TIMESTAMP_UNIQUE if a unique timestamp will be assigned by the server.
filter - An optional filter used to restrict the property values that will be returned.
Method Detail

isReadOnly

public final boolean isReadOnly()
Description copied from interface: IIndexProcedure
Return true iff the procedure asserts that it will not write on the index. When true, the procedure may be run against a view of the index that is read-only or which allows concurrent processes to read on the same index object. When false the procedure will be run against a mutable view of the index (assuming that the procedure is executed in a context that has access to a mutable index view).


apply

public TPS apply(IIndex ndx)
An atomic read of the matching properties is performed and those properties are then deleted atomically.

Parameters:
ndx - The index.
Returns:
The matching properties as read before they were deleted.

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class AbstractAtomicRowReadOrWrite
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Overrides:
writeExternal in class AbstractAtomicRowReadOrWrite
Throws:
IOException


Copyright © 2006-2009 SYSTAP, LLC. All Rights Reserved.