1 /*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 2002, 2014 Oracle and/or its affiliates. All rights reserved. 5 * 6 */ 7 8 package com.sleepycat.je.test; 9 10 import java.util.Set; 11 12 import com.sleepycat.je.DatabaseEntry; 13 import com.sleepycat.je.DatabaseException; 14 import com.sleepycat.je.SecondaryDatabase; 15 import com.sleepycat.je.SecondaryKeyCreator; 16 import com.sleepycat.je.SecondaryMultiKeyCreator; 17 import com.sleepycat.util.test.TxnTestCase; 18 19 /** 20 * Permutes a TxnTestCase over a boolean property for using multiple secondary 21 * keys. 22 */ 23 public abstract class MultiKeyTxnTestCase extends TxnTestCase { 24 25 boolean useMultiKey = false; 26 27 /** 28 * Wraps a single key creator to exercise the multi-key code for tests that 29 * only create a single secondary key. 30 */ 31 static class SimpleMultiKeyCreator 32 implements SecondaryMultiKeyCreator { 33 34 private SecondaryKeyCreator keyCreator; 35 SimpleMultiKeyCreator(SecondaryKeyCreator keyCreator)36 SimpleMultiKeyCreator(SecondaryKeyCreator keyCreator) { 37 this.keyCreator = keyCreator; 38 } 39 createSecondaryKeys(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, Set results)40 public void createSecondaryKeys(SecondaryDatabase secondary, 41 DatabaseEntry key, 42 DatabaseEntry data, 43 Set results) 44 throws DatabaseException { 45 46 DatabaseEntry result = new DatabaseEntry(); 47 if (keyCreator.createSecondaryKey(secondary, key, data, result)) { 48 results.add(result); 49 } 50 } 51 } 52 } 53