public StringWrapperIterator prepare ( StringWrapperIterator it ) { List multiWrappers = asMultiStringWrapperList ( it ) ; if ( multiWrappers . size ( ) == 0 ) return new BasicStringWrapperIterator ( Collections . EMPTY_SET . iterator ( ) ) ; MultiStringWrapper prototype = ( MultiStringWrapper ) multiWrappers . get ( 0 ) ; for ( int i = 0 ; i < prototype . size ( ) ; i ++ ) { int j = prototype . getDistanceLearnerIndex ( i ) ; StringDistanceLearner learner = innerLearners [ j ] ; StringWrapperIterator prepped = learner . prepare ( new JthStringWrapperValueIterator ( j , multiWrappers . iterator ( ) ) ) ; for ( int k = 0 ; k < multiWrappers . size ( ) ; k ++ ) { MultiStringWrapper msw = ( MultiStringWrapper ) multiWrappers . get ( k ) ; StringWrapper w = prepped . nextStringWrapper ( ) ; msw . set ( i , w ) ; } } return new BasicStringWrapperIterator ( multiWrappers . iterator ( ) ) ; }
Prepare data for the sublearners .