1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 2002,2008 Oracle. All rights reserved. 5 * 6 * $Id: TestKeyCreator.java,v 12.6 2008/01/08 20:58:57 bostic Exp $ 7 */ 8 9package com.sleepycat.collections.test; 10 11import com.sleepycat.bind.RecordNumberBinding; 12import com.sleepycat.db.DatabaseEntry; 13import com.sleepycat.db.DatabaseException; 14import com.sleepycat.db.SecondaryDatabase; 15import com.sleepycat.db.SecondaryKeyCreator; 16 17/** 18 * Unused until secondaries are available. 19 * @author Mark Hayes 20 */ 21class TestKeyCreator implements SecondaryKeyCreator { 22 23 private boolean isRecNum; 24 25 TestKeyCreator(boolean isRecNum) { 26 27 this.isRecNum = isRecNum; 28 } 29 30 public boolean createSecondaryKey(SecondaryDatabase db, 31 DatabaseEntry primaryKeyData, 32 DatabaseEntry valueData, 33 DatabaseEntry indexKeyData) 34 throws DatabaseException { 35 36 if (valueData.getSize() == 0) { 37 return false; 38 } 39 if (valueData.getSize() != 1) { 40 throw new IllegalStateException(); 41 } 42 byte val = valueData.getData()[valueData.getOffset()]; 43 if (val == 0) { 44 return false; // fixed-len pad value 45 } 46 val -= 100; 47 if (isRecNum) { 48 RecordNumberBinding.recordNumberToEntry(val, indexKeyData); 49 } else { 50 indexKeyData.setData(new byte[] { val }, 0, 1); 51 } 52 return true; 53 } 54 55 public void clearIndexKey(DatabaseEntry valueData) { 56 57 throw new RuntimeException("not supported"); 58 } 59} 60