Berkeley DB
version 5.3.28

com.sleepycat.bind.tuple
Class TupleTupleMarshalledKeyCreator<E extends MarshalledTupleEntry & MarshalledTupleKeyEntity>

java.lang.Object
  extended by com.sleepycat.bind.tuple.TupleBase<E>
      extended by com.sleepycat.bind.tuple.TupleTupleKeyCreator<E>
          extended by com.sleepycat.bind.tuple.TupleTupleMarshalledKeyCreator<E>
All Implemented Interfaces:
ForeignKeyNullifier, SecondaryKeyCreator

public class TupleTupleMarshalledKeyCreator<E extends MarshalledTupleEntry & MarshalledTupleKeyEntity>
extends TupleTupleKeyCreator<E>

A concrete key creator that works in conjunction with a TupleTupleMarshalledBinding. This key creator works by calling the methods of the MarshalledTupleKeyEntity interface to create and clear the index key.

Note that a marshalled tuple key creator is somewhat less efficient than a non-marshalled key tuple creator because more conversions are needed. A marshalled key creator must convert the entry to an object in order to create the key, while an unmarshalled key creator does not.


Constructor Summary
TupleTupleMarshalledKeyCreator(TupleTupleMarshalledBinding<E> binding, String keyName)
          Creates a tuple-tuple marshalled key creator.
 
Method Summary
 boolean createSecondaryKey(TupleInput primaryKeyInput, TupleInput dataInput, TupleOutput indexKeyOutput)
          Creates the index key from primary key tuple and data tuple.
 boolean nullifyForeignKey(TupleInput dataInput, TupleOutput dataOutput)
          Clears the index key in the tuple data entry.
 
Methods inherited from class com.sleepycat.bind.tuple.TupleTupleKeyCreator
createSecondaryKey, nullifyForeignKey
 
Methods inherited from class com.sleepycat.bind.tuple.TupleBase
entryToInput, getTupleBufferSize, getTupleOutput, inputToEntry, newOutput, newOutput, outputToEntry, setTupleBufferSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TupleTupleMarshalledKeyCreator

public TupleTupleMarshalledKeyCreator(TupleTupleMarshalledBinding<E> binding,
                                      String keyName)
Creates a tuple-tuple marshalled key creator.

Parameters:
binding - is the binding used for the tuple-tuple entity.
keyName - is the key name passed to the MarshalledTupleKeyEntity.marshalSecondaryKey(java.lang.String, com.sleepycat.bind.tuple.TupleOutput) method to identify the index key.
Method Detail

createSecondaryKey

public boolean createSecondaryKey(TupleInput primaryKeyInput,
                                  TupleInput dataInput,
                                  TupleOutput indexKeyOutput)
Description copied from class: TupleTupleKeyCreator
Creates the index key from primary key tuple and data tuple.

Specified by:
createSecondaryKey in class TupleTupleKeyCreator<E extends MarshalledTupleEntry & MarshalledTupleKeyEntity>
Parameters:
primaryKeyInput - is the TupleInput for the primary key entry.
dataInput - is the TupleInput for the data entry.
indexKeyOutput - is the destination index key tuple.
Returns:
true if a key was created, or false to indicate that the key is not present.

nullifyForeignKey

public boolean nullifyForeignKey(TupleInput dataInput,
                                 TupleOutput dataOutput)
Description copied from class: TupleTupleKeyCreator
Clears the index key in the tuple data entry. The dataInput should be read and then written to the dataOutput, clearing the index key in the process.

The secondary key should be output or removed by this method such that TupleTupleKeyCreator.createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry) will return false. Other fields in the data object should remain unchanged.

Overrides:
nullifyForeignKey in class TupleTupleKeyCreator<E extends MarshalledTupleEntry & MarshalledTupleKeyEntity>
Parameters:
dataInput - is the TupleInput for the data entry.
dataOutput - is the destination TupleOutput.
Returns:
true if the key was cleared, or false to indicate that the key is not present and no change is necessary.

Berkeley DB
version 5.3.28

Copyright (c) 1996, 2013 Oracle and/or its affiliates. All rights reserved.