public void setDistanceInstancePool(DistanceInstanceIterator it) 
	{
		// need to save out the i-th field, if it's been prepared.
		List buffer = asMultiDistanceInstanceList(it);
		if (buffer.size()==0) return;
		MyMultiDistanceInstance instance = (MyMultiDistanceInstance)buffer.get(0);
		MultiStringWrapper prototype = asMultiStringWrapper( instance.getA() );
		for (int i=0; i<prototype.size(); i++) {
			int j = prototype.getDistanceLearnerIndex(i);
			innerLearners[j].setDistanceInstancePool( new JthDistanceInstanceIterator( j, buffer.iterator() ) );
		}
		comboSetDistanceInstancePool( buffer.iterator() );
	}
public void setDistanceInstancePool ( DistanceInstanceIterator it ) { List buffer = asMultiDistanceInstanceList ( it ) ; if ( buffer . size ( ) == 0 ) return ; MyMultiDistanceInstance instance = ( MyMultiDistanceInstance ) buffer . get ( 0 ) ; MultiStringWrapper prototype = asMultiStringWrapper ( instance . getA ( ) ) ; for ( int i = 0 ; i < prototype . size ( ) ; i ++ ) { int j = prototype . getDistanceLearnerIndex ( i ) ; innerLearners [ j ] . setDistanceInstancePool ( new JthDistanceInstanceIterator ( j , buffer . iterator ( ) ) ) ; } comboSetDistanceInstancePool ( buffer . iterator ( ) ) ; }
Pass the training data along to the inner learners.