/** * Create an IndexChanger * * @param irg the IndexRowGenerator for the index. * @param indexCID the conglomerate id for the index. * @param indexSCOCI the SCOCI for the idexes. * @param indexDCOCI the DCOCI for the idexes. * @param baseCC the ConglomerateController for the base table. * @param tc The TransactionController * @param lockMode The lock mode (granularity) to use * @param baseRowReadMap Map of columns read in. 1 based. * @param isolationLevel Isolation level to use. * @param activation Current activation * @exception StandardException Thrown on error */ public IndexChanger( IndexRowGenerator irg, long indexCID, StaticCompiledOpenConglomInfo indexSCOCI, DynamicCompiledOpenConglomInfo indexDCOCI, String indexName, ConglomerateController baseCC, TransactionController tc, int lockMode, FormatableBitSet baseRowReadMap, int isolationLevel, Activation activation) throws StandardException { this.irg = irg; this.indexCID = indexCID; this.indexSCOCI = indexSCOCI; this.indexDCOCI = indexDCOCI; this.baseCC = baseCC; this.tc = tc; this.lockMode = lockMode; this.baseRowReadMap = baseRowReadMap; this.rowHolderPassedIn = false; this.isolationLevel = isolationLevel; this.activation = activation; this.indexName = indexName; // activation will be null when called from DataDictionary if (activation != null && activation.getIndexConglomerateNumber() == indexCID) { ownIndexSC = false; } if (SanityManager.DEBUG) { SanityManager.ASSERT(tc != null, "TransactionController argument to constructor is null"); SanityManager.ASSERT(irg != null, "IndexRowGenerator argument to constructor is null"); } }