public void createGelIterator( GenKbAuthorization Authorization,
		GenKbGelIteratorBuff Buff )
	{
		GenKbGelInstructionPKey pkey = schema.getFactoryGelInstruction().newPKey();

		pkey.setClassCode( Buff.getClassCode() );

		pkey.setRequiredCartridgeId( Buff.getRequiredCartridgeId() );
		pkey.setRequiredGelInstId( Buff.getRequiredGelInstId() );

		GenKbGelIteratorByBeforeIdxKey keyBeforeIdx = schema.getFactoryGelIterator().newBeforeIdxKey();
		keyBeforeIdx.setOptionalExpandBefore( Buff.getOptionalExpandBefore() );

		GenKbGelIteratorByFirstIdxKey keyFirstIdx = schema.getFactoryGelIterator().newFirstIdxKey();
		keyFirstIdx.setOptionalExpandFirst( Buff.getOptionalExpandFirst() );

		GenKbGelIteratorByEachIdxKey keyEachIdx = schema.getFactoryGelIterator().newEachIdxKey();
		keyEachIdx.setRequiredExpandEach( Buff.getRequiredExpandEach() );

		GenKbGelIteratorByLastIdxKey keyLastIdx = schema.getFactoryGelIterator().newLastIdxKey();
		keyLastIdx.setOptionalExpandLast( Buff.getOptionalExpandLast() );

		GenKbGelIteratorByLoneIdxKey keyLoneIdx = schema.getFactoryGelIterator().newLoneIdxKey();
		keyLoneIdx.setOptionalExpandLone( Buff.getOptionalExpandLone() );

		GenKbGelIteratorByEmptyIdxKey keyEmptyIdx = schema.getFactoryGelIterator().newEmptyIdxKey();
		keyEmptyIdx.setOptionalExpandEmpty( Buff.getOptionalExpandEmpty() );

		// Validate unique indexes

		if( dictByPKey.containsKey( pkey ) ) {
			throw CFLib.getDefaultExceptionFactory().newPrimaryKeyNotNewException( getClass(), "createGelIterator", pkey );
		}

		// Validate foreign keys

		{
			boolean allNull = true;
			allNull = false;
			allNull = false;
			if( ! allNull ) {
				if( null == schema.getTableGelInstruction().readDerivedByPIdx( Authorization,
						Buff.getRequiredCartridgeId(),
						Buff.getRequiredGelInstId() ) )
				{
					throw CFLib.getDefaultExceptionFactory().newUnresolvedRelationException( getClass(),
						"createGelIterator",
						"Superclass",
						"SuperClass",
						"GelInstruction",
						null );
				}
			}
		}

		// Proceed with adding the new record

		dictByPKey.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictBeforeIdx;
		if( dictByBeforeIdx.containsKey( keyBeforeIdx ) ) {
			subdictBeforeIdx = dictByBeforeIdx.get( keyBeforeIdx );
		}
		else {
			subdictBeforeIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByBeforeIdx.put( keyBeforeIdx, subdictBeforeIdx );
		}
		subdictBeforeIdx.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictFirstIdx;
		if( dictByFirstIdx.containsKey( keyFirstIdx ) ) {
			subdictFirstIdx = dictByFirstIdx.get( keyFirstIdx );
		}
		else {
			subdictFirstIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByFirstIdx.put( keyFirstIdx, subdictFirstIdx );
		}
		subdictFirstIdx.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictEachIdx;
		if( dictByEachIdx.containsKey( keyEachIdx ) ) {
			subdictEachIdx = dictByEachIdx.get( keyEachIdx );
		}
		else {
			subdictEachIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByEachIdx.put( keyEachIdx, subdictEachIdx );
		}
		subdictEachIdx.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictLastIdx;
		if( dictByLastIdx.containsKey( keyLastIdx ) ) {
			subdictLastIdx = dictByLastIdx.get( keyLastIdx );
		}
		else {
			subdictLastIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByLastIdx.put( keyLastIdx, subdictLastIdx );
		}
		subdictLastIdx.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictLoneIdx;
		if( dictByLoneIdx.containsKey( keyLoneIdx ) ) {
			subdictLoneIdx = dictByLoneIdx.get( keyLoneIdx );
		}
		else {
			subdictLoneIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByLoneIdx.put( keyLoneIdx, subdictLoneIdx );
		}
		subdictLoneIdx.put( pkey, Buff );

		SortedMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff > subdictEmptyIdx;
		if( dictByEmptyIdx.containsKey( keyEmptyIdx ) ) {
			subdictEmptyIdx = dictByEmptyIdx.get( keyEmptyIdx );
		}
		else {
			subdictEmptyIdx = new TreeMap< GenKbGelInstructionPKey, GenKbGelIteratorBuff >();
			dictByEmptyIdx.put( keyEmptyIdx, subdictEmptyIdx );
		}
		subdictEmptyIdx.put( pkey, Buff );

	}